centos7 实现 ansbile安装和基础使用
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"
还有很多模块,自行搜索吧?