ansible是新出现的自动化运维工具,基于
Python开发,集合了众多运维工具(
Puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
(1)、连接
插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个
配置文件里面定义监控的主机;
Ansible最初由Michael DeHaan编写,并于2015年被Red Hat收购。它是无代理的,通过SSH或
Windows远程管理机制来建立临时远程连接。Ansible的控制节点在大多数已安装
Python的类Unix系统上执行,包括安装了
wsl的Windows系统。系统配置部分是通过使用它自己的声明式语言来定义的。
Ansible的架构设计目标包括本质上为最小、一致性、安全和可靠的。如果小心地撰写程序,Ansible playbook脚本文件可以是
幂等的,以防止对受控系统产生意外的副作用。Playbook使用基于YAML和Jinja模板的简单叙述性语言,仅需要最少的学习。
控制节点(主控主机)主要是在管理(协调)目标机器(称为"存储库"的节点)的运作。控制节点仅适用于
Linux等操作系统,不支持Windows操作系统。节点是由控制节点通过SSH来管理。
目标节点的位置是通过位于`/etc/ansible/hosts`的清单配置列表(INI或YAML格式)来指定。
配置文件列出了Ansible可访问的每个节点的IP地址或主机名称,并可以用
群组的方式来分配节点。
Ansible自动化平台(Ansible
自动化技术 Platform)是一个REST API、Web服务和基于Web的界面(应用程序),旨在使具有广泛IT技能的人更容易使用Ansible。它是一个由多个组件组成的平台,包括开发人员工具、操作界面以及自动化网络,以实现跨
数据中心的大规模自动化任务。AAP是Red Hat, Inc.支持的商业产品,但衍生了17个以上的上游开源项目,包括AWX上游项目(Ansible Tower衍生自该项目的前身),该项目自2017年9月开始开源。
控制机器必须是
Linux/
unix主机,并且需要Python 2.7或3.5。托管节点(如果它们是类Unix)必须具有Python 2.4或更高版本。从1.7版本开始,Ansible还可以管理Windows节点。在这种情况下,将使用WS-Management协议支持的本机PowerShell远程处理,而不是SSH。Ansible可以部署到裸机主机、
虚拟机和云环境。