跳转到内容

Ansible ​

控制端(Ubuntu)装 Ansible,通过 SSH 免密管理一批被控主机。

运行环境:控制端 Ubuntu,下面命令均在控制端执行(root 或 sudo)。

安装 ​

bash
# ubuntu
sudo apt-get install software-properties-common
sudo apt-add-repository ppa:ansible/ansible
sudo apt-get update
sudo apt-get install ansible

software-properties-common 提供 add-apt-repository,装了才能加 PPA;不加 PPA 也可以直接用发行版自带的 ansible。

添加远程主机 ​

编辑 inventory 文件,一行一个主机:

bash
sudo vim /etc/ansible/hosts
192.168.234.130

也可以分组写,后面用组名批量执行:

ini
[web]
192.168.234.130
# 同组还有其他主机就一行一个继续写

连接远程主机配置 ​

Ansible 默认走 SSH 密钥认证,先做免密:

bash
# 生成密钥对(控制端)
ssh-keygen -t rsa

# 将密钥添加到目标服务器(被控端用户要写对)
ssh-copy-id zhucuiding@192.168.234.130

验证 ​

bash
# 全部主机连通性测试,返回 SUCCESS/pong 即正常
ansible all -m ping

# 只测某个分组
ansible web -m ping

被控端未装 python 时会报 MODULE FAILURE,需要先在被控端装 python。

常见坑:inventory 里的主机名要与 ssh-copy-id 的目标一致;用非 root 用户时记得在命令后加 -u 用户名。

基于 MIT 许可发布