Ansible简介
Ansible是python开发的一款自动化运维工具,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量配置系统、批量部署程序、批量运行命令等功能。ansible是基于模块工作的,本身没有批量操作系统的能力。真正去安装批量工作的是ansible所运行的模块,ansible只是提供了一种框架。
Ansible功能
- 批量执行远程命令;
- 批量配置软件服务,自动化方式配置和管理服务;
- 实现软件开发功能;
- 编排高级的IT任务。
Ansible特点
- 容易学习,无代理模式;
- 操作灵活,有较多模块;
- 简单易用;
- 安全可靠. ssh协议通讯,稳定安全;
- 移植性高。
Ansible模块
Ansible模块分为核心模块和自定义模块:
- 核心模块:实现了大多数的批量工作。
- 自定义模块 :更具用户自身的需求自行开发模块,ansible支持任何语言开发的模块,但都必须遵循ansible的调用规则。
Ansible连接是基于ssh连接远程主机的,需要客户端运行ssh服务,不需要在客户端安装agent。
Ansible主要组成
Ansible本身复制调用各个模块进行协同工作,Ansible默认情况下一次控制5台节点。
主要组件:
- Host Inventory:定义ansible能够管理的主机
- Connection Plugins:用于连接ansible的插件,基于python的paramiko模块开发
- playbooks:需要执行的命令
- core model:核心模块
- custom model:自定义模块
- plugins:通过插件进行日志记录
Ansible工作原理
工作过程:
- ansible读取Inventory获取列表;
- Connection Plugins连接主机;
- 借助模块,读取playbooks获得需要执行的操作;
- 向主机发送指令,运行指令,并返回结果。