AWX是一个开源的web应用,并为ansible的任务引擎提供用户接口和REST API
它是 ansible Tower的开源版本。ansible AWX允许我们使用web接口去管理Ansible的
playbooks、inventoris和调度任务
本文部署的是截止2021年3月19日为止的最新版本
awx-v17.1.0
关于环境
Linux:~ # cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) Linux:~ # uname -r 3.10.0-1127.19.1.el7.x86_64 Linux:~ # sestatus SELinux status: disabled Linux:~ # systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1)
需要关闭selinux以及防火墙
下载awx
Linux:~ # cd /opt/ Linux:/opt # wget -c https://github.com/ansible/awx/archive/17.1.0.tar.gz Linux:/opt # tar xvf awx-17.1.0.tar.gz
直接wget github的包,有时候会因为网络的问题中断下载,加一个 -c
参数,支持断点续传
或者使用 git clone https://github.com/ansible/awx.git
需要先部署docker服务,关于docker的部署,可以看我另一篇文章,直接执行脚本即可,centos也适用
下载安装所需依赖
awx 需要使用 python3
Linux:~ # yum install -y epel Linux:~ # yum install -y yum-utils device-mapper-persistent-data lvm2 ansible git python3 python3-devel python3-pip python-docker-py vim-enhanced
安装docker-compose
Linux:~ # pip3 install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple/ Linux:~ # pip3 install docker-compose -i https://mirrors.aliyun.com/pypi/simple/
配置inventory文件
Linux:~ # cd /opt/awx-17.1.0/installer/ Linux:/opt/awx-17.1.0/installer # mv inventory{,.bak} Linux:/opt/awx-17.1.0/installer # vim inventory admin_password=admin # 这里只修改用户的密码(还可以自定义数据库名称、密码、用户)
Linux:/opt/awx-17.1.0/installer # ansible-playbook -i inventory install.yml
出现的报错
TASK [local_docker : Run migrations in task container]
这里的报错会比较多,如果是看到Pulling from
的字眼,基本上就是镜像拉取问题,执行下面的操作,先拉取镜像,然后再次执行ansible-playbook -i inventory install.yml
即可,镜像都是国外的,拉取很慢
Linux:/opt/awx-17.1.0/installer # grep docker_compose_dir inventory docker_compose_dir="~/.awx/awxcompose" Linux:/opt/awx-17.1.0/installer # cd ~/.awx/awxcompose/ Linux:~/.awx/awxcompose # docker-compose run --rm --service-ports task awx-manage migrate --no-input
也可以使用下面的命令,我已经将镜像上传至阿里云的仓库了,速度会快很多
Linux:/opt/awx-17.1.0/installer # docker pull registry.cn-hangzhou.aliyuncs.com/ansible-awx/ansible-awx:awx-17.1.0 Linux:/opt/awx-17.1.0/installer # ansible-playbook -i inventory install.yml
镜像拉下来之后,再次执行ansible-playbox
即可
验证web页面
inventory
文件如果没有修改,默认就是80
端口,直接在浏览器输入自己的IP就可以访问到页面了,密码这里设置成了admin
,用户名默认也是admin
,也是可以在inventory
文件里面修改的