ansible
新出现的自动化运维工具
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(Puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
产品概述
ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
(1)、连接插件connection plugins:负责和被监控端实现通信;
(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。
开发历史
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可以部署到裸机主机、虚拟机和云环境。
AnsibleFest 是让 Ansible 社群用户、贡献者等人参加的年度研讨会。
参考资料

Warning: Invalid argument supplied for foreach() in /www/wwwroot/newbaike1.com/id.php on line 362
目录
概述
产品概述
开发历史
产品特点
设计目标
控制节点
储存库配置
平台支援
参考资料