在 CentOS 7 上安装 Ansible AWX 准备工作:
AWX 需要一些必备的软件包,所有这些软件包都可以在标准和 EPEL yum 存储库中找到。
[root@ansible-01 ~]# yum -y install git gcc gcc-c++ nodejs gettext device-mapper-persistent-data lvm2 bzip2 python-pip
在 CentOS 7 上安装 Docker-Compose:
PyPI(Python Package Index)是一个用 Python 编写的软件的软件包存储库。
PyPA(Python Package Authority)推荐使用 PyPI 来安装 Python 软件包。
因此,我们使用 pip 命令安装 docker-compose。
[root@ansible-01 installer]# pip install docker-compose
在 CentOS 7 上安装 EPEL Yum 软件库:
以 root 用户身份使用 ssh 连接 ansible-01.onitroad.com。
AWX 需要一些在 EPEL(企业 Linux 的另外包)yum 存储库中可用的包。
因此,我们通过使用 yum 命令启用 EPEL 来安装 epel-release 包。
[root@ansible-01 ~]# yum install -y epel-release
什么是 AWX 项目
AWX Project 或者 AWX 是一个基于 Web 的 Ansible 控制台。
AWX 旨在让 Ansible 更适用于不同技术水平和技能组合的 DevOps 成员。
AWX 是自动化任务的中心。
Ansible Tower 是 Red Hat, Inc. 支持的商业产品,但源自 AWX 上游项目,该项目自 2017 年 9 月开始开源。
这使得 AWX 成为 Ansible Tower 的一个很好的替代品。
目前已经发布了稳定版AWX 7.0,需要容器化环境来安装和运行。
根据 AWX 项目文档,我们可以在以下容器化平台上部署 AWX。
- OpenShift
- Kubernetes
- Docker-Compose
我们在这里使用 Docker-Compose,因为与 OpenShift 和 Kubernetes 相比,它相对容易设置并且需要更少的硬件资源。
假设我们已经在 CentOS 7 上安装了 Ansible 控制节点。
现在,我们正在同一个 Ansible 控制节点上安装带有 Docker-Compose 的 AWX。
在 CentOS 7 上安装 Ansible AWX:
使用 git 命令从 GitHub 下载 AWX 项目。
[root@ansible-01 ~]# git clone --depth 50 https://github.com/ansible/awx.git
转到 ~/awx/installer 目录并在列表文件中为 AWX 和 PostgreSQL 设置自定义 admin_password。
[root@ansible-01 ~]# cd awx/installer [root@ansible-01 installer]# sed -i 's|admin_password=.*|admin_password=JackLiu@1234|g' inventory
生成用于在列表文件中加密的随机密钥。
[root@ansible-01 installer]# openssl rand -base64 30 ejv9P72oNvD4AtWLhOUTvpxfdIfKIid3skwuK+ES
在列表文件中添加生成的字符串作为 secret_key。
[root@ansible-01 installer]# sed -i 's|secret_key=.*|secret_key=ejv9P72oNvD4AtWLhOUTvpxfdIfKIid3skwuK+ES|g' inventory
我们还可以根据要求在此处自定义许多指令。
检查我们在库存中所做的更改。
[root@ansible-01 installer]# grep -v '^#' inventory | grep -v '^$' localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python" [all:vars] dockerhub_base=ansible awx_task_hostname=awx awx_web_hostname=awxweb postgres_data_dir=/tmp/pgdocker host_port=80 host_port_ssl=443 docker_compose_dir=/tmp/awxcompose pg_username=awx pg_password=awxpass pg_admin_password=JackLiu@1234 pg_database=awx pg_port=5432 rabbitmq_password=awxpass rabbitmq_erlang_cookie=cookiemonster admin_user=admin admin_password=JackLiu@1234 create_preload_data=True secret_key=ejv9P72oNvD4AtWLhOUTvpxfdIfKIid3skwuK+ES
使用 ansible-playbook 命令安装 AWX。
[root@ansible-01 installer]# ansible-playbook -i inventory install.yml
Ansible 使用 docker-compose 通过 AWX 创建所需的容器。
根据我们服务器的规格,这需要时间,因此请坐下来放松一下。
成功配置AWX和相关容器后。
我们可以检查 Docker 进程列表到由 docker-compose 为 AWX 创建的正在运行的容器。
[root@ansible-01 installer]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2c36037e1edf ansible/awx_task:7.0.0 "/tini -- /bin/sh -câ¦" 2 minutes ago Up 2 minutes 8052/tcp awx_task 4af8c2a57530 ansible/awx_web:7.0.0 "/tini -- /bin/sh -câ¦" 2 minutes ago Up 2 minutes 0.0.0.0:80->8052/tcp awx_web 5580f44da60a memcached:alpine "docker-entrypoint.sâ¦" 2 minutes ago Up 2 minutes 11211/tcp awx_memcached 341e0660e369 ansible/awx_rabbitmq:3.7.4 "docker-entrypoint.sâ¦" 2 minutes ago Up 2 minutes 4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp awx_rabbitmq 6529a106ab89 postgres:10 "docker-entrypoint.sâ¦" 2 minutes ago Up 2 minutes 5432/tcp awx_postgres
Linux 防火墙允许 HTTP 服务,因为 80 端口映射到 AWX 容器,用于访问 AWX Web 控制台。
[root@ansible-01 installer]# firewall-cmd --permanent --add-service=http success [root@ansible-01 installer]# firewall-cmd --reload success
在客户端浏览器中打开 URL http://ansible01.onitroad.com。
以管理员用户身份登录。
我们可以通过 Ansible AWX 的仪表板找到我们。
我们已经在 CentOS 7 服务器上成功安装了 Ansible AWX 和 Docker-Compose。
在 CentOS 7 上安装 Docker CE:
从 Docker 官网安装 Docker CE yum 存储库。
[root@ansible-01 ~]# yum-config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
由于添加了 Docker CE yum 存储库,我们现在可以使用 yum 命令安装 Docker CE。
[root@ansible-01 ~]# yum install -y docker-ce
启用并启动 Docker 服务。
[root@ansible-01 ~]# systemctl enable --now docker.service Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.