在 CentOS 7 上使用 Docker-Compose 安装 Ansible AWX

在 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。

www. On IT Road .com

在 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.
日期:2020-09-17 00:16:42 来源:oir作者:oir