27、Ansible Tower入门指南

Ansible Tower入门指南

Ansible Tower入门指南

1. 理解Ansible Tower

Ansible Tower为大型环境中的Ansible管理提供了基于Web的环境。通过其仪表盘,你可以轻松了解Ansible的当前状态、作业活动以及近期作业的成功与失败情况。此外,它还具有以下优点:
| 特性 | 描述 |
| — | — |
| 工作流设计 | 可在Ansible Tower中对复杂流程进行建模,不同的剧本可以连接在一起,并使用不同的清单和凭证来运行。 |
| 活动日志记录 | 提供活动日志,方便查询特定用户在特定时间运行的作业。 |
| 可扩展性 | 可以构建集群,最多20个集群节点可协同工作,以可扩展的方式提供Ansible控制节点功能,服务多达200,000个节点。 |
| 通知功能 | 可配置为向特定用户发送通知。 |
| 调度功能 | 能够安排作业在特定时间运行。 |
| 集成清单 | 可以使用多个清单源,并将其呈现为一个大清单,无论清单主机来自何处。 |
| 自助服务 | 便于将作业委派给特定用户,可创建用户账户并授予特定权限。 |
| 远程执行 | 提供易于使用的远程命令执行界面,可在选定节点上运行临时命令。 |
| REST API和Tower CLI工具 | 除了Web界面,还提供REST API和towercli命令行工具,允许用户直接与API交互。 |

Ansible Tower是Red Hat的产品,带有企业许可证以提供更新和支持。你可以在ansible.com请求有限的评估版本,也可以使用开源上游项目AWX。配置完成后,Tower和AWX没有区别,但两者的设置过程差异较大。

安装要求

安装任一解决方案都需要一个专用节点,该节点需满足以下要求:
- 4 GB RAM(建议8 GB)
- 2 vCPUs
- 20 GB磁盘空间,管理大量节点时需要更多空间
- RHEL 7或8

被管理的机器没有特定要求,因为Ansible即使与Ansible Tower一起使用,仍然是无代理的,即使用常规的访问机制来管理机器。

2. 安装Ansible Tower

要安装Ansible Tower软件,你需要从www.ansible.com获取免费评估版本。以下是在安装了CentOS 8.x的虚拟机上安装Ansible Tower的步骤:
1. 访问https://ansible.com/products/tower ,请求Ansible Tower的免费评估版本。
2. 将包含Ansible软件的tarball文件存储在你的主目录中,文件名应为ansible - tower - setup - latest.tar。
3. 使用以下命令将tar归档文件提取到当前目录:

tar xvf ansible-tower-setup-latest.tar
  1. 使用以下命令进入提取tarball文件后创建的目录:
cd ansible[Tab]
  1. 输入以下命令打开提供的清单文件,并设置密码:
vim inventory

确保设置以下密码:

admin_password='password'
pg_password='password'
rabbitmq_password='password'
  1. 使用以下命令运行setup.sh文件,安装大约需要15分钟:
sudo ./setup.sh
  1. 安装完成后,使用https://localhost 访问Ansible Tower主网页,使用提供的凭证登录。
  2. 此时会提示你输入许可证,有以下三种获取许可证的选项:
    • 如果你没有许可证,点击“Request License”链接请求一个。
    • 如果你有许可证文件,使用“Browse”按钮浏览到该文件的位置。
    • 如果你当前的Red Hat ID有权使用许可证,使用你的Red Hat用户名和密码登录。
  3. 输入许可证详细信息后,勾选同意许可证条件的复选框,然后点击“Submit”,即可访问Ansible Tower网页。

3. 安装AWX

AWX的安装方式与Ansible Tower不同,它以容器的形式提供,可在OpenShift、Kubernetes或Docker - Compose中使用。其中,Docker - Compose方法最容易实现,因为它不需要设置完整的容器编排平台。以下是在Docker - Compose上设置AWX的步骤:
1. 禁用防火墙:

sudo systemctl disable --now firewalld
  1. 禁用SELinux,并使其永久生效:
sudo setenforce 0

编辑 /etc/sysconfig/selinux 配置文件,添加以下行:

SELINUX=disabled
  1. 安装EPEL存储库:
sudo yum install epel-release
  1. 安装Ansible:
sudo yum install ansible
  1. 克隆AWX GitHub存储库:
git clone https://github.com/ansible/awx
  1. 安装支持包:
sudo yum install yum-utils device-mapper-persistent-data lvm2
  1. 添加Docker存储库:
sudo yum config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 移除默认的CentOS/RHEL 8容器管理工具podman:
sudo yum remove podman -y
  1. 安装Docker社区版软件:
sudo yum install docker-ce docker-ce-cli containerd.io --nobest -y
  1. 启用Docker守护进程:
