本教程适用于以下操作系统版本
- Debian 11 (Bullseye)
- Debian 10 (Buster)
本页内容
- 先决条件
- 添加 Ansible 仓库
- 在 Debian 11 上安装 Ansible
- 安装 Docker CE
- 安装 Docker Compose 及其他依赖
- 安装 Ansible AWX
- 访问 Ansible AWX
Ansible AWX 是由 Red Hat 赞助的免费开源 Web 应用程序,可用于管理 Ansible playbooks 和 inventories。它提供基于 Web 的界面,使 Ansible 在 IT 环境中使用起来更加便捷。它还提供 REST API,可帮助你控制访问权限,并以图形方式管理或与各种云来源同步 inventory。
本教程将向你展示如何在 Debian 11 上安装 Ansible AWX 软件。
先决条件
- 一台运行 Debian 11 的服务器。
- 服务器上已配置 root 密码。
添加 Ansible 仓库
Debian 11 默认仓库中默认不包含 Ansible 软件包。因此你需要在服务器上添加 Ansible 仓库。
首先,使用以下命令安装所有必需的依赖项:
apt-get install apt-transport-https ca-certificates software-properties-common unzip gnupg2 curl git -y
所有依赖项安装完成后,编辑 sources.list 文件并添加 Ansible 仓库:
nano /etc/apt/sources.list
添加以下行:
deb http://ppa.launchpad.net/ansible/ansible/ubuntu focal main
保存并关闭文件,然后使用以下命令添加 GPG 密钥:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
你将看到以下输出:
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). Executing: /tmp/apt-key-gpghome.47eo2M3Kib/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 gpg: key 93C4A3FD7BB9C367: public key "Launchpad PPA for Ansible, Inc." imported gpg: Total number processed: 1 gpg: imported: 1
接下来,使用以下命令更新仓库缓存:
apt-get update -y
在 Debian 11 上安装 Ansible
现在,运行以下命令安装 Ansible:
apt-get install ansible -y
Ansible 安装完成后,使用以下命令验证 Ansible 版本:
ansible --version
你将看到以下输出:
ansible [core 2.11.6] config file = /etc/ansible/ansible.cfg configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python3/dist-packages/ansible ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections executable location = /usr/bin/ansible python version = 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110] jinja version = 2.11.3 libyaml = True
完成后,你可以进入下一步。
安装 Docker CE
默认情况下,Debian 11 默认仓库中不包含最新版本的 Docker CE。因此你需要将其添加到 APT 中。
首先,使用以下命令下载并添加 Docker GPG 密钥:
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
接下来,使用以下命令将 Docker CE 仓库添加到 APT:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list
接下来,使用以下命令更新仓库并安装 Docker CE:
apt-get update -y
apt-get install docker-ce -y
安装完成后,使用以下命令验证 Docker 的状态:
systemctl status docker
你将看到以下输出:
? docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-11-01 04:59:11 UTC; 26min ago
TriggeredBy: ? docker.socket
Docs: https://docs.docker.com
Main PID: 5066 (dockerd)
Tasks: 32
Memory: 1.0G
CPU: 1min 57.723s
CGroup: /system.slice/docker.service
?? 5066 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
??21970 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 80 -container-ip 172.18.0.2 -container-port 8052
??21994 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 80 -container-ip 172.18.0.2 -container-port 8052
Nov 01 04:59:11 debian11 dockerd[5066]: time="2021-11-01T04:59:11.756163493Z" level=info msg="Docker daemon" commit=e2f740d graphdriver(s)=ove>
Nov 01 04:59:11 debian11 dockerd[5066]: time="2021-11-01T04:59:11.756303194Z" level=info msg="Daemon has completed initialization"
Nov 01 04:59:11 debian11 systemd[1]: Started Docker Application Container Engine.
Nov 01 04:59:11 debian11 dockerd[5066]: time="2021-11-01T04:59:11.796631663Z" level=info msg="API listen on /run/docker.sock"
要验证 Docker 版本,请运行以下命令:
docker -v
你应该会看到以下输出:
Docker version 20.10.10, build b485636
完成后,你可以进入下一步。
安装 Docker Compose 及其他依赖
首先,使用以下命令从 Git 仓库下载 Docker Compose 二进制文件:
wget https://github.com/docker/compose/releases/download/1.29.0/docker-compose-Linux-x86_64
接下来,将下载的二进制文件移动到 /usr/bin/ 目录:
mv docker-compose-Linux-x86_64 /usr/bin/docker-compose
接下来,为 docker-compose 二进制文件设置可执行权限:
chmod +x /usr/bin/docker-compose
接下来,使用以下命令验证 Docker Compose 版本:
docker-compose version
你将看到以下输出:
docker-compose version 1.29.0, build 07737305
docker-py version: 5.0.0
CPython version: 3.7.10
OpenSSL version: OpenSSL 1.1.0l 10 Sep 2019
接下来,使用以下命令安装 Node.js 和 NPM:
apt-get install nodejs npm -y
npm install npm --global
接下来,使用以下命令安装 PIP 及其他依赖项:
apt-get install python3-pip git pwgen -y
接下来,使用以下命令安装 Docker Compose 的 Python 模块:
pip3 install docker-compose==1.29.0
完成后,你可以进入下一步。
安装 Ansible AWX
首先,使用以下命令从 GitHub 仓库下载 Ansible AWX:
wget https://github.com/ansible/awx/archive/17.1.0.zip
下载完成后,使用以下命令解压下载的文件:
unzip 17.1.0.zip
接下来,切换到解压后的目录,并使用以下命令生成密钥(secret key):
cd awx-17.1.0/installer/
pwgen -N 1 -s 30
你将看到以下输出:
dGF8eiFiTkzpaqpWyckxSLe57sZNfJ
接下来,编辑 inventory 文件,并定义你的密钥(secret key)、管理员用户名和密码:
nano inventory
修改以下行:
admin_user=admin admin_password=securepassword secret_key=dGF8eiFiTkzpaqpWyckxSLe57sZNfJ
保存并关闭文件,然后运行 Ansible playbook 安装 Ansible AWX:
ansible-playbook -i inventory install.yml
Ansible AWX 安装完成后,你将看到以下输出:
TASK [local_docker : Create Redis socket directory] *******************************************************************************************
changed: [localhost]
TASK [local_docker : Create Docker Compose Configuration] *************************************************************************************
changed: [localhost] => (item={'file': 'environment.sh', 'mode': '0600'})
changed: [localhost] => (item={'file': 'credentials.py', 'mode': '0600'})
changed: [localhost] => (item={'file': 'docker-compose.yml', 'mode': '0600'})
changed: [localhost] => (item={'file': 'nginx.conf', 'mode': '0600'})
changed: [localhost] => (item={'file': 'redis.conf', 'mode': '0664'})
TASK [local_docker : Render SECRET_KEY file] **************************************************************************************************
changed: [localhost]
TASK [local_docker : Remove AWX containers before migrating postgres so that the old postgres container does not get used] ********************
ok: [localhost]
TASK [local_docker : Run migrations in task container] ****************************************************************************************
changed: [localhost]
TASK [local_docker : Start the containers] ****************************************************************************************************
changed: [localhost]
TASK [local_docker : Update CA trust in awx_web container] ************************************************************************************
changed: [localhost]
TASK [local_docker : Update CA trust in awx_task container] ***********************************************************************************
changed: [localhost]
TASK [local_docker : Wait for launch script to create user] ***********************************************************************************
ok: [localhost -> localhost]
TASK [local_docker : Create Preload data] *****************************************************************************************************
changed: [localhost]
PLAY RECAP ************************************************************************************************************************************
localhost : ok=21 changed=12 unreachable=0 failed=0 skipped=73 rescued=0 ignored=1
上述 playbook 将下载一些 Docker 镜像并创建一个 Ansible AWX 容器。
要验证所有 Docker 镜像,请运行:
docker images
你应该会看到以下输出:
REPOSITORY TAG IMAGE ID CREATED SIZE postgres 12 108ccc7c5fa3 5 days ago 371MB redis latest 7faaec683238 2 weeks ago 113MB centos 8 5d0da3dc9764 6 weeks ago 231MB ansible/awx 17.1.0 599918776cf2 7 months ago 1.41GB
要验证所有正在运行的容器,请运行:
docker ps
你应该会看到以下输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b6cd8d874b09 ansible/awx:17.1.0 "/usr/bin/tini -- /u…" 2 minutes ago Up 2 minutes 8052/tcp awx_task 65dd0c36334a ansible/awx:17.1.0 "/usr/bin/tini -- /b…" 5 minutes ago Up 2 minutes 0.0.0.0:80->8052/tcp, :::80->8052/tcp awx_web 4119ca4a1d24 postgres:12 "docker-entrypoint.s…" 5 minutes ago Up 2 minutes 5432/tcp awx_postgres 212b73bfe362 redis "docker-entrypoint.s…" 5 minutes ago Up 2 minutes 6379/tcp awx_redis
访问 Ansible AWX
现在,打开你的 Web 浏览器,使用 URL http://your-server-ip 访问 Ansible AWX Web 界面。你应该会看到 Ansible AWX 登录页面:

输入你的管理员用户名和密码,然后点击 Login 按钮。你应该在以下界面看到 Ansible AWX 仪表板:

恭喜!你已成功在 Debian 11 上安装 Ansible AWX。