简介
Ansible的***个版本是0.0.1,发布于2012年3月9日,其作者兼创始人是Michael DeHaan。Michael DeHaan曾经供职于Puppet Labs、RedHat、Michael,在配置管理和架构设计方面有丰富的经验。其在RedHat任职期间主要开发了Cobble,经历了各种系统简化、自动化基础架构操作的失败和痛苦,在尝试了Puppet、Chef、Cfengine、Capistrano、Fabric、Function、Plain SSH等各式工具后,决定自己打造一款能结合众多工具优点的自动化工具,Ansible由此诞生。Ansible版本更新速度非常快,有时会一天推出多个Dev版本,7天推出一个稳定版本。所以使用Ansible的过程中也需多留意官网的更新。
ansible的组成
ansible的组成------>Ansible主要由一下6部分组成 Ansible Playbooks:任务集,编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,通常是json格式的YML文件。Inventory:Ansible管理主机的清单。Modules:Ansible执行命令的功能模块,多数为内置的核心模块,也支持自定义Plugins:模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,改功能不常用。API:供第三方程序调用的应用程序编程接口;Ansible:此处指的是组合nventory、Modules、Plugins、API的Ansible命令工具,其为核心执行工具
ansible工作流程
使用Ansible或Ansible-playbooks时,在服务器终端输入Ansible的Ad-Hoc命令集或palybook后,Ansible会遵循预先编排的规则将Playbooks逐条拆解为Play,再将paly组织成Ansible可识别的任务(Task),随后调用任务涉及的所有模块(modules)和插件(plugins),根据Inventory中定义的主机列表通过SSH将任务集以临时文件或命令的形式传输到远程客户端执行并返回执行结果,如果是临时文件,则执行完毕后自动删除。
环境准备:
4台虚拟机:(ansible 192.168.200.10) (node1 192.168.200.11)(node2 192.168.200.12)(node3 192.168.200.13)所有机器都必须是免密登陆4台主机上面配置/etc/hosts,以ansible主机为例vim /etc/hosts192.168.100.10 ansible192.168.100.11 node1192.168.100.12 node2192.168.100.13 node3 for i in {10…13}; do scp /etc/hosts 192.168.200.$i:/etc/hosts; done apt install -y an