AWX是一个开源的web应用,并为ansible的任务引擎提供用户接口和REST API。它是 ansible Tower的开源版本。ansible AWX允许我们使用web接口去管理Ansible的playbooks、inventoris和调度任务。

基础环境配置:

部署AWX:
https://blog.51cto.com/10616534/2405212
我们将通过Ansible AWX的web界面通过运行一个Ansible playbook来完成一个简单的hello world。
如下两台服务器(AWX平台部署服务器和目标服务器):

  192.168.100.100   AWX-server
  192.168.100.2   test

AWX简单使用

1)创建管理目标服务器的认证方式

首先,我们先配置Ansible AWX的认证证书,用于在启动和运行任务时对目标节点主机的认证管理。默认Ansible AWX支持多种认证凭证,包括常规服务器之间基于SSH的认证,Amazon Web Services,Google Computer Engine,OpenStack,Vault password,Source Control 等等。
如:
Ansible AWX基础配置和使用_第1张图片
为了创建一个新的认证凭证,在AWX web平台点击左侧菜单的Credentials,接着点解页面右侧的+按钮来添加一个Credentials, 如下图所示:
Ansible AWX基础配置和使用_第2张图片

填写Credentials名称以及描述,选择Credentials类型,选择比较简单的Machine,它允许通过SSH认证去管理服务器。它支持两种认证方式:基于密码和基于秘钥。
Ansible AWX基础配置和使用_第3张图片
我们将采用基于秘钥的认证方式,因此需要填写系统的用户名和用户的SSH私钥:如下图:
Ansible AWX基础配置和使用_第4张图片
最后点击右边的save保存,将会成功创建一个新的Machine类型的Ansible AWX credentials。
Ansible AWX基础配置和使用_第5张图片

2)创建Inventories

通过Inventories定义通过Ansible AWX管理的主机群组。Inventories允许你为几个服务器创建一个组,并且还能很方便的去管理不同的服务器和它们所依赖的环境变量。为了去管理操作服务器,我们必须去创建一个新的inventory group 并且给这组中添加服务器。
同样,点击ansible AWX左侧的菜单Inventories,接着点击右边的+按钮,并选择Inventory:
Ansible AWX基础配置和使用_第6张图片
如下所示:先填写名称和描述,并点击保存
Ansible AWX基础配置和使用_第7张图片
接着点解页面上方的主机(HOSTS)按钮,并点击右侧的+,为这个inventory添加主机,如图所示:
Ansible AWX基础配置和使用_第8张图片
如下图所示:填写主机名( HOST NAME),描述(DESCRIPTION),并且在VARIABLES中,填入目标主机的IP地址 "ansible_host: 192.168.100.2",并点击保存(SAVE)。
Ansible AWX基础配置和使用_第9张图片
接着我们在页面下方可以看到我们刚才创建的inventory中新添加的hosts,为了确保host的配置,我们可以通过ping命令来检查该host,选中添加的主机前边的复选框,并且点击RUN COMMANDS按钮。
Ansible AWX基础配置和使用_第10张图片
接着选择ping模块(MODILE-->Choose a module--ping),接着选择我们的第一步中创建的Credentials(认证)方式,然后点解右边的LAUNCH按钮
Ansible AWX基础配置和使用_第11张图片
接着我们会看到一下执行结果的页面,如图所示:
Ansible AWX基础配置和使用_第12张图片
至此,成功创建了一个新的inventory,并且添加了指定的目标主机(服务器)。

3)创建一个Projects

在于AWX中,Projects的作用相当于对一个Ansible Playbook库的管理,他可以对本地目录或者对类似GIt、Svn(Subversion)及RedHat Insights中的Ansible Playboos进行管理。
创建一个新的Projects,点击左侧的Projects菜单按钮,点击右侧的+,进行创建,如下图:
Ansible AWX基础配置和使用_第13张图片
填写创建Project的名称以及描述(可选),并选择一个SCM TYPE,我们这里选择 Manual类型(选择本地目录),指定项目的基础路径(PROJECT BASE PATH),并在项目的基础路径下选择一个存放playbook的目录(说明:即如果SCM TYPE类型选择Manual,则项目的基础路径将指向本地目录,此时需要在这个目录下根据自己的部署操作需求创建子目录,并将指定的playbook文件放在自己创建的目录中,以供在创建项目(Project是使用)),最后点击右侧的save保存,如图:
Ansible AWX基础配置和使用_第14张图片
Ansible AWX基础配置和使用_第15张图片
注意:如果在创建Project时需要选择SCM类型为Manual,则/var/lib/awx/projects是Ansible playbooks默认的项目目录,如果你部署AWX是采用的是Docker形式部署的,则需要开启project_data_dir选项。例如通过docker-compose安装部署的AWX,则可以修改awx/installer目录下的inventory文件,如下:
Ansible AWX基础配置和使用_第16张图片

4)创建一个任务模板

任务模板其实就是为了运行Ansible Playbooks,创建一个新的模板需要选择目标主机(在inventory重定义的,选择自己新创建的inventory)、认证方式(在Credentials中选择的方式,即选择自己新创建的Credentials)、以及选择project中指定的playbook文件。
点击左边的Template按钮,点击右边的+,并且选择Job template选项:
Ansible AWX基础配置和使用_第17张图片
填写新创建任务模板的名字和描述,并且选择之前创建过的INVENTORY、CREDENTIAL和PROJECT,然后保存,最后就可以通过模板任务去运行指定的playbooks来进行部署。
Ansible AWX基础配置和使用_第18张图片
hello_world.yml任务是在目标主机上输出一个helloword到指定的文件中:

---
- hosts: all
  tasks:
     - name: "helloworld"
       shell: echo "Hello World" `date` by `hostname` > /tmp/hello.log

5)运行模板任务

我们可以通过运行的job template,来指定Projects中对应的playbooks,并在Invertory指定的目标主机上进行部署。
点击右侧的Templates,然后找到指定的job Template,然后点击右侧的图标来运行该任务。
Ansible AWX基础配置和使用_第19张图片
运行结果如下:
Ansible AWX基础配置和使用_第20张图片
Ansible AWX基础配置和使用_第21张图片

最后,检查目标节点是否按照playbooks完成了指定的操作

Ansible AWX基础配置和使用
说明成功的在指定的目标主机上执行了指定的操作。