ansible+awx搭建

1、环境介绍

操作系统版本:龙蜥os 8.9

docker 版本:26.0.2

python版本:3.11.9

ansible版本:2.16.6

awx版本:24.2.0
2、安装docker

设置软件源

bash 复制代码
yum install -y yum-utils
bash 复制代码
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

删除旧版docker

bash 复制代码
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

安装docker

bash 复制代码
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

启动docker

bash 复制代码
systemctl start docker
systemctl enable docker

3、安装docker-compose
https://github.com/docker/compose/releases

版本号 自己替换

bash 复制代码
curl -L "https://github.com/docker/compose/releases/download/v2.26.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

加执行权限

bash 复制代码
chmod +x /usr/local/bin/docker-compose

创建软连接

bash 复制代码
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose


4、安装epel源

bash 复制代码
yum install epel-release

5、安装python3

python下载地址
https://www.python.org/downloads/

选好版本下载

bash 复制代码
wget https://www.python.org/ftp/python/3.11.9/Python-3.11.9.tar.xz

解压

安装编译器

bash 复制代码
yum groupinstall "Development Tools"
yum remove python3
yum install bzip2-devel ncurses-devel gdbm-devel tk-devel libuuid-devel libnsl readline-devel
yum install sqlite-devel libffi-devel
yum install openssl-devel
nss-devel

编译

bash 复制代码
./configure 

安装

bash 复制代码
make && make install

创建软连接

bash 复制代码
ln -s /usr/local/bin/python3.11 /usr/local/bin/python


5、安装ansible

如果安装不了,使用国内源

bash 复制代码
pip3 config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple
bash 复制代码
pip3 install --upgrade pip
pip3 install setuptools-rust
pip3 install ansible


6、安装awx

(1)下载包

bash 复制代码
git clone https://github.com/ansible/awx.git

(2)构建镜像

bash 复制代码
make docker-compose-build

(3)启动容器并生成ui

bash 复制代码
make docker-compose

等待容器启动后,生成ui

bash 复制代码
docker exec tools_awx_1 make clean-ui ui-devel

(4)完成安装以及下次启动

下次启动直接启动容器就行了

bash 复制代码
docker start $(docker ps -a -q)

(5)创建登录用户

bash 复制代码
docker exec -ti tools_awx_1 awx-manage createsuperuser

(6)登录

登录地址

https://localhost:8043/#/home

记得修改密码

7、使用

凭证:就是各类用户名密码

项目:palybook所在位置

清单:定义使用哪些Ansible实例和机构组织

主机:定义具体主机,引用定义清单(清单和主机这两个相当于命令行的清单)

模版:把凭证,项目,清单,主机逻辑成一个

windows主机示例

凭证:

项目:

指定gitlab中的playbook

清单:

清单这里设置windows环境变量:指定使用winrm,控制windows

bash 复制代码
---
ansible_connection: winrm
ansible_winrm_transport: ntlm
ansible_winrm_server_cert_validation: ignore
ansible_winrm_port: 5985
ansible_winrm_scheme: http
ansible_shell_type: powershell

windows 被控制的机器上启用winrm,下面是个bat批处理

bash 复制代码
@echo off

REM 检查 WinRM 服务状态
echo 检查 WinRM 服务状态...
set "service_status=NOT_RUNNING"
for /f "tokens=3 delims=: " %%a in ('sc query WinRM ^| findstr /C:"STATE"') do (
    if "%%a"=="RUNNING" (
        set "service_status=RUNNING"
    )
)
if "%service_status%"=="RUNNING" (
    echo WinRM 服务已启动,跳过启动步骤。
    goto :add_firewall_rule
)

REM 启动 WinRM 服务
echo 启动 WinRM 服务...
sc config WinRM start= auto
net start WinRM
if %ERRORLEVEL% neq 0 (
    echo 启动 WinRM 服务失败!
    pause
    exit /b 1
)

:add_firewall_rule

REM 添加防火墙规则,仅允许来自 10.99.50.230 的 IP 访问 WinRM(HTTP,端口 5985)
echo 添加防火墙规则...
netsh advfirewall firewall add rule name="WinRM HTTP" dir=in action=allow protocol=TCP localport=5985 remoteip=10.99.50.230
if %ERRORLEVEL% neq 0 (
    echo 添加 WinRM 防火墙规则失败!
    pause
    exit /b 1
)

echo WinRM 配置和防火墙规则添加完成.
pause

主机:

把清单,引入

模板:

把之前的四项,逻辑起来

模版调度这里可以定义运行时间,频率

补充

遇见pip 安装网络失败问题,找到

awx/tools/ansible/roles/dockerfile/templates/dockerfile.j2这个文件

在这个dockerfile中 添加构建容器时的环境变量

bash 复制代码
ENV PIP_INDEX_URL=https://pypi.mirrors.ustc.edu.cn/simple/
ENV PIP_TRUSTED_HOST=mirrors.ustc.edu.cn
相关推荐
Hy行者勇哥4 天前
用Cursor智能编写Ansible/Terraform脚本,打通CI/CD链路
ci/cd·ansible·terraform
芷栀夏6 天前
飞牛NAS怎么部署Immich?家庭照片自动备份与远程访问教程
服务器·nginx·ansible
悠然南风16 天前
Ansible常见模块总结及LDAP Role 编写与调试
ansible
祺风挽楠25 天前
ansible编辑
网络·ansible
芳心粽伙饭25 天前
Ansible课后作业
ansible
烁3471 个月前
Ansible初识
ansible
烁3471 个月前
Ansible安装部署调试
ansible
烁3471 个月前
Ansible命令
ansible
小义_1 个月前
【Ansible】(三)基础配置与连接设置
云原生·ansible
炸炸鱼.1 个月前
Ansible 企业级实战:Playbook 与 Roles 完全指南
网络·ansible