Ansible AWX 是 Anisble Tower 的开源版本。和 Tower 一样,提供了运行 Ansible 的
Web 视图和 REST API 接口,展示任务调度和运行的 Dashboard, 以及基于角色的用户管理。
具体内容访问网站了解,https://www.ansible.com/products/tower 。
安装依赖
安装文档 https://github.com/ansible/awx/blob/devel/INSTALL.md 。
我们在 CentOS 7.5 的系统上安装运行 AWX,安装方式有三种,分别是在 Openshift,Kubernetes
和 Docker Compose 上部署运行。我们选择使用 Docker Compose 运行。
运行部署前,先要在虚拟机上安装下面的依赖
- Ansible 2.4 以上。
- Docker 和 Docker Compose
- docker 和 docker-compose 的 python 模块
- GNU Make
- Git
- Nodjs 6.x
- NPM 3.x
我们可以在虚拟机上安装以上的依赖,首先配置 163 CentOS repo 和 epel 源
http://mirrors.163.com/.help/centos.html
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
安装 Docker
从这个目录下载 Docker,我们使用版本17.03.2 。
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
# wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm
# wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm
# yum localinstall -y docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm
安装后,查看 Docker 状态信息
# docker info
安装 Ansible 等依赖
安装包
# yum install -y ansible make git nodejs npm python python2-pip
python 模块
# pip install docker
# pip install docker-compose
运行部署 AWX
从 github 项目页下载安装包,我们使用的是1.0.7。
https://github.com/ansible/awx/releases
# wget https://github.com/ansible/awx/archive/1.0.7.tar.gz
# tar zxf 1.0.7.tar.gz
# cd awx-1.0.7/installer/
installer 目录下面有 inventory 文件,需要修改,参考如下:
localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python"
[all:vars]
dockerhub_base=ansible
dockerhub_version=latest
postgres_data_dir=/tmp/pgdocker
host_port=80
use_docker_compose=true
docker_compose_dir=/var/lib/awx
docker_registry=172.30.1.1:5000
docker_registry_repository=awx
docker_registry_username=developer
pg_username=awx
pg_password=awxpass
pg_database=awx
pg_port=5432
postgres_data_dir=/var/lib/awx/pgdata
secret_key=awxsecret
project_data_dir=/var/lib/awx/projects
运行部署
# ansible-playbook -i inventory install.yml
部署完成后查看容器运行
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c9271417d0f9 ansible/awx_task:latest "/tini -- /bin/sh ..." 16 hours ago Up 16 hours 8052/tcp awx_task_1
13b09d7baa88 ansible/awx_web:latest "/tini -- /bin/sh ..." 16 hours ago Up 16 hours 0.0.0.0:80->8052/tcp awx_web_1
0fcd71988edd ansible/awx_rabbitmq:3.7.4 "docker-entrypoint..." 16 hours ago Up 16 hours 4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp awx_rabbitmq_1
9064ca97f7e7 memcached:alpine "docker-entrypoint..." 16 hours ago Up 16 hours 11211/tcp awx_memcached_1
67aa84972864 postgres:9.6 "docker-entrypoint..." 16 hours ago Up 16 hours 5432/tcp awx_postgres_1
在浏览器输入虚拟机服务器的 IP 地址,就可以访问 AWX 的登陆页面,默认账户用户名admin
,密码password
。
登陆以后看到的是 AWX 的 Dashboard。