ansible是一个IT自动化配置管理工具。能够实现安装 配置 管理 多个主机上的服务
ansible只能在python2.7环境下执行 系统默认的python2.7不能升级为python3.否则ansible的模块不能正常执行
控制端和受控端主机上都必须安装python2.7
ansible的运行原理是把指定的python模块通过ssh协议从主控端拷贝到受控端执行
ansible是一个无中心节点的架构 主节点和从节点没有心跳连接检查 主节点上只保存了一个受控端的主机清单 只有在执行ansible命令的时候才会通过ssh协议对被控端进行连接
即使主节点宕机,只要把主机清单拷贝到其他主机同时新主节点和被控节点能够进行ssh连接即可正常运行
ssh传输协议
ssh协议是基于tcp连接的协议
tcp 保存模块文件传输的可靠性
ssh协议保证传输数据的安全性
ansible inventory 主机清单 主机清单可以是静态的文件 也可以是动态生成的json数据
ansible Ad-hoc ansible的模块
ansible playbook ansible剧本
主控端的public SSH key必须在这些受控端系统中的``authorized_keys``中
必须要把主控端生成的公钥分发到各个受控端节点
静态主机清单方式
192.168.1.1
192.168.1.1:9200
jumper ansible_ssh_port=5555 ansible_ssh_host=192.168.1.50 通过"jumper"别名,会连接192.168.1.50:5555
www[01:50].example.com
db-[a:f].example.com
动态主机清单方式
使用配置管理系统经常有一种需求,可能要在其他的软件系统中保存自己的inventory配置信息
在Ansible中,Patterns 是指我们怎样确定主控端机器和哪些受控端主机进行交互
ansible webservers -m service -a "name=httpd state=restarted"
ansible <pattern_goes_here> -m <module_name> -a <arguments>
ansible webservers:dbservers:&staging:!phoenix -m service -a "name=httpd state=restarted"
ansible-playbook site.yml --limit datacenter2
原文:https://www.cnblogs.com/yxh168/p/14763176.html