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
访问示例如下: