ogerbron.satellite6_content_views
重要提示:由于我已经转到另一份工作,我不再使用红帽卫星,因此我无法轻松维护此角色(我没有使用卫星的许可证)。但欢迎随时提交PR以改进此角色,或者使用您自己的仓库。希望你会喜欢它!
内容视图管理
satellite6-content_views是一个Ansible角色,用于轻松管理RedHat Satellite 6.x中的内容视图,如:
- 发布新的内容视图版本
- 将版本推广到环境
- 删除旧版本
此角色仅使用RedHat Satellite HTTP API。
需求
要使用此角色,您需要:
- Ansible > 2.0
- Satellite 6.x
- 从您的Ansible机器到卫星的HTTPS访问权限
- 具有管理员角色的卫星用户
开始使用
以下是使用此角色的一些示例剧本。
此角色期望一个具有足够权限的卫星用户。
发布新版本
有时,自动更新特定内容视图(例如基础操作系统内容视图)会很有利。 卫星可以安排存储库的同步,但同步的内容在管理员发布包含这些存储库的新版本的内容视图之前,对客户端是不可用的。
警告:关于复合内容视图,这将在发布之前更新内部复合视图到其最新版本。
---
- hosts: localhost
connection: local
vars:
sat_hostname: satelliteurl.example.com
sat_user: satellite_user
sat_password: satellite_password
sat_org: satellite_organization
sat_cv_name: content_view_name
roles:
- satellite6-content_views
发布并推广内容视图
发布内容视图的新版本并将其推广到环境satellite_env
。
创建内容视图的新版本后,它只在库生命周期环境中可用。
为了使其在其他环境中可用,必须进行版本的推广。
---
- hosts: localhost
connection: local
vars:
sat_hostname: satelliteurl.example.com
sat_user: satellite_user
sat_password: satellite_password
sat_org: satellite_organization
sat_cv_name: content_view_name
sat_promote: yes
sat_env_name: satellite_env
roles:
- satellite6-content_views
默认情况下,推广将遵循环境路径,并将内容视图推广到每个环境,直到到达指定的sat_env_name
。
例如,给定以下环境路径Library -> Dev -> Testing -> Production
,在上面的示例中,将sat_env_name: Production
将执行:
- 将新版本发布到库
- 将新版本推广到开发环境
- 将新版本推广到测试环境
- 将新版本推广到生产环境
仅推广内容视图
将内容视图的最新版本推广到环境satellite_env
。
---
- hosts: localhost
connection: local
vars:
sat_hostname: satelliteurl.example.com
sat_user: satellite_user
sat_password: satellite_password
sat_org: satellite_organization
sat_cv_name: content_view_name
sat_publish: no
sat_promote: yes
sat_env_name: satellite_env
roles:
- satellite6-content_views
删除旧内容视图
在使用Satellite 6时,新的内容视图版本频繁创建,特别是在测试Puppet模块并需要使其对客户端可用时。 卫星默认保留旧版本的内容视图,以便将来能回滚到特定版本。 但保留过多旧版本会使卫星UI变得不清晰,并且后台任务的速度会变慢,因为它们倾向于分析更多数据。
默认情况下,所有被推广到任何生命周期环境的内容视图版本以及5个最新的未推广版本会被保留。
可以使用变量sat_keep_old_cv
调整保留的版本数量。
---
- hosts: localhost
connection: local
vars:
sat_hostname: satelliteurl.example.com
sat_user: satellite_user
sat_password: satellite_password
sat_org: satellite_organization
sat_cv_name: content_view_name
sat_publish: no
sat_remove_old_cv: yes
sat_keep_old_cv: 5
roles:
- satellite6-content_views
角色变量
这是此角色的所有默认变量列表,这些变量也可以在defaults/main.yml中找到。
变量名 | 必需与否 | 默认值 | 选项 | 备注 |
---|---|---|---|---|
sat_hostname |
是 | 无 | N/A | 卫星主机名,可以是IP或DNS |
sat_user |
是 | 无 | N/A | 卫星用户名,必须具有管理员权限 |
sat_password |
是 | 无 | N/A | 卫星用户的密码 |
sat_org |
是 | 无 | N/A | 内容视图所在的卫星组织 |
sat_cv_name |
是 | 无 | N/A | 要发布的内容视图名称 |
sat_publish |
否 | 是 | yes/no true/false |
如果设置为“是”,则发布新版本 |
sat_remove_old_cv |
否 | 否 | yes/no true/false |
如果设置为“是”,则删除旧内容视图,使用变量sat_keep_old_cv 指定要保留的内容视图数量 |
sat_keep_old_cv |
否 | 5 | N/A | 要保留的旧内容视图数量 |
sat_promote |
否 | 否 | yes/no true/false |
如果设置为“是”,则将内容视图推广到指定环境(使用变量sat_env_name ) |
sat_follow_env_path |
否 | 是 | yes/no true/false |
如果设置为“是”,则将推广到环境路径中包含的每个环境,直到达到sat_env_name |
sat_env_name |
否 | 无 | N/A | 要推广到的环境 |
sat_wait_task_retries |
否 | 60 | N/A | 这些变量可以在卫星推广时间长时增加。由于某些内容视图可能需要较长时间才能发布,可以调整重试次数和延迟时间。任务的默认超时是sat_wait_task_retries x sat_wait_task_delay 。默认情况下,60 x 30 = 1800秒,意味着ansible将等待30分钟以完成内容视图的发布/推广/删除。 |
sat_wait_task_delay |
否 | 30 | N/A | 两次任务检查之间的延迟 |
sat_publish_description |
否 | 从Ansible自动发布 | N/A | 将出现在版本描述中的信息 |
sat_promote_description |
否 | 从Ansible自动推广 | N/A | 将出现在推广描述中的信息 |
TODO
- 一次发布所有内容视图
- 推广内容视图的特定版本
- 仅在有新软件包/Puppet模块时发布内容视图
- 使用准确的过滤器优化任务搜索
- 添加一系列测试
许可证
GPLv3
作者信息
Olivier Gerbron
Role to manage content views in RedHat Satellite
ansible-galaxy install ogerbron.satellite6_content_views