介绍
ansible是新出现的自动化运维工具,由python开发,集合了众多自动化运维工具的优点,实现了批量系统部署、批量程序部署,批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署能力的是ansible运行的模块,ansible只是提供一个框架。
核心组件
ansbile:核心程序
modules:包括ansible自带的核心模块以及自定义模块
plugins:完成模块功能的补充,包括连接插件,邮箱插件
palybooks:剧本,定义ansbile多任务配置文件,由ansible自动执行
inventory:定义ansbile管理的主机清单
connection plugins:负责和被监控端实现通信
特点
不需要在被监控端上安装任何服务程序
无服务器端,使用时直接运行命令即可
基于模块工作,可以使用任意语言开发
使用yaml语言编写playbook
基于ssh工作
可实现多级指挥
具有幂等性,一种操作重复多次执行结果相同
执行过程:
加载自己的配置文件,默认为/etc/ansible/ansible.cfg
加载自己对应的模块文件
通过ansible将模块或命令生成对应的临时py文件,并将该文件传输至远程服务器
对应执行用户的家目录的.ansible/tmp/xx.py文件
给文件+x执行
执行并将返回结果,删除临时py文件,sleep 0 退出