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
相关推荐
tyatyatya1 天前
Ansible自动化配置,从入门到实战
运维·自动化·ansible
lbb 小魔仙2 天前
【Linux】Ansible 自动化运维实战:2000+ 节点配置标准化教程
linux·运维·ansible
扑火的小飞蛾5 天前
【Ansible学习笔记01】 批量执行 shell 命令
笔记·学习·ansible
oMcLin5 天前
如何在 Red Hat Linux 服务器上使用 Ansible 自动化部署并管理多节点 Hadoop 集群?
linux·服务器·ansible
linux修理工8 天前
vagrant ubuntu 22.04 ansible 配置
ubuntu·ansible·vagrant
biubiubiu07069 天前
Ansible自动化
运维·自动化·ansible
秋4279 天前
ansible配置与模块介绍
ansible
秋42710 天前
ansible剧本
linux·服务器·ansible
码农101号11 天前
Ansible - Role介绍 和 使用playbook部署wordPress
android·ansible
2301_8000509913 天前
Ansible
运维·ansible