Ansible自动化运维
一、 Ansible:开源的运维自动化工具,可以提高运维工程师的效率,减少人为失误。操作简单,功能丰富。
特点:1)基于python开发,易于二次开发 2)丰富的内置模块,基本可以满足一切要求 3)管理模式非常简单 4)无客户端模式,底层通过ssh通信,也不需要代理程序 5)可以应用在大公司环境下。
二、Ansile的角色:
1、使用者:如何使用Ansible(与Ansible的交互方式)
CMDB:直接下发指令调用Ansibe工具集完成任务目标
PUBLIC/PRIVATE:以API调用的方式
Ad-hoc命令集:通过Ad-hoc命令集调用Ansible工具集完成任务
Playbooks:根据预先编写好的Ansible Playbooks按序执行任务
2、Ansible工具集:包含invertory,modules,plugins和API。
Ansible plakbooks:任务脚本,编排定义Ansible任务集的配置文件,一般为json格式的yml文件
inventory:管理Ansible设备列表,通过分组管理主机。
modules: 执行命令的各种模块,任务通过模块执行
plugins: 附加功能,是模块功能的补充
API:供第三方调用的应用程序编程接口,便于二次开发
Ansible:组合上述工具的命令工具,为核心的执行工具
3、作用对象:linux、windows、各类PUBLIC/PRIVATE网络设施
三、Ansible的配置:inventory是Ansible管理主机信息的配置文件,相当于系统hosts文件的功能,默认存放在/etc/ansible/hosts.可以用-i选项指定在其他文件。在hosts文件中通过分组来组织设备。设备列表支持ip地址和主机名,通过ssh(22端口)管理设备。
四、Ansible命令:
ansible:大多数维护命令以ansible开头。执行结果有:红色表示执行过程异常、橘黄色代表目标有状态变化、绿色代表执行成功且没有对目标修改
格式:ansible 主机组 命令选项
主机组:必须是hosts文件定义的设备组,或者单个ip,all代表所有