主题
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 ansiblesoftware-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 用户名。