如何在 Ubuntu 18.04 LTS 上使用 Nginx 反向代理安装 Ansible AWX如何在 Ubuntu 18.04 LTS 上使用 Nginx 反向代理安装 Ansible AWX如何在 Ubuntu 18.04 LTS 上使用 Nginx 反向代理安装 Ansible AWX如何在 Ubuntu 18.04 LTS 上使用 Nginx 反向代理安装 Ansible AWX
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 18.04 LTS 上使用 Nginx 反向代理安装 Ansible AWX

在此页

  1. 第 1 步 - 安装 Docker 和 Ansible
  2. 第 2 步 - 安装其他软件包
  3. 第 3 步 - 下载 AWX 源代码并进行配置
  4. 第 4 步 - 安装 Ansible AWX
  5. 第 5 步 - 安装 Nginx 并将其配置为反向代理
  6. 第 6 步 - 配置 UFW 防火墙
  7. 第 7 步 - 测试
  8. 参考资料

AWX 是一个开源 Web 应用程序,它为 Ansible 提供用户界面、REST API 和任务引擎。它是 Ansible Tower 的开源版本。 AWX 允许您使用 Web 界面管理 Ansible 剧本、清单和安排作业运行。

在本教程中,我们将向您展示如何在 Ubuntu 服务器 18.04 上安装和配置 AWX。我们将安装带有 Nginx 的 AWX 作为反向代理并建立在 HTTPS 安全连接之上。

先决条件

  • Ubuntu 服务器 18.04
  • RAM 内存 +4GB 和 2 核
  • 根权限

我们将要做什么:

  1. 安装 Docker 和 Ansible
  2. 安装附加包
  3. 下载并配置 Ansible AWX 源代码
  4. 安装 Ansible AWX
  5. 安装 Nginx 并将其配置为反向代理
  6. 设置 UFW 防火墙
  7. 测试

第 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 反向代理的安装已经成功完成。

参考

©2015-2025 艾丽卡 support@alaica.com