AWX是一个开源的web应用,并为ansible的任务引擎提供用户接口和REST API。它是 ansible Tower的开源版本。ansible AWX容许咱们使用web接口去管理Ansible的playbooks、inventoris和调度任务。web
部署AWX:
https://blog.51cto.com/10616534/2405212
咱们将经过Ansible AWX的web界面经过运行一个Ansible playbook来完成一个简单的hello world。
以下两台服务器(AWX平台部署服务器和目标服务器):docker
192.168.100.100 AWX-server 192.168.100.2 test
首先,咱们先配置Ansible AWX的认证证书,用于在启动和运行任务时对目标节点主机的认证管理。默认Ansible AWX支持多种认证凭证,包括常规服务器之间基于SSH的认证,Amazon Web Services,Google Computer Engine,OpenStack,Vault password,Source Control 等等。
如:
为了建立一个新的认证凭证,在AWX web平台点击左侧菜单的Credentials,接着点解页面右侧的+按钮来添加一个Credentials, 以下图所示:shell
填写Credentials名称以及描述,选择Credentials类型,选择比较简单的Machine,它容许经过SSH认证去管理服务器。它支持两种认证方式:基于密码和基于秘钥。
咱们将采用基于秘钥的认证方式,所以须要填写系统的用户名和用户的SSH私钥:以下图:
最后点击右边的save保存,将会成功建立一个新的Machine类型的Ansible AWX credentials。服务器
经过Inventories定义经过Ansible AWX管理的主机群组。Inventories容许你为几个服务器建立一个组,而且还能很方便的去管理不一样的服务器和它们所依赖的环境变量。为了去管理操做服务器,咱们必须去建立一个新的inventory group 而且给这组中添加服务器。
一样,点击ansible AWX左侧的菜单Inventories,接着点击右边的+按钮,并选择Inventory:
以下所示:先填写名称和描述,并点击保存
接着点解页面上方的主机(HOSTS)按钮,并点击右侧的+,为这个inventory添加主机,如图所示:
以下图所示:填写主机名( HOST NAME),描述(DESCRIPTION),而且在VARIABLES中,填入目标主机的IP地址 "ansible_host: 192.168.100.2",并点击保存(SAVE)。
接着咱们在页面下方能够看到咱们刚才建立的inventory中新添加的hosts,为了确保host的配置,咱们能够经过ping命令来检查该host,选中添加的主机前边的复选框,而且点击RUN COMMANDS按钮。
接着选择ping模块(MODILE-->Choose a module--ping),接着选择咱们的第一步中建立的Credentials(认证)方式,而后点解右边的LAUNCH按钮
接着咱们会看到一下执行结果的页面,如图所示:
至此,成功建立了一个新的inventory,而且添加了指定的目标主机(服务器)。ide
在于AWX中,Projects的做用至关于对一个Ansible Playbook库的管理,他能够对本地目录或者对相似GIt、Svn(Subversion)及RedHat Insights中的Ansible Playboos进行管理。
建立一个新的Projects,点击左侧的Projects菜单按钮,点击右侧的+,进行建立,以下图:
填写建立Project的名称以及描述(可选),并选择一个SCM TYPE,咱们这里选择 Manual类型(选择本地目录),指定项目的基础路径(PROJECT BASE PATH),并在项目的基础路径下选择一个存放playbook的目录(说明:即若是SCM TYPE类型选择Manual,则项目的基础路径将指向本地目录,此时须要在这个目录下根据本身的部署操做需求建立子目录,并将指定的playbook文件放在本身建立的目录中,以供在建立项目(Project是使用)),最后点击右侧的save保存,如图:
注意:若是在建立Project时须要选择SCM类型为Manual,则/var/lib/awx/projects是Ansible playbooks默认的项目目录,若是你部署AWX是采用的是Docker形式部署的,则须要开启project_data_dir选项。例如经过docker-compose安装部署的AWX,则能够修改awx/installer目录下的inventory文件,以下:3d
任务模板其实就是为了运行Ansible Playbooks,建立一个新的模板须要选择目标主机(在inventory重定义的,选择本身新建立的inventory)、认证方式(在Credentials中选择的方式,即选择本身新建立的Credentials)、以及选择project中指定的playbook文件。
点击左边的Template按钮,点击右边的+,而且选择Job template选项:
填写新建立任务模板的名字和描述,而且选择以前建立过的INVENTORY、CREDENTIAL和PROJECT,而后保存,最后就能够经过模板任务去运行指定的playbooks来进行部署。
hello_world.yml任务是在目标主机上输出一个helloword到指定的文件中:code
--- - hosts: all tasks: - name: "helloworld" shell: echo "Hello World" `date` by `hostname` > /tmp/hello.log
咱们能够经过运行的job template,来指定Projects中对应的playbooks,并在Invertory指定的目标主机上进行部署。
点击右侧的Templates,而后找到指定的job Template,而后点击右侧的图标来运行该任务。
运行结果以下:server
说明成功的在指定的目标主机上执行了指定的操做。blog