Ansible是一种常用的自动运维化工具,基于python开发,分布式,无需客户端,轻量级,配置语言采用YAML。
Ansible的特性:
1.模块化:调用特定的模块,完成特殊的任务。
2.Paramiko(python对ssh的实现),PyYaml,jinja2(模块语言)三个关键模块。
3.支持自定义模块,可使用任何编程语言写模块。
4.基于python语言实现。
5.部署简单,基于python和SSH(默认已安装),agentless,无需代理不依赖KPI(无需SSL)。
6.安全,基于OpenSSH
7.幂等性:一个任务执行一次和执行n遍效果一样,不因重复执行带来意外情况。
8.支持playbook编排任务,YAML格式,编排任务,支持丰富的数据结构。
9.较强大的多层解决方案role。
Ansible的作用目标:
1.自动化部署APP
2.自动化管理配置项
3.自动化的持续交付
4.自动化的云服务管理
Ansible的架构:

Ansible的工作原理:

Ansible命令执行来源:
1> USER,普通用户,即SYSTEM ADMINISTRATOR
2> CMDB(配置管理数据库) API 调用
3> PUBLIC/PRIVATE CLOUD API调用 (公有私有云的API接口调用)
4> USER-> Ansible Playbook -> Ansibile
利用ansible实现管理的方式:
1> Ad-Hoc 即ansible单条命令,主要用于临时命令使用场景
2> Ansible-playbook 主要用于长期规划好的,大型项目的场景,需要有前期的规划过程
Ansible-playbook(剧本)执行过程
将已有编排好的任务集写入Ansible-Playbook
通过ansible-playbook命令分拆任务集至逐条ansible命令,按预定规则逐条执行
Ansible主要操作对象
HOSTS主机
NETWORKING网络设备
注意事项:
执行ansible的主机一般称为主控端,中控,master或堡垒机
主控端Python版本需要2.6或以上
被控端Python版本小于2.4需要安装python-simplejson
被控端如开启SELinux需要安装libselinux-python
windows不能做为主控端 ansible不是服务,不会一直启动,只是需要的时候启动




