一、abstract简介
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric) 的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能.无客户端。我们要学一些Ansible的安装和一些基本概念,然后我们会开始研究一些真正有意思的东西 - plavbook,配置管理,部署以及语法编排.我们将会学习如何使用/usr/bin/ansible执行ad-hoc并行命令,我们还会学习ansible的核心有什么样的模块可供使用.当然以后你也可以写你自己的模块。
二、install部署
1. dns resolve
环境:
ansible服务器:
192.168.64.2
ansible客户机:
192.168.64.3
192.168.64.4
192.168.64.5
ansible服务器
域名解析
vim /etc/hosts
192.168.64.2 ansible
192.168.64.3 host1
192.168.64.4 host2
192.168.64.5 host3
ansible客户机
无需配置
IP
YUM源
2.install ansible
yum install -y epel-release 可配置阿里的
yum install -y ansible
检测是否安装成功
rpm -ql ansible 列出ansible所有文件
rpm -qc ansible 查看配置文件
ansible --help 查看ansible帮助
ansible-doc -l 看所有模块
ansible-doc -s yum 看yum模块
三、ssh-key可选
1.免密码ssh-key的方式
2.ssh-keygen的方式
3.ssh-copy-id IP地址 推送密钥
四、ansible基础
1.定义主机清单
vim /etc/ansible/hosts
host1
host2
host3
没有host4注意
2.测试连通性
ansible localhost -m ping -m指定模块,ping只是其中的一个模块,还有shell,yum等
3.简洁输出
ansible localhost -m ping -o
4.know_hosts
ansible host1 -m ping 成功,因为有免密
ansible host2 -m ping 失败,没有免密
ansible host2 -m ping -u root -k -o 增加用户名选项,和密码选项
去掉(yes/no选项)的询问
vim /etc/ssh/ssh_config
StrictHostKeyChecking no
systemctl restart sshd
5.错误示范
ansible host4 -m ping -u root -k -o 失败,主机清单未配置主机
6.请注意ping和ssh
ping ICMP:网络消息管理协议
关闭host2主机的sshd进程,进行ping连通性测试
再使用ansible对host2进行连通性测试,却是失败的
结论:ansible的ping,是餐车ssh程序是否连接,不是icmp协议
ansible host2 -m ping -u root -k -o