Ansible批量管理入门:从安装到免密批量执行命令

在控制节点上准备环境

Ansible采用无代理架构,你只需要在一台机器(控制节点)上安装它,就能管理其他所有服务器。
控制节点建议用Linux系统(如CentOS 7/8或Ubuntu 20.04/22.04),Python环境要保留系统自带的版本(2.7或3.x均可)。
被管节点同样需要Python,并且控制节点能通过SSH访问它们。
如果你的被管机器比较多,先确认网络互通、防火墙放行22端口。

安装Ansible并测试基本连接

在控制节点上运行以下命令安装Ansible:

# CentOS/RHEL 系列
yum install -y epel-release
yum install -y ansible

# Ubuntu/Debian 系列
apt update && apt install -y ansible

安装后查看版本:ansible --version
下一步编辑主机清单文件 /etc/ansible/hosts,把要管理的服务器IP写进去,格式如下:

[webservers]
192.168.1.10
192.168.1.11

[dbservers]
192.168.1.20 ansible_user=root

可以用组名(如 webservers)批量操作特定服务器。
保存后执行第一条测试命令:

ansible all -m ping -k

参数 -k 会要求输入SSH密码,返回绿色 "pong" 表示连接成功。
如果失败,检查SSH服务是否启动、用户名是否正确。

配置SSH免密登录

每次输入密码很麻烦,建议配置SSH密钥对。
在控制节点生成密钥:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""

然后逐一复制公钥到被管节点:

ssh-copy-id root@192.168.1.10
ssh-copy-id root@192.168.1.11

如果被管节点SSH端口非22,加上 -p 端口号
复制完成后测试免密登录:ssh root@192.168.1.10 'hostname',不再提示输入密码。
此时再执行 ansible all -m ping(不加 -k)也应返回成功。

编写第一个批量执行命令的Playbook

Playbook是Ansible的编排脚本,用YAML编写。
创建一个文件 first.yml,内容如下:

---
- name: 检测系统信息并查看磁盘使用
  hosts: webservers
  tasks:
    - name: 查看系统运行时间
      command: uptime
      register: result
    - name: 显示结果
      debug:
        msg: "{{ result.stdout }}"
    - name: 检查磁盘分区使用率
      command: df -h

执行Playbook:

ansible-playbook first.yml

输出会显示每个任务的执行情况,包括成功、失败或跳过。
如果出现红色失败信息,根据提示排查可能的问题。

避坑与验证

  • SSH权限问题:被管节点的 ~/.ssh 目录权限必须为700,authorized_keys 文件权限为600,否则SSH会拒绝连接。
  • Python版本不匹配:Ansible 2.9以上版本对Python 3兼容更好,若被管节点只有Python 2,可在ansible.cfg中指定 ansible_python_interpreter=/usr/bin/python
  • known_hosts拦截:首次连接时会询问确认主机指纹。可以全局关闭检查:在 ansible.cfg 中设置 host_key_checking = False
  • 验证批量效果:执行 ansible all -m command -a "uptime" 观察所有机器返回的系统运行时间,对比一致则说明批量管理生效。

常见问题:Q:ansible all -m pingUNREACHABLE
A:先分别手动SSH测试能否免密登录,确认网络和密钥无误。
Q:Playbook报 MODULE_FAILURE
A:检查被管节点的Python版本和路径,或尝试用 ping 模块单独测试连通性。

如果你刚开始接触Ansible,建议先用两三台测试机走完本文流程,再扩展到生产环境。
遇到卡住的地方,优先核对SSH配置和主机清单格式。

分享到:
上一篇
零基础搭建 Jenkins CI/CD 流水线
下一篇
零基础搭建Grafana监控大屏
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意