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
- 使用以下命令进入提取tarball文件后创建的目录:
cd ansible[Tab]
- 输入以下命令打开提供的清单文件,并设置密码:
vim inventory
确保设置以下密码:
admin_password='password'
pg_password='password'
rabbitmq_password='password'
- 使用以下命令运行setup.sh文件,安装大约需要15分钟:
sudo ./setup.sh
- 安装完成后,使用https://localhost 访问Ansible Tower主网页,使用提供的凭证登录。
-
此时会提示你输入许可证,有以下三种获取许可证的选项:
- 如果你没有许可证,点击“Request License”链接请求一个。
- 如果你有许可证文件,使用“Browse”按钮浏览到该文件的位置。
- 如果你当前的Red Hat ID有权使用许可证,使用你的Red Hat用户名和密码登录。
- 输入许可证详细信息后,勾选同意许可证条件的复选框,然后点击“Submit”,即可访问Ansible Tower网页。
3. 安装AWX
AWX的安装方式与Ansible Tower不同,它以容器的形式提供,可在OpenShift、Kubernetes或Docker - Compose中使用。其中,Docker - Compose方法最容易实现,因为它不需要设置完整的容器编排平台。以下是在Docker - Compose上设置AWX的步骤:
1. 禁用防火墙:
sudo systemctl disable --now firewalld
- 禁用SELinux,并使其永久生效:
sudo setenforce 0
编辑
/etc/sysconfig/selinux
配置文件,添加以下行:
SELINUX=disabled
- 安装EPEL存储库:
sudo yum install epel-release
- 安装Ansible:
sudo yum install ansible
- 克隆AWX GitHub存储库:
git clone https://github.com/ansible/awx
- 安装支持包:
sudo yum install yum-utils device-mapper-persistent-data lvm2
- 添加Docker存储库:
sudo yum config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 移除默认的CentOS/RHEL 8容器管理工具podman:
sudo yum remove podman -y
- 安装Docker社区版软件:
sudo yum install docker-ce docker-ce-cli containerd.io --nobest -y
- 启用Docker守护进程:
sudo systemctl enable --now docker
- 将当前用户添加到docker组:
sudo usermod -aG docker $(whoami)
- 使新的组权限生效:
newgrp docker
- 创建Python符号链接:
sudo ln -s /usr/bin/python3 /usr/bin/python
- 安装Docker Compose软件:
sudo pip3 install docker-compose
-
编辑
~/awx/installer/inventory文件,确保包含以下行:
pg_admin_password=password
查找现有的
pg_admin_password
行并移除注释符号。
16. 进入安装目录并启动安装:
cd ~/awx/installer
ansible-playbook -i inventory install.yml
- 安装完成后,使用以下命令验证Docker容器是否已启动:
docker ps
-
使用以下命令查看
awx_task容器的日志,确保显示“completed”,此过程大约需要五分钟:
docker logs -f awx_task
-
任务完成后,使用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为我们提供了一个便捷、高效的自动化管理解决方案。希望大家通过本指南能够快速上手,在实际工作中发挥其强大的功能。如果你在使用过程中遇到任何问题,欢迎在评论区留言交流。
Ansible Tower入门指南
超级会员免费看
1649

被折叠的 条评论
为什么被折叠?



