ogerbron.satellite6_content_views

图片

构建状态 Ansible 角色

重要提示:由于我已经转到另一份工作,我不再使用红帽卫星,因此我无法轻松维护此角色(我没有使用卫星的许可证)。但欢迎随时提交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

安装
ansible-galaxy install ogerbron.satellite6_content_views
许可证
gpl-3.0
下载
4.7k
拥有者
EM 👨‍🔧 @doctolib 🇫🇷🇬🇧 Triathlete 🏊🏻‍♂️🚴🏻🏃🏻