Ansible
一. Ansible简介和安装
1. Ansible是什么?
关于Ansible
Ansible是一种IT自动化工具。它可以帮助我们批量配置系统,部署软件以及协调更高级的IT任务,例如连续部署或零停机滚动更新。
Ansible的主要目标是让工作变得简单和易操作,它同时也非常关注安全性和可靠性,传输过程是基于openssh来实现的,保证了传输的数据的安全性!大大降低安全风险!
2 - Ansible的特点
Ansible采用无代理方式(agentless)管理机器,因为Ansible的通信是通过openssh来实现的,所以你无需考虑如何远程升级受管机器的代理程序!只要可以保证openssh可以正常通信即可!因为现在几乎所有的Linux平台都自带了openssh,Ansible在部署阶段无需考虑在远程机器上安装客户端软件!这样极大的减少了前期部署的工作!
Ansible有丰富的模块**可以让你直接使用,当然在Ansible的社区也有很多优秀的开发者在贡献新的模块,所以你总会找到适合自己的模块,当然你也可以自己开发模块!
Ansible是使用python开发,所以关于Ansible的二次开发和模块开发成本相对较低
3 - Ansible的一些基本概念
1 - 控制节点
任何装有Ansible的机器都可以叫做控制节点。您可以从任何控制节点调用/usr/bin/ansible执行一条任务,或执行/usr/bin/ansible-playbook命令读取剧本执行多个任务
2 - 受管节点
使用Ansible管理的的网络设备和服务器,都可以叫做受管节点!受管节点有时也可以叫做“主机“,受管节点无需安装ansible
3 - 清单( inventory )
受管节点的列表。Ansible在管理某个节点前,需要先将节点添加到清单文件中!清单文件有时也称为“主机清单文件”。清单文件可以为每个受管节点指定信息,例如IP地址、端口等信息!也可以把主机分成主机组管理!
4 - 模块(Modules)
Ansibe执行代码的单位。Ansible自带了很多模块,每个模块都有特定的用途。我们可以通过任务调用单个模块,例如shell模块,可以调用shell命令在管理主机执行。
也可以在剧本中调用多个不同的模块!想要了解更多模块信息可以访问官方模块列表地址:https://docs.ansible.com/ansible/latest/modules/modules_by_category.html#modules-by-category
5 - 任务(Tasks)
Ansible执行的单位,可以使用临时命令一次执行一个任务
6 - 剧本(Playbooks)
任务的有序列表文件,所以我们可以重复读取剧本文件重复运行剧本内的任务!这个是