当前位置: 首页 > news >正文

如何在 Linux1 安装 Ansible 控制节点并管理 Linux2-9?

在 Linux1 上安装 Ansible 并通过 SSH 免密连接管理 Linux2-9 是标准的自动化运维方案。控制节点只需安装 Ansible 核心,目标主机无需代理,依赖 SSH 和 Python 3 环境。

核心结论:Ansible 基于 SSH 协议无需代理,控制节点安装 Ansible 并配置密钥认证即可管理目标主机。

  • 适用场景:多台 Linux 服务器的批量配置、应用部署和日常运维
  • 前置条件:控制节点能 SSH 连通所有目标主机,目标主机需安装 Python 3
  • 验收标准:使用 ansible ping 模块测试连通性并验证 sudo 提权

环境安装与版本注意

推荐使用系统包管理器安装,避免 pip 安装导致的环境冲突。注意 Ansible 2.12+ 版本已移除对 Python 2 的支持,目标主机必须包含 Python 3 解释器。

# Ubuntu/Debian
sudo apt update
sudo apt install ansible# CentOS/RHEL 8+
sudo dnf install ansible
# 或 CentOS 7
sudo yum install ansible# 若需特定版本可使用 pip3,但需注意依赖冲突
# pip3 install ansible

批量配置 SSH 免密与 Inventory

针对 Linux2-9 共 8 台主机,手动分发密钥效率低。建议使用 Shell 循环批量分发公钥,并利用 Inventory 的范围语法定义主机列表。

# 1. 生成密钥 (若无)
ssh-keygen -t ed25519 -N ""# 2. 批量分发密钥 (假设 IP 段为 192.168.1.2-9,用户为 user)
for ip in 192.168.1.{2..9}; dossh-copy-id -o StrictHostKeyChecking=no user@$ip
done# 3. 编写 Inventory 文件 (hosts)
cat > hosts <

安全配置与 ansible.cfg

创建 ansible.cfg 可优化连接行为。关闭主机密钥检查可避免首次连接交互,但生产环境需警惕中间人攻击风险,建议预先收集密钥或启用严格检查。

[defaults]
# 生产环境建议设为 True 并预先管理 known_hosts
host_key_checking = False
# 指定 Inventory 文件路径
inventory = ./hosts
# 禁用 Cow 动画提升脚本执行速度
nocows = 1

连通性与权限验证

使用 ping 模块测试 Python 环境与 SSH 连通性,结合 -b 参数验证 sudo 提权配置。

# 测试连通性
ansible all -i hosts -m ping# 验证 sudo 提权 (需配置 passwordless sudo)
ansible all -i hosts -m command -a "whoami" -b# 预期返回
# 192.168.1.2 | SUCCESS | rc=0 >>
# root

常见故障排查

  • Python 版本错误:若报错 "Unsupported Python version",请检查目标主机是否仅安装 Python 2。Ansible 2.12+ 强制要求 Python 3。
  • SSH 密钥拦截:若批量分发失败,检查防火墙是否放行 22 端口,或 SSH 配置是否禁止公钥认证。
  • Sudo 权限不足:执行需提权命令时加 -b 参数。若提示输入密码,需配置 visudo 允许免密 sudo。
  • 主机密钥验证失败:若未关闭检查且更换过目标主机系统,需清理控制节点 ~/.ssh/known_hosts 中旧记录。

参考来源

  • Ansible 官方文档:Installation Guide - https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html
  • Ansible 官方文档:Intro to Ad-Hoc Commands - https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html

原文链接:https://www.zjcp.cc/ask/10933.html

http://www.jsqmd.com/news/804079/

相关文章:

  • Vue 3 核心技术深度解析:从“会用API“到“懂原理、能表达“
  • 解密智能图片分层:掌握Layerdivider提升设计效率的实战指南
  • 告别Win11虚假‘小地球’:保姆级排查指南,从NlaSvc服务到注册表项
  • FileLock
  • 2026国产数据库选型指南:OceanBase、金仓、TDSQL、GBase横向对比与决策要点
  • 拒绝压价内耗!佛山名表回收 TOP5,收的顶凭专业赢麻了 - 奢侈品回收测评
  • STT-MTJ与自旋轨道力矩TRNG技术解析与应用
  • 构建个人技能库:从代码片段到可复用技能单元的设计与实践
  • 三分钟让PowerToys说中文:微软效率工具本地化终极指南
  • 3步掌握MapleStory游戏资源编辑:HaSuite终极指南
  • 欧盟NIS2指令解析:网络安全合规从零到一的实战指南
  • 5分钟极速指南:如何将STL文件转换为STEP格式,实现3D模型的无缝对接
  • 视频即推理:多模态AI的时空图谱与物理驱动思考
  • Next.js功能开关实践:用happykit/flags实现灰度发布与A/B测试
  • AI智能体协作开发:从原型到生产的咖啡一爆检测器实战
  • Elasticsearch的shrink为啥不用软链接用硬链接
  • RAG优化续
  • 别再只会用库了!深入STM32红外接收:从NEC协议时序到GPIO中断的代码级剖析
  • 感知机:数据挖掘中的线性分类基石,感知机原理与应用全解析(附实战代码)
  • 2025届必备的十大AI辅助写作助手解析与推荐
  • OpenWord:基于多智能体架构的一句话生成互动游戏世界
  • 2026年Q2汕头老药桔选购指南:正宗鸭屎香/汕头凤凰单枞/汕头特产三兄弟猪肉脯/汕头特产老药桔/汕头特产肉脯/选择指南 - 优质品牌商家
  • 第18章 案例15:用户名密码的登陆框案例【JS流程控制】【JavaScript篇】
  • 如何快速搭建智能抢票系统:DamaiHelper新手完整实战指南
  • WeChatMsg技术架构解析:本地化微信聊天记录提取与数据主权实现方案
  • 健康160终极挂号神器:91160-cli让抢号成功率提升500%的完整指南
  • 2026年深圳钻石回收别被坑,收的顶报价透明,钻戒项链手镯耳坠多卖 30% - 奢侈品回收测评
  • 新高考下志愿填报实用攻略:扬州机构资源与选型建议 - 品牌推荐大师
  • 全球与中国干混砂浆市场:现状剖析与未来趋势前瞻
  • powershell使用笔记、.ps1是什么文件