如何在 Ubuntu 18.04 LTS 上使用 Nginx 反向代理安装 Ansible AWX
在此页
- 第 1 步 - 安装 Docker 和 Ansible
- 第 2 步 - 安装其他软件包
- 第 3 步 - 下载 AWX 源代码并进行配置
- 第 4 步 - 安装 Ansible AWX
- 第 5 步 - 安装 Nginx 并将其配置为反向代理
- 第 6 步 - 配置 UFW 防火墙
- 第 7 步 - 测试
- 参考资料
AWX 是一个开源 Web 应用程序,它为 Ansible 提供用户界面、REST API 和任务引擎。它是 Ansible Tower 的开源版本。 AWX 允许您使用 Web 界面管理 Ansible 剧本、清单和安排作业运行。
在本教程中,我们将向您展示如何在 Ubuntu 服务器 18.04 上安装和配置 AWX。我们将安装带有 Nginx 的 AWX 作为反向代理并建立在 HTTPS 安全连接之上。
先决条件
- Ubuntu 服务器 18.04
- RAM 内存 +4GB 和 2 核
- 根权限
我们将要做什么:
- 安装 Docker 和 Ansible
- 安装附加包
- 下载并配置 Ansible AWX 源代码
- 安装 Ansible AWX
- 安装 Nginx 并将其配置为反向代理
- 设置 UFW 防火墙
- 测试
第 1 步 - 安装 Docker 和 Ansible
首先,我们将安装 AWX 安装所需的主要包,即 Docker 和 Ansible 本身。在安装这些软件包之前,请使用以下命令更新 Ubuntu 存储库。
sudo apt update
现在安装 Docker 和 Ansible。
sudo apt install ansible -y
sudo apt install docker.io -y
安装完成后,使用以下命令检查 docker 和 ansible。
docker version
ansible --version
下面是结果。

第 2 步 - 安装附加包
现在我们要为 AWX 安装安装额外的包。我们将把 python-pip 包安装到系统中,然后从 PyPI python 存储库安装 docker-compose 和 docker-py。
使用下面的 apt 命令安装 python-pip。
sudo apt install python-pip -y
安装完成后,使用下面的 pip 命令从 PyPI 存储库安装 docker-compose 1.9.0 和 docker-py 包。
pip install docker-compose==1.9.0
pip install docker-py

接下来,我们需要在服务器上安装 nodejs 和 npm。
运行以下命令。
sudo apt install nodejs npm -y
完成后,将 npm 升级到最新版本。
npm install npm --global
结果,所有依赖项都已安装到系统中。并准备安装 AWX。
第 3 步 - 下载 AWX 源代码并配置
在此步骤中,我们将下载 AWX 源代码并为 AWX 安装配置清单文件。
从 git 存储库下载 AWX 源代码并转到 wx 安装目录。
git clone https://github.com/ansible/awx.git
cd awx/installer/
之后,使用下面的 openssl 命令为 awx 生成新的密钥。
openssl rand -hex 32
将生成的密钥复制到您的笔记中。
现在编辑库存配置文件。
vim inventory
将 postgres_data_dir 更改为 /var/lib/pgdocker 目录。
postgres_data_dir=/var/lib/pgdocker
将 host_port 更改为 8080。
host_port=8080
取消注释 use_docker_compose 行并将值更改为 true,因为我们将使用 docker compose 管理 awx。
use_docker_compose=true
现在确保 docker_compose_dir 位于 /var/lib/awx 目录中。
docker_compose_dir=/var/lib/awx
使用您自己的密码凭据更改 pg_password、rabbitmq_password、rabbitmq_erlang_cookie、admin_user 和 admin_password 的凭据。
...
pg_password=hakaseposgresawx
...
rabbitmq_password=hakaserabbitmqawx
rabbitmq_erlang_cookie=cookiemonster
...
admin_user=hakase
admin_password=hakasepass
...
之后,使用顶部生成的密钥更改 awx 配置的密钥。
secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33
然后取消注释 project_data_dir 并将值保留为默认值。
project_data_dir=/var/lib/awx/projects
保存并关闭配置。
以下是清单文件的编辑。
grep -v '^#' inventory
库存配置文件。
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=/var/lib/pgdocker
host_port=8080
use_docker_compose=true
docker_compose_dir=/var/lib/awx
pg_username=awx
pg_password=hakaseposgresawx
pg_database=awx
pg_port=5432
rabbitmq_password=hakaserabbitmqawx
rabbitmq_erlang_cookie=cookiemonster
admin_user=hakase
admin_password=hakasepass
create_preload_data=True
secret_key=cbdd4c70bbf82d572bfbdd454b28172642e6b8061b8c8b4937d9134294d30e33
project_data_dir=/var/lib/awx/projects
因此,我们准备在下一阶段安装 awx。
第 4 步 - 安装 Ansible AWX
使用以下 ansible-playbook 命令安装 awx。
ansible-playbook -i inventory install.yml
该剧本将执行一些任务,包括下载 docker 镜像和创建新容器 postgresql、memcached、rabbitmq、awx 网络应用程序和 awx 任务。
下面是结果。

接下来,进入 /var/lib/awx 目录,您将获得 docker-compose.yml 配置。然后使用 docker-compose 命令检查所有可用的 docker 容器。
cd /var/lib/awx
docker-compose ps
您将看到如下所示的 awx 容器。

此外,您可以使用以下命令检查任务服务的日志。
docker-compose logs task
第 5 步 - 安装 Nginx 并将其配置为反向代理
安装awx后,我们将安装并配置Nginx作为运行端口8080的awx的反向代理。
使用以下 apt 命令安装 Nginx。
sudo apt install nginx -y
安装完成后,转到 /etc/nginx/sites-available/ 目录并使用 vim 编辑器创建一个名为 awx 的新虚拟主机配置。
cd /etc/nginx/sites-available/
vim awx
现在粘贴下面的配置。
server {
listen 80;
server_name awx.hakase-labs.io;
add_header Strict-Transport-Security max-age=2592000;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443 ssl http2;
server_name awx.hakase-labs.io;
access_log /var/log/nginx/awx.access.log;
error_log /var/log/nginx/awx.error.log;
ssl on;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl_session_timeout 5m;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://10.5.5.20:8080/;
}
}
将域名和proxy_pass IP地址改成你自己的,然后保存退出。
现在激活 awx 虚拟主机并测试 nginx 配置。
ln -s /etc/nginx/sites-available/awx /etc/nginx/sites-enabled/
nginx -t

确保nginx配置没有错误,然后重启nginx服务。
sudo systemctl restart nginx
至此,作为awx反向代理的Nginx安装配置就完成了。
第 6 步 - 配置 UFW 防火墙
将 SSH、HTTP 和 HTTPS 服务添加到 UFW 防火墙配置。
ufw allow ssh
ufw allow http
ufw allow https
现在启动并启用 ufw 防火墙服务。
ufw enable
键入 y 为 yes,ufw 防火墙已配置。
第 7 步 - 测试
打开您的 Web 浏览器并在地址栏中输入您的 awx URL。
https://awx.hakase-labs.io
您将看到如下所示的 awx 登录页面。

现在键入用户 hakase 和密码 hakasepass,然后单击登录按钮。
现在您将获得如下所示的 awx 管理仪表板。

Ansible AWX 与 Nginx 反向代理的安装已经成功完成。