ansible+awx搭建

1、环境介绍
操作系统版本:龙蜥os 8.9
docker 版本:26.0.2
python版本:3.11.9
ansible版本:2.16.6
awx版本:24.2.0
2、安装docker
设置软件源

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

删除旧版docker

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

安装docker

yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin

在这里插入图片描述
启动docker

systemctl start docker
systemctl enable docker

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

版本号 自己替换

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

加执行权限

chmod +x /usr/local/bin/docker-compose

创建软连接

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

在这里插入图片描述
4、安装epel源

yum install epel-release

5、安装python3
python下载地址
https://www.python.org/downloads/
选好版本下载

wget https://www.python.org/ftp/python/3.11.9/Python-3.11.9.tar.xz

解压
在这里插入图片描述
安装编译器

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

编译

./configure 

安装

make && make install

创建软连接

ln -s /usr/local/bin/python3.11 /usr/local/bin/python

在这里插入图片描述
5、安装ansible
如果安装不了,使用国内源

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

在这里插入图片描述
6、安装awx
(1)下载包

git clone https://github.com/ansible/awx.git

(2)构建镜像
在这里插入图片描述

make docker-compose-build

在这里插入图片描述
(3)启动容器并生成ui

make docker-compose

等待容器启动后,生成ui

docker exec tools_awx_1 make clean-ui ui-devel

(4)完成安装以及下次启动
在这里插入图片描述
下次启动直接启动容器就行了

docker start $(docker ps -a -q)

(5)创建登录用户

docker exec -ti tools_awx_1 awx-manage createsuperuser

(6)登录
登录地址
https://localhost:8043/#/home
在这里插入图片描述
记得修改密码
在这里插入图片描述
7、使用
在这里插入图片描述
凭证:就是各类用户名密码
项目:palybook所在位置
清单:定义使用哪些Ansible实例和机构组织
主机:定义具体主机,引用定义清单(清单和主机这两个相当于命令行的清单)
模版:把凭证,项目,清单,主机逻辑成一个

windows主机示例
凭证:
在这里插入图片描述
项目:
指定gitlab中的playbook
在这里插入图片描述
清单:
在这里插入图片描述
清单这里设置windows环境变量:指定使用winrm,控制windows

---
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批处理

@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,端口 5985echo 添加防火墙规则...
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中 添加构建容器时的环境变量

ENV PIP_INDEX_URL=https://pypi.mirrors.ustc.edu.cn/simple/
ENV PIP_TRUSTED_HOST=mirrors.ustc.edu.cn

在这里插入图片描述

### 使用 Docker 部署 Ansible AWX #### 一、AWX 基本概述 AWX 是由 Red Hat 开源的一个项目,它是 Ansible Tower 的社区版本。它提供了与 Ansible Tower 类似的功能集,允许用户通过 Web UI 或 API 来管理和运行 Ansible Playbooks[^1]。 --- #### 二、环境准备 在开始部署之前,需要确保服务器上已经安装并配置好以下组件: - **Docker**: 提供容器化支持。 - **Python**: 用于解析和执行 Ansible 和其他脚本文件。 - **Git**: 如果需要从远程仓库拉取代码,则需提前安装 Git 工具。 具体操作可以通过以下命令完成依赖项的验证和安装: ```bash yum install -y docker git python3-pip pip3 install --upgrade pip ``` 启动并设置 Docker 自动开机加载服务: ```bash systemctl start docker && systemctl enable docker ``` --- #### 三、下载 AWX 源码 克隆官方 GitHub 上的 AWX 仓库到本地目录中以便后续构建镜像和服务实例: ```bash git clone https://github.com/ansible/awx.git /opt/awx/ cd /opt/awx/installer/ ``` --- #### 四、编辑 Inventory 文件 进入 `installer` 子目录后找到名为 `inventory` 的配置清单文档,在其中定义必要的变量来满足实际需求场景下的定制化调整工作。例如指定 PostgreSQL 数据库用户名密码以及监听端口号等参数值如下所示[^3]: ```ini localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python" [all:vars] dockerhub_base=ansible dockerhub_version=latest postgres_data_dir=/tmp/pgdocker host_port=80 docker_compose_dir=/var/lib/awx pg_username=awx pg_password=your_secure_password_here pg_database=awx pg_port=5432 secret_key=my_custom_secret_for_awx awx_official=true project_data_dir=/var/lib/awx/projects ``` > 注意:为了安全起见,请务必更改默认数据库密码和其他敏感字段的内容! --- #### 五、初始化部署流程 当所有前期准备工作完成后即可调用 Ansible playbook 脚本来正式开启整个项目的搭建过程。此阶段会自动创建所需的各种资源对象包括但不限于网络桥接器、数据卷存储位置等等[^4]: ```bash ansible-playbook -i inventory install.yml ``` 如果遇到错误或者希望查看更详细的日志信息可以加上 `-vvv` 参数再次尝试执行上述指令直到成功为止。 --- #### 六、访问管理界面 一旦以上步骤顺利完成之后就可以打开浏览器输入对应主机地址加端口 (如 http://<server-ip>:80/) 即可看到登录页面,默认超级管理员账户名 admin 密码 password ,建议首次登陆后立即修改初始凭证组合以防被恶意攻击者利用漏洞入侵系统内部结构造成不可挽回的数据损失风险隐患等问题发生。 --- ### 总结 综上所述,借助于现代化 DevOps 技术栈中的明星产品之一 —— Docker 可以极大地简化复杂应用程序的整体交付周期时间成本开销等方面的优势特点体现得淋漓尽致;与此同时配合强大的自动化编排引擎——Ansible 更进一步提升了工作效率质量标准水平线高度达到了前所未有的新境界层次之上去了呢! ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值