bingoohuang/blog

Ansible

Opened this issue · 1 comments

Ansible 介绍

http://erdong.site/ansible-notes/ch01/1.1-ansible-introduce.html

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 主要用在 配置管理、服务即时开通、应用部署、流程编排四个领域。