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)

wKiom1ciBFigXKWaAAESEPasjnY407.jpg


3.工作模式

模块化设计调用特定的模块来完成特定任务,本身是核心组件,短小精悍;

基于Python实现,由Paramiko,PyYAML和Jinja2(模板化)三个关键模块实现;

Paramiko:python的一个可并发连接ssh主机功能库

主从模式工作:

master:ansible、ssh client;

slave:ssh server

默认使用SSH协议:

(1)基于密钥认证

(2)在inventory文件中指定账号和密码