Ansible自动化运维实战
1.abstract —简介
- Logo
- 介绍
ansible是新出现的自动化运维工具,基于python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。无客户端。
- 工作原理
2.install —部署
- DNS域名解析
ansible服务器:192.168.36.143
ansible客户机:192.168.36.142 & 192.168.36.148
--- ansible服务器 ---
[root@ansible ~]# vim /etc/hosts
192.168.36.143 ansible
192.168.36.142 host1
192.168.36.148 host2
--- absible客户机无需配置 ---
- ansible安装
--- ansible服务器 ---
[root@ansible ~]# yum install -y epel-release
[root@ansible ~]# yum install -y ansible
--- 检测部署是否完成 ---
[root@ansible ~]# rpm -ql ansible #列出所有文件
[root@ansible ~]# rpm -qc ansible #查看配置文件
[root@ansible ~]# ansible --help #查看ansible帮助
[root@ansible ~]# ansible-doc -l #查看所有模块
[root@ansible ~]# ansible-doc -s yum #查看yum模块,了解其功能
3.ssh-key —免密(可选)
[root@ansible ~]# ssh-keygen
[root@ansible ~]# ssh-copy-id IP地址
4.ansible —基础操作
--- 1.定义主机清单 ---
[root@ansible ~]# vim /etc/ansible/hosts
#最后一行添加以下内容
host1
host2
--- 2.测试连通性 ---
[root@ansible ~]# ansible localhost -m ping
# -m 指定模块
--- 3.简介输出 ---
[root@ansible ~]# ansible host1 -m ping -o
--- 4.know_hosts ---
[root@ansible ~]# ansible host2 -m ping -u root -k -o
#增加用户名选项,增加密码选项
[root@ansible ~]# vim /etc/ssh/ssh_config
StrictHostKeyChecking no
#去掉(yes/no)的询问
[root@ansible ~]# systemctl restart sshd
--- 5.注意ping和ssh
ping --- ICMP:网际消息管理协议
关闭host1主机的sshd进程,进行ping连通性测试。
再使用ansible对host1进行连通测试时,却是失败的。
结论:ansible的ping,是探测ssh程序是否连接。不是icmp协议。即ssh程序出问题时,ansible也不能用。
5.Inventory —主机清单
- 含义:清查;存货清单;财产目录;主机清单
- Ⅰ.增加主机组
官方手册:http://docs