AWX部署
目录
AWX简介
AWX提供了一个基于web的用户界面、REST API和构建在Ansible之上的任务引擎,其是红帽商业自动化平台ansible tower的上游开源项目。
使用Ansible AWX,可以通过可视化仪表板,基于角色的访问控制,作业计划,集成通知和图形化inventory管理来集中控制IT基础架构。
借助图形化的AWX,能够更方便的编排和部署 Ansible Playbook,并提供集中的日志记录、审计和系统跟踪,通过REST API和CLI轻松将Ansible AWX嵌入现有工具和流程中。
AWX部署
需要说明的是, 官方从18版本开始,推荐使用awx-operator直接将awx部署至kubernetes,而使用docker部署awx至单机的方式只建议用于开发环境。
在18版本之前,推荐使用docker安装awx。
这里以使用docker安装awx-17.1.0为例。
#关闭selinux,并重启
setenforce 0
sed -i 's/=enforcing/=disabled/' /etc/selinux/config
1. 安装docker
# 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
# 配置yum源
wget -O /etc/yum.repos.d/docker-ce.repo https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+repo.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# 安装docker
yum install -y docker-ce
# 配置加速器
mkdir -p /etc/docker
cat /etc/docker/daemon.json
{
"data-root": "/var/lib/docker",
"registry-mirrors": ["https://1kumbvo2.mirror.aliyuncs.com"],
"bip": "172.17.0.1/16",
"log-driver": "json-file",
"log-level": "info",
"log-opts": {
"max-size": "100m",
"max-file": "10"
}
}
# 启动docker
systemctl daemon-reload
systemctl enable docker
systemctl restart docker
2. 安装docker-compose
需要说明的是,在后续安装awx时依赖python3,这里docker-compose的部署也直接使用pip3来安装。
先配置python的虚环境:
yum install -y python3
pip3 install virtualenv
virtualenv --python=/usr/bin/python3 ~/.venv/awx
source ~/.venv/awx/bin/activate
pip3 install docker-compose docker
3. 安装ansible
yum install -y ansible
4. 安装awx
获取awx源码包
wget https://github.com/ansible/awx/archive/refs/tags/17.1.0.tar.gz
tar xf 17.1.0.tar.gz
cd awx-17.1.0/installer
修改installer/inventory内容如下
# 配置部署awx的主机
localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python3"
# 定义相关变量
[all:vars]
# awx镜像下载的仓库地址
dockerhub_base=ansible
awx_task_hostname=awx
awx_web_hostname=awxweb
# pgsql的数据存储目录
postgres_data_dir="/data/awx/pgdocker"
host_port=80
host_port_ssl=443
docker_compose_dir="/data/awx/awxcompose"
# pgsql的连接帐号
pg_username=awx
# pgsql的连接密码
pg_password=awxpass
pg_database=awx
pg_port=5432
# 管理员帐号
admin_user=admin
# 管理员密码
admin_password=redhat
create_preload_data=True
secret_key=awxsecret
# awx执行项目的存放目录
project_data_dir=/data/awx/projects
# 执行部署
ansible-playbook -i inventory install.yml
访问示例如下: