Ansible入门

Ansible是Automation for Everyone为主题的构成管理工具。在这里介绍Ansbile的组成因素,特点及安装方法。

1. Ansible构成因素

Ansible由以下4个因素构成,接下来一起看一下每个因素的功能。

  1. Ansible本体
  2. Inventory
  3. Module
  4. 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安装及设定」等。