ansible 介绍

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具 (puppet、cfengine、chef、func、fabric)的优点, 实现了批量系统配置、批量程序部署、批量运行命令等功能。   ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括: (1)、连接插件connection plugins:负责和被监控端实现通信; (2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机; (3)、各种模块核心模块、command模块、自定义模块; (4)、借助于插件完成记录日志邮件等功能; (5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。    

Ansible的与节点有关的重要术语包括控制节点,受管节点,清单和主机文件:

 

控制节点(Control node):指安装了Ansible的主机,也叫Ansible服务器端,管理机

Ansible控制节点主要用于发布运行任务,执行控制命令。

Ansible的程序都安装在控制节点上,控制节点需要安装Python和Ansible所需的各种依赖库。注意:目前Ansible还不能安装在Windows下。

 

受控节点(Managed nodes):也叫客户机,就是想用Ansible执行任务的客户服务器。

 

清单(Inventory):受控节点的列表,就是所有要管理的主机列表。

host文件:清单列表通常保存在一个名为host文件中。

在host文件中,可以使用IP地址或者主机名来表示具体的管理主机和认证信息,并可以根据主机的用户进行分组。

缺省文件:/etc/ansible/hosts,可以通过-i指定自定义的host文件。

 

模块(Modules):模块是Ansible执行特定任务的代码块。

比如:添加用户,上传文件和对客户机执行ping操作等。Ansible现在默认自带450多个模块,

Ansible Galaxy公共存储库则包含大约1600个模块。

 

任务(Task):是Ansible客户机上执行的操作。可以使用ad-hoc单行命令执行一个任务。

 

剧本(Playbook):是利用YAML标记语言编写的可重复执行的任务的列表,
playbook实现任务的更便捷的读写和贡献。比如,在Github上有大量的Ansible playbooks共享,
你要你有一双善于发现的眼睛你就能找到大量的宝藏。

角色(roles):角色是Ansible 1.2版本引入的新特性,用于层次性、结构化地组织playbook。
roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。

 

安装:
yum install ansible 或者dnf install ansible

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