Ⅰ. 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)]