sudo systemctl enable --now docker
  1. 将当前用户添加到docker组:
sudo usermod -aG docker $(whoami)
  1. 使新的组权限生效:
newgrp docker
  1. 创建Python符号链接:
sudo ln -s /usr/bin/python3 /usr/bin/python
  1. 安装Docker Compose软件:
sudo pip3 install docker-compose
  1. 编辑 ~/awx/installer/inventory 文件,确保包含以下行:
pg_admin_password=password

查找现有的 pg_admin_password 行并移除注释符号。
16. 进入安装目录并启动安装:

cd ~/awx/installer
ansible-playbook -i inventory install.yml
  1. 安装完成后,使用以下命令验证Docker容器是否已启动:
docker ps
  1. 使用以下命令查看 awx_task 容器的日志,确保显示“completed”,此过程大约需要五分钟:
docker logs -f awx_task
  1. 任务完成后,使用http://localhost 访问AWX网页,使用用户名 admin 和密码 password 登录。

4. 使用Ansible Tower管理节点

使用Ansible Tower管理机器时,需要做到以下几点来连接这些机器:
- 为被管理的机器设置名称解析。
- 确保被管理的机器运行可通过防火墙访问的SSH进程。
- 需要一个具有sudo权限的用户账户。
- 设置密码和SSH密钥。

如果你已经熟悉了相关操作,设置Tower很简单,只需在Tower节点上执行以下任务:
- 创建一个ansible用户。
- 使用 ssh-keygen 生成SSH密钥对。
- 使用 ssh-copy-id 将公钥复制到被管理的机器上。

由于之前已经设置了被管理的主机,因此不需要额外的配置。而且,你不需要配置清单或ansible.cfg文件,因为这些功能由Ansible Tower接管。

5. 理解Ansible Tower核心组件

使用Ansible Tower时,需要配置一些关键资源:
| 组件 | 描述 |
| — | — |
| 组织 | 是被管理设备的集合,在评估版本中只有一个组织可用。 |
| 用户 | 可以创建不同的用户,并为其配置基于角色的访问控制(RBAC)。 |
| 清单 | 即被管理的服务器,可以静态或动态创建。 |
| 凭证 | 用于登录被管理机器,通常包括Ansible控制节点用户账户、SSH公钥和sudo权限。 |
| 项目 | 是从特定位置(如GitHub)获取的剧本集合。 |
| 模板 | 是包含所有参数的作业定义,作业必须从模板启动和调度。 |

6. 在Ansible Tower中运行项目

要在Ansible Tower中设置项目,首先要确保有一些由Ansible管理的机器可用,并且这些机器上设置了专用的Ansible用户账户,该账户配置了sudo权限提升和SSH远程访问。以下是设置项目的步骤:
1. 登录Tower Web界面,从左侧面板选择“Inventories”,点击“+”号添加新清单,选择“Inventory”选项。
2. 输入“webservers”作为此清单项目的名称,点击右下角的“Save”保存新项目。
3. 保存新清单后,点击“Hosts”,在出现的界面中点击“+”号添加新主机,输入主机名和可选描述,然后点击“Save”保存。重复此步骤添加其他主机。
4. 从“Hosts”界面向下滚动,验证主机是否已成功添加。
5. 添加主机后,需要添加凭证。凭证包含用户账户和连接到被管理主机所需的所有信息。从左侧面板的“Resources”部分选择“Credentials”。
6. 在“Credentials”界面中,点击“+”添加新凭证。首先指定凭证名称,然后确保选择“Machine”作为凭证类型。
7. 输入凭证名称和类型后,指定用户名(即你在被管理主机上设置的远程用户),并指定连接方式。若使用SSH公私钥对进行身份验证,需确保SSH私钥在“SSH PRIVATE KEY”字段中,可使用GNOME图形界面的“Files”工具将 id_rsa 文件拖到该字段(设置“View Hidden Files”选项)。
8. 指定远程用户名和SSH密钥后,配置权限提升,设置为“sudo”,并输入特权提升用户名为“root”。假设在被管理主机上运行sudo命令不需要密码,则无需输入其他内容,点击“Save”保存凭证。
9. 创建凭证后,可以创建项目。在Ansible Tower项目中,连接到你想要在Ansible项目中使用的YAML文件。通常通过版本控制系统(如GitHub)提供这些源文件。从左侧面板的“Resources”部分点击“Projects”。
10. 在“Projects”界面中,点击“+”添加新项目。输入名称“webservers”,确保组织名称设置为“Default”。从“SCM TYPE”字段中选择“Git”,若有自己的Git仓库可使用,否则使用https://github.com/sandervanvugt/ansible - demoproject 作为示例项目。点击“Save”保存项目。
11. 创建模板,模板是连接所有内容并配置实际作业的地方。从左侧面板的“Resources”部分点击“Templates”,然后点击“+”添加模板,选择“Job Template”。
12. 定义模板时,首先输入名称,将作业类型设置为“Run”(也可选择“Check”进行试运行和语法检查)。使用下拉列表选择之前创建的清单和项目,选择项目后可访问其提供的剧本。选择之前创建的凭证,并选择“Enable Privilege Escalation”完成模板设置,点击“Save”保存作业设置。
13. 指定所有模板选项后,滚动到模板页面底部,点击火箭图标基于此模板启动作业。
14. 启动作业后,会打开作业状态屏幕,可查看作业是否成功运行。若过程出错,阅读命令输出并尝试理解和修复。
15. 修复问题后,再次点击火箭图标重新启动作业模板。如果一切顺利,此时应显示“Successful”状态。

