1.1 Ansible 介绍

IT 自动化配置管理最近20年获得了迅猛的发展,特别最近几年再移动互联、云计算、大数据、互联网+ 等大规模应用平台的需求推动下,涌现出一大批成熟的大规模值工具,比如 Puppet、Chef、Salt、Ansible 等。

在开源仓库 Github 上自动化工具关注程度信息表如下,可以看出 Ansible 是最受欢迎的。 (截止2019年3月23日)

配置工具 Watch Star Fork 开始时间 开发语言
ansible/ansible 2037 36057 14822 2012.2.5 Python
puppetlabs/puppet 503 5228 2073 2005.4.10 Ruby
saltstack/salt 618 9750 4518 2011.2.20 Python
Chef/chef 442 5694 2304 2008.5.2 Ruby

Ansible 使用 Python 作为开发语言,巧妙的设计、实现了简单易用、功能强大的管理工具。Ansible 由 Mickael DeHaan 发起、开发创建,第一个版本发布于2012年2月。

Ansible 名称的由来

最早是厄休拉.勒古恩(Ursula K. Le Guin)在1966年的小说《罗卡农的星球》(Rocannon‘s World)中创造了 Ansible 这个词。
这个词从 answerable 演变而来,用以表示一种能在浩瀚宇宙中即时通讯的装置。
并且很快传播到了很多科幻作家的作品中,Ansible 往往作为一种比光速还快的虚拟通信工具。

在《安德的游戏》(Ender's Game)中,地球两次遭遇过虫族的进攻。
国际舰队认为必须在世界各地寻找天资聪颖的孩童,将他们塑造成舰队指挥官,使人类在和虫族的战斗中占领先机,并且得到存活的希望。
安德使用 Ansible 装置实时远程指挥前线的舰队,这是相聚数光年作战的唯一可行方式。

Mickael DeHaan 想用这个词来比喻控制远端大量的服务器。

Ansible 的编排引擎可以出色的完成配置管理、流程控制、资源部署等多方面工作。与其他 IT 自动化产品相比较,Ansible 可以提供一种不需要安装客户端软件、管理便捷、功能强大的基础架构配置、维护工具。

Ansible 基于 Python 语言实现,由 Paramiko 和 PyYAML 两个关键模块构成。

Ansible 的优点:

  • 简单
    • 人类可读的自动化
    • 不需要特殊的编程技巧
    • 任务顺序执行
    • 快速用于生产
  • 强大
    • 应用程序部署
    • 配置管理
    • 工作流的编排
    • 应用生命周期的编排
  • 无agent
    • 无代理的架构
    • 基于 OpenSSH 和 WinRM
    • 不需要更新 agent
    • 高效、安全

Ansible 主要用在 配置管理、服务即时开通、应用部署、流程编排四个领域。

Ansible 公司服务

Ansible 既可以指开源软件的名称,也可以指运营开源项目的公司名称。Michael DeHaan 是 Ansible 软件的创始人也是 Ansible 公司的技术总监。

Ansible 公司是负责 Ansible 软件开发、开源社区的管理,确保 Ansible 软件工具适合 IT 自动化的需求。同时 Ansible 公司在开源 Ansible 软件的基础上,开发了基于 Web 界面友好的 Ansible Tower 专有 IT 自动化管理工具。

Ansible 公司提供如下服务,

  • Ansible 健康检查服务
  • 协助重大迁移服务
  • 推进 IT 自动化项目
  • 客户咨询服务

Ansible 架构模式

Ansible 维护模式通常由控制机和被管机组成。控制机是用来安装 Ansible 工具软件、执行维护指令的服务器或工作站,是 Ansible 维护的核心。被管机是运行业务服务的服务器,由控制机通过 SSH 来进行管理。


Ansible Architecture

+--------------+
|              |
|    CMDB      +-----+
|              |     |
+--------------+     |
                     |
                     |
+--------------+     |  +--------------------------------------------------------+
|Public/Private|     |  |                                                        |
|              +--+  |  |  ANSIBLE'S AUTOMATION ENGINE                           |
|  Cloud       |  |  |  |                                                        |
+--------------+  |  |  +--------------------------------------------------------+
                  |  +->+                                                        |
                  |     |                                                        |          +--------------+
                  |     |       +------------+              +--------------+     |          |              |
                  +---->+       |            |              |              |     +--------> |  HOSTS       |
                        |       | INVENTORY  |              |   API        |     |          |              |
+--------------+        |       |            |              |              |     |          +--------------+
|              |        |       +------------+              +--------------+     |
|  Users       |        |                                                        |
|              |        |                                                        |
+--+-----+-----+        |                                                        |
   |     |              |                                                        |
   |     +------------->+       +------------+              +-------------+      |
   v                    |       |            |              |             |      |          +--------------+
+--+-----------+        |       | MODULES    |              | PLUGINS     |      |          |              |
|  Ansible     |        |       |            |              |             |      +--------> |  NETWORKING  |
|              +------->+       +------------+              +-------------+      |          |              |
|  Playbook    |        |                                                        |          +--------------+
+--------------+        +--------------------------------------------------------+

Ansible Tower

Tower pricing(2019.03)

Standard 5*8 support up to 100 nodes $10000/year
Premium 7*24 support up to 100 nodes $14000/year

Note: Ansible Tower must be installed on RHEL 7, CentOS 7, or Ubuntu 14.04 LTS or 16.04 LTS, and requires Ansible Core 2.1.X or later.

results matching ""

    No results matching ""