1.特性
no agents:不需要在被管控主機上安裝任何客戶端;
no server:無服務器端,使用時直接運行命令即可;
modules in any languages:基於模塊工作,可使用任意語言開發模塊
yaml,notcode:使用yaml語言定製劇本playbook
ssh by default:基於SSH工作
strong multi-tier solution:可實現多級指揮
2.架構
ansible core:ansible自身核心模塊
host inventory:主機庫,定義可管控的主機列表
connection plugins:連接插件,一般默認基於ssh協議連接
modules:core modules(自帶模塊)、custom modules(自定義模塊)
playbooks:劇本,按照所設定編排的順序執行完成安排任務(yaml,jinjia2)
3.工作模式
模塊化設計調用特定的模塊來完成特定任務,本身是核心組件,短小精悍;
基於Python實現,由Paramiko,PyYAML和Jinja2(模板化)三個關鍵模塊實現;
Paramiko:python的一個可併發連接ssh主機功能庫
主從模式工作:
master:ansible、ssh client;
slave:ssh server
默認使用SSH協議:
(1)基於密鑰認證
(2)在inventory文件中指定賬號和密碼