1. 简介
1.1. 公司环境使用的puppet,但是我更喜欢ansible,原因有二,第一,我是红帽的忠粉:),第二,我对python比较熟悉
1.2. ansible官方网站:https://www.ansible.com/
1.3. ansible中文文档网站:http://www.ansible.com.cn/
2. 环境
2.1. ansible:ansible-2.4.2.0-1.el7
3. 安装
3.1. 直接yum就好
yum install ansible
4. 配置
4.1. 生成ssh key
ssh-keygen -t rsa
4.2. 在10.30.2.81这台DNS服务器上把服务器列表取出来
cat /var/named/hccos.cn.zone |grep 172|awk ‘{print $1,$4}‘|sed "s/ 172/.hccos.cn #172/g"
4.3. 把上一步输出的机器列表粘贴在/etc/ansible/hosts里面,给分到default组里面
[default] hctjosinfra01.hccos.cn #172.16.0.81 hctjosinfra02.hccos.cn #172.16.0.82 hctjosetcd01.hccos.cn #172.16.0.83 hctjosetcd02.hccos.cn #172.16.0.84 hctjosetcd03.hccos.cn #172.16.0.85 hctjcephmon01.hccos.cn #172.16.0.86 hctjcephmon02.hccos.cn #172.16.0.87 hctjcephmon03.hccos.cn #172.16.0.88 hctjcephadm01.hccos.cn #172.16.0.89 hctjosk8smaster01.hccos.cn #172.16.0.90 hctjosk8sslave01.hccos.cn #172.16.0.91 hctjosk8sslave02.hccos.cn #172.16.0.92 hctjcephblock01.hccos.cn #172.16.0.93 hctjcephblock02.hccos.cn #172.16.0.94 hctjosk8snode01.hccos.cn #172.16.0.95 hctjosk8snode02.hccos.cn #172.16.0.96 hctjosk8snode03.hccos.cn #172.16.0.97 hctjosk8snode04.hccos.cn #172.16.0.98 hctjosadm01.hccos.cn #172.16.0.99 hctjosmysql01.hccos.cn #172.16.0.25 hctjosmysql02.hccos.cn #172.16.0.26 hctjosmysql03.hccos.cn #172.16.0.27 hctjoscache01.hccos.cn #172.16.0.45 hctjoscache02.hccos.cn #172.16.0.46 hctjoscache03.hccos.cn #172.16.0.47 hctjosdr01.hccos.cn #172.16.0.48 hctjosdr02.hccos.cn #172.16.0.49
4.4. 吧ssh-key拷贝的目标主机上实现免密码登录
for i in $(grep hctj /etc/ansible/hosts |grep -o "#.*"|cut -d# -f2); do ssh-copy-id $i; done
4.5. 在/etc/ansible下吧架构搭起来
[root@hctjosadm01 etc]# tree /etc/ansible/ /etc/ansible/ ├── ansible.cfg ├── hosts ├── main.yaml └── roles ├── cache │ └── cache.yaml ├── ceph │ └── ceph.yaml ├── default │ ├── default.yaml ├── dr │ └── dr.yaml ├── etcd │ └── etcd.yaml ├── k8s │ └── k8s.yaml └── mysql └── mysql.yaml 8 directories, 11 files
4.6. 编辑main.yaml