1.添加源并安装ansible
yum install epel-release -y yum install ansible -y
2.所有服务器配置免密
我的服务器密码都一样的,所以我采用expect实现免密操作。
制作密钥:
ssh-keygen
3.expect脚本内容
#cat expect.sh #!/bin/bash IP_list=( 192.168.1.105 192.168.1.101 192.168.1.95 192.168.1.32 192.168.1.46 192.168.1.37 192.168.1.11 192.168.1.152 ) Password=sadmin123 TEST_expect(){ expect << EOF spawn ssh-copy-id root@${i} -o "StrictHostKeyChecking no" expect "password:" {send "${Password}\r"} expect "#" EOF } for i in ${IP_list[@]} do TEST_expect done
4.添加ansible客户机分组
vim /etc/ansible/hosts [es] 192.168.1.101 192.168.1.32 192.168.1.46 192.168.1.37 192.168.1.11 [other] 192.168.1.105 192.168.1.95 192.168.1.78 192.168.1.152 [all] 192.168.1.101 192.168.1.32 192.168.1.46 192.168.1.37 192.168.1.11 192.168.1.105 192.168.1.95 192.168.1.78 192.168.1.152
5.ansible模块使用
ping模块:
ansible all -m ping
shell模块:
ansible all -m shell -a "yum install vim -y"
command模块:
ansible all -m command -a "hostname"
copy模块:
#src源,dest目标路径 ansible all -m copy -a "src=./anaconda-ks.cfg dest=/data" #backup默认数据复制到远程主机,会覆盖原有文件(yes 将源文件进行备份) ansible all -m copy -a "src=./anaconda-ks.cfg dest=/data backup=yes" #权限 ansible all -m copy -a "src=./anaconda-ks.cfg dest=/data owner=www group=www mode=0644"
还有很多模块,自行搜索吧?