第 9 章 集中化管理平台 Ansible 详解
Ansible( http://www.ansibleworks.com/ )一种集成 IT 系统的配置管理、应用部署、执行特定任务的开源平台,是 AnsibleWorks 公司名下的项目,该公司由 Cobbler 及 Func 的作者于 2012 年创建成立。Ansible 基于 Python 语言实现,由 Paramiko 和 PyYAML 两个关键模块构建。Ansible 具有如下特点:
-
部署简单,只需在主控端部署 Ansible 环境,被控端无需做任何操作;
-
默认使用 SSH(Secure SHell)协议对设备进行管理;
-
主从集中化管理;
-
配置简单、功能强大、扩展性强;
-
支持 API 及自定义模块,可通过 Python 轻松扩展;
-
通过 Playbooks 来定制强大的配置、状态管理;
-
对云计算平台、大数据都有很好的支持;
-
提供一个功能强大、操作性强的 Web 管理界面和 REST API 接口—AWX 平台。
Ansible 的架构图见图9-1,用户通过 Ansible 编排引擎操作公共/私有云或CMDB(配置管理数据库)中的主机,其中 Ansible 编排引擎由 Inventory(主机与组规则)、API、Modules(模块)、Plugins(插件)组成。
Ansible 与 Saltstack 最大的区别是 Ansible 无需在被控主机部署任何客户端代理,默认直接通过 SSH 通道进行远程命令执行或下发配置;相同点是都具备功能强大、灵活的系统管理、状态配置,都使用 YAML 格式来描述配置,两者都提供丰富的模板及 API,对云计算平台、大数据都有很好的支持。Ansible 在 GitHub 上的地址为 https://github.com/ansible/ ,其中提供了不少配置例子供参考,本文测试的版本为 1.3.2。
|
Ansible 提供了一个在线 Playbook 分享平台,地址: https://galaxy.ansibleworks.com ,该平台汇聚了各类常用功能的角色,找到适合自己的Role(角色)后,只需要运行 “ansible-galaxy install 作者id.角色包名称” 就可以安装到本地,比如想安装 bennojoy 提供的 Nginx 安装与配置的角色,直接运行 “ansible-galaxy install bennojoy.nginx” 即可安装到本地,该角色的详细地址为: https://galaxy.ansibleworks.com/list#/roles/2 。 |
为了方便读者更系统化地了解 Ansible 的技术点,本章将针对相关技术点进行详细展开介绍。