安装配置Ansible
安装(RPM 编译 GIT PIP)
1.查看安装版本 yum info ansible
2.安装yum install ansible
3.查看版本 ansible --version
4.修改主机清单文件 /etc/ansible/hosts
配置文件
1./etc/ansible/ansible.cfg
[defaults]
inventory = /etc/ansible/hosts //hosts清单文件
library = /usr/share/my_modules/ //python库文件
remote_tmp = ~/.ansible/tmp //远程python脚本
local_tmp = ~/.ansible/tmp //本地python脚本
plugin_filters_cfg = /etc/ansible/plugin_filters.yml
forks = 5 //并发
sudo_user = root //默认sudo用户
ask_sudo_pass = True //每次执行ansible命令是否询问ssh密码
ask_pass = True
log_path = /var/log/ansible.log // 日志文件
module_name = command //
host_key_checking = False //检查应用服务器Host key 是否输入yes
2./etc/ansible/hosts
[dbservers]
ad-hoc(单次临时)/ansible-playbook(脚本)
3./etc/ansible/roles
ansible工具
1.ansible-doc //模块帮助
ansible-doc -s ping
2.ansible dbservers -m ping
***Note:批量部署Key验证脚本
!/bin/bash
PASS=123456
USER=root
ssh-keygen -f '/root/.ssh/id_rsa' -P '' &> /dev/null
rpm -q expect &> /dev/null || yum install expect -y -q
while read IP;do
expect <<EOF
set timeout 20
spawn ssh-copy-id $USER@$IP
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "$PASS\n" }
}
expect eof
EOF
done < hosts.txt
ansible all --list-hosts
ansible dbservers --list-hosts
ansible "dbservers:&webservs" -m ping //取交集
ansible 'dbservers:!webservs' -m ping //取差集
ansible "~(web|db)*.ser" -m ping //正则表达式
执行过程
1.加载自己的配置文件,默认/etc/ansible/ansible.cfg
2.加载自己对应的模块文件 command
3.通过ansible将模块或命令生成对应的临时py文件,并将该文件传输至远程服务器$HOME/.ansible/tmp
4.给文件+x执行
5.执行并返回结果
6.删除临时的py文件,退出