Ansible是Automation for Everyone为主题的构成管理工具。在这里介绍Ansbile的组成因素,特点及安装方法。
1. Ansible构成因素
Ansible由以下4个因素构成,接下来一起看一下每个因素的功能。
- Ansible本体
- Inventory
- Module
- Playbook
1-1. Ansible本体
Ansible本体就是指Ansible软件本身。
1-2. Inventory
定义Ansible操作对象服务器的信息(IP地址,连接用户/密码等),既定义在哪里(Where)执行Ansible代码。
1-3. Module
Module可以理解为Ansible执行的一个一个的命令,其本质是对操作进行定义(What)。
1-4. Playbook
Module是Ansible执行的命令的话,那么Playbook就是Ansible的脚本(code),实际上使用Ansible的时候,基本上会编写及执行Playbook。但是Playbook不需要像脚本一样编写代码,而是使用YAML格式进行定义。
既如何执行(How)以Module为核心的Ansible代码。
2. Ansible的特点
构成管理软件Ansible和其他构成管理软件比较时的3个特点。
2-1. Agentless
其他构成管理工具Chef及Puppet等需要在构成管理对象服务器安装Agent,而Ansible则不需要安装Agent(Agentless)。
Ansible运行服务器只需通过网络连接构成管理对象服务器即可,而无需特殊的网络协议。比如Linux系统的话使用SSH协议,Windows系统使用WinRM,Docker Container使用 docker-exec进行连接。
2-2. 幂等性
幂等性是指
Ansible定义的是最终结果,而非过程。比如「文件A拷贝到/etc目录下」时,首先会确认/etc目录下是否存在A文件,如果/etc目录下存在A文件时,已经和期待的最终结果一样,因此不会执行任何变更。而文件不存在或者文件内容和期待的内容不同时,将会拷贝A文件到/etc目录下。
2-3. 再利用性
Ansible通过变量和Role定义提高再利用性。
通过变量抽象其值,根据不同的操作对象服务器通过变量定义不同的值。Role为单位进行部品话,比如Linux系统的共通设定,还有特定中间件比如「MySQL安装及设定」等。
- 安装Ansible
- Ansible的Role
- ssh-keygen命令创建秘钥对,ssh-copy-id命令将公钥拷贝到对象服务器
- Ansible使用rpm命令安装Packages时保持幂等性的方法
- WSL上使用Ansible的注意事项