AnsibleAWX简单使用,版本:17.1.0
实现:通过Ansible AWX的web界面运行一个Ansible playbook完成一个简单的hello world。
服务器准备
- AWX-server:192.168.88.200
- test-server:192.168.88.199
创建管理目标服务器的认证方式
先配置Ansible AWX的认证证书,用于在启动和运行任务时对目标节点主机的认证管理。Ansible AWX默认支持多种认证凭证,包括常规服务器之间基于SSH的认证,Amazon Web Services,Google Computer Engine,OpenStack,Vault password,Source Control 等。
创建一个新的认证凭证,在AWX web平台点击左侧菜单的Credentials,接着点击页面右上侧的add按钮,添加一个Credentials。
填写Credentials名称以及描述,选择Credentials类型,选择比较简单的Machine,它允许通过SSH认证去管理服务器。它支持两种认证方式:基于密码和基于秘钥。
采用基于密码的认证方式,填写系统的用户名和用户密码。
最后点击下方的save保存,将会成功创建一个新的Machine类型的Ansible AWX credentials。
创建Inventories
通过Inventories定义通过Ansible AWX管理的主机群组。Inventories允许为几个服务器创建一个组,方便去管理不同服务器及其所依赖的环境变量。
为了去管理操作服务器,必须创建一个新的inventory group,并添加服务器到其中。
点击ansible AWX左侧的菜单Inventories,接着点击右上方的Add按钮,并选择Inventory。
填写名称和描述,点击保存。
点击页面上方的主机(HOSTS)按钮,点击右侧的Add,为这个inventory添加主机。
填写主机名( HOST NAME),描述(DESCRIPTION),并且在VARIABLES中,填入目标主机的IP地址 “ansible_host: 192.168.198.199”,点击保存(SAVE)。
找到刚才创建的inventory中新添加的hosts,为了确保host的配置,可以通过ping命令来检查该host。选中添加的主机前边的复选框,再点击RUN COMMAND按钮。
接着选择ping模块(MODILE–>Choose a module–ping),接着选择第一步创建的Credentials(认证)方式,然后点击LAUNCH按钮。
至此,成功创建了一个新的inventory,并且添加了指定的目标主机(服务器)。
创建一个Projects
在AWX中,Projects实现对一个Ansible Playbook库的管理,可以对本地目录,对类似Git、SVN(Subversion)及RedHat Insights中的Ansible Playboos进行管理。
创建一个新的Projects,点击左侧的Projects菜单按钮,点击右上侧的Add,进行创建。
填写创建Project的名称及描述(可选),并选择一个SCM TYPE,这里选择 Manual 类型(选择本地目录),指定项目的基础路径(PROJECT BASE PATH),并在项目的基础路径下选择一个存放playbook的目录,最后点击下侧的save保存。
说明:如果SCM TYPE类型选择Manual,则项目的基础路径将指向本地目录,此时需要在这个目录下根据自己的部署需求创建子目录,并将指定的playbook文件放在当前创建的子目录中,以供创建好的Project使用。
注意:如果在创建Project时选择SCM类型为Manual,则/var/lib/awx/projects是Ansible playbooks默认的项目目录。如果AWX采用的是Docker形式部署的,则需要开启project_data_dir选项。
创建一个playbook
# 进入到项目位置
cd /var/lib/awx/projects/test-project# 新建hello_world.yml
vim hello_world.yml# hello_world.yml内容如下:
1
2
3
4
5
- hosts: all
tasks:
- name: "helloworld"
shell: echo "Hello World" `date` by `hostname` > /tmp/hello.log
创建一个任务模板
任务模板是为了运行Ansible Playbooks。
创建一个新的任务模板需要选择目标主机(在inventory重定义,选择新创建的inventory)、认证方式(在Credentials中定义,选择新创建的Credentials)、Project中指定的Playbook文件。
点击左边的Templates按钮,点击右上方的Add,选择Job template选项,创建一个新的任务模板。
填写新创建任务模板的名字和描述,选择之前创建过的INVENTORY、CREDENTIAL、PROJECT、PLAYBOOK,然后保存。
最后通过模板任务去运行指定的Playbooks对目标机进行部署。
运行模板任务
通过运行job Template,来指定Projects中对应的playbooks,并在Inventory指定的目标主机上进行部署。
点击左侧的Templates,找到指定的job Template,再点击右侧的图标运行该任务。
运行结果如下:
最后,检查目标节点是否按照playbooks完成了指定的操作。