通过以上步骤,你可以了解如何使用Ansible Tower,包括其优点、安装方法、节点管理、核心组件理解以及项目运行等内容。Ansible Tower还有更多功能,希望本指南能帮助你入门。

7. 总结

通过前面的介绍,我们全面了解了Ansible Tower的相关内容。下面通过一个流程图来回顾一下使用Ansible Tower的主要步骤:

graph LR
    A[安装Ansible Tower/AWX] --> B[理解核心组件]
    B --> C[管理节点]
    C --> D[运行项目]
    D --> E[项目成功运行]
    A1(安装Ansible Tower) --> A
    A2(安装AWX) --> A
    B1(组织) --> B
    B2(用户) --> B
    B3(清单) --> B
    B4(凭证) --> B
    B5(项目) --> B
    B6(模板) --> B
    C1(设置名称解析) --> C
    C2(确保SSH进程) --> C
    C3(创建用户账户) --> C
    C4(设置SSH密钥) --> C
    D1(创建清单) --> D
    D2(添加主机) --> D
    D3(添加凭证) --> D
    D4(创建项目) --> D
    D5(创建模板) --> D
    D6(启动作业) --> D

7.1 Ansible Tower与AWX的对比

对比项 Ansible Tower AWX
性质 Red Hat产品,有企业许可证 开源上游项目
安装方式 从官网获取评估版本安装 以容器形式在OpenShift、Kubernetes或Docker - Compose中安装,这里介绍的是Docker - Compose方式
功能 功能完整,有官方支持和更新 功能与Tower基本相同,但社区维护为主

7.2 关键步骤总结

为了方便大家快速回顾,下面总结了使用Ansible Tower的关键步骤:
1. 安装
- Ansible Tower:获取评估版本,解压,配置密码,运行安装脚本,输入许可证。
- AWX:禁用防火墙和SELinux,安装相关依赖,克隆仓库,安装Docker和Docker Compose,配置并运行安装脚本。
2. 管理节点 :设置名称解析、SSH进程、用户账户和SSH密钥。
3. 运行项目 :创建清单、添加主机、添加凭证、创建项目、创建模板、启动作业。

8. 常见问题及解决方法

在使用Ansible Tower和AWX的过程中,可能会遇到一些常见问题,下面为大家列举并给出解决方法:
| 问题 | 现象 | 解决方法 |
| — | — | — |
| 安装失败 | 安装过程中出现错误提示,如依赖安装失败、脚本执行出错等 | 检查网络连接,确保所需的软件源可访问;查看错误日志,根据提示解决问题,如缺少依赖则手动安装 |
| 无法登录 | 输入正确的用户名和密码后,无法登录到Web界面 | 检查防火墙设置,确保端口开放;检查配置文件中的密码是否正确 |
| 作业运行失败 | 作业状态显示失败,命令输出有错误信息 | 查看命令输出,根据错误信息检查清单、凭证、项目等是否配置正确,如主机名解析问题可检查 /etc/hosts 文件 |

9. 未来展望

Ansible Tower作为一款强大的自动化管理工具,未来可能会有更多的功能扩展和优化。例如:
- 更强大的集成功能 :与更多的第三方工具和平台进行集成,如监控系统、CI/CD工具等,实现更全面的自动化流程。
- 增强的用户体验 :进一步优化Web界面和CLI工具,使其更加易用和高效,降低用户的学习成本。
- 更好的性能和扩展性 :通过技术优化,提高Ansible Tower在大规模环境下的性能和扩展性,满足更多企业的需求。

总之,Ansible Tower为我们提供了一个便捷、高效的自动化管理解决方案。希望大家通过本指南能够快速上手,在实际工作中发挥其强大的功能。如果你在使用过程中遇到任何问题,欢迎在评论区留言交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值