Ⅰ. Ansible简介
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。仅需在管理工作站上安装ansible程序配置被管控主机的IP信息,被管控的主机无客户端。ansible是基于模块工作的,ansible应用程序存在于epel(第三方社区)源,依赖于很多python组件。主要包括:
- 连接插件connection plugins:负责和被监控端实现通信;
- host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
- 各种模块核心模块、command模块、自定义模块;
- 借助于插件完成记录日志邮件等功能;
- playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。
Ⅱ. Ansible特性
- no agents:轻量级,部署简单,不需要在被管控主机上安装任何客户端;
- modules in any languages:基于模块工作,调用特定的模块来完成特定任务,可使用任意语言开发模块;
- based on Python : 基于Python语言实现,由Paramiko(python的一个可并发连接ssh主机功能库), PyYAML和Jinja2(模板化)三个关键模块实现;
- yaml,not code:使用yaml语言定制剧本playbook,无需分发到客户端,按先后顺序完成连续任务;
- strong multi-tier solution:可实现多级指挥;
- sodu : 支持sodu。
Ⅲ. 总体架构
- ansible core:ansible自身核心模块
- host inventory:主机库,定义可管控的主机列表
- connection plugins:连接插件,一般默认基于ssh协议连接
- modules:core modules(自带模块)、custom modules(自定义模块)
- playbooks:剧本,按照所设定编排的顺序执行完成安排任务
Ⅳ. Ansible安装
1. 快速安装
Linux:
如果系统中安装了python-pip和python-devel,你可以使用pip安装ansible(假设你已经安装了开发工具包Development Tools)
$ sudo pip install ansible
Fedora/RHEL/CentOS:
可以使用系统自带的yum管理工具
$ yum -y install ansible
Debian/Ubuntu:
使用系统自带的apt管理工具
$ sudo apt-add-repository -y ppa:ansible/ansible $ sudo apt-get update $ sudo apt-get install -y ansible
# 查看ansible版本 # ansible --version ansible 2.3.1.0 config file = configured module search path = Default w/o overrides python version = 2.7.5 (default, Nov 6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]