ogerbron.satellite6_content_views

イメージ

ビルドステータス Ansibleロール

重要: 私は新しい仕事に移ったため、Red Hat Satelliteを使っていません。そのため、このロールを簡単には維持できません(Satelliteを使用するライセンスがありません)。ですが、ロールを改善するためのPRを提出するのは自由ですし、自分のリポジトリを使っても構いません。楽しんでいただければ幸いです!

コンテンツビュー管理

Satellite6-content_viewsは、RedHat Satellite 6.xのコンテンツビューを簡単に管理するためのAnsibleロールです。主な機能は以下の通りです:

  • 新しいコンテンツビューのバージョンを公開
  • 環境へのバージョンの昇格
  • 古いバージョンの削除

このロールは、RedHat SatelliteのHTTP APIのみを使用します。

要件

このロールを使用するには、次が必要です:

  • Ansible > 2.0
  • Satellite 6.x
  • AnsibleマシンからSatelliteへのHTTPSアクセス権限
  • 管理者ロールを持つSatelliteユーザー

はじめに

このロールを使用するためのいくつかのプレイブック例を示します。

このロールは、十分な権限を持つSatelliteユーザーを想定しています。

新しいバージョンを公開する

特定のコンテンツビュー(たとえば、基本のオペレーティングシステムのコンテンツビュー)を自動的に更新することが有益な場合があります。Satelliteはリポジトリの同期をスケジュールできますが、管理者がこれらのリポジトリを含むコンテンツビューの新しいバージョンを公開するまで、同期されたコンテンツはクライアントには利用できません。

警告: コンポジットコンテンツビューに関しては、公開する前に内部のコンポジットビューを最新のバージョンに更新します。

---
- 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に昇格させます。新しいバージョンのコンテンツビューが作成されると、それはLibrary Lifecycle Environmentでのみ利用可能です。他の環境で利用可能にするには、バージョンの昇格が必要です。

---
- 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を設定すると、以下のことが行われます:

  • Libraryに新しいバージョンを公開
  • Dev環境に新しいバージョンを昇格
  • Testing環境に新しいバージョンを昇格
  • 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モジュールをテストし、クライアントに利用可能にする場合などです。古いコンテンツビューのバージョンは、将来的にその特定のバージョンにロールバックできるように、デフォルトでSatelliteによって保持されます。しかし、古いバージョンを多く保持していると、Satelliteの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 yes None なし Satelliteのホスト名、IPまたはDNSが可能
sat_user yes None なし Satelliteのユーザー名、管理者権限が必要
sat_password yes None なし ユーザー名のSatelliteパスワード
sat_org yes None なし コンテンツビューが存在するSatelliteの組織
sat_cv_name yes None なし 公開したいコンテンツビュー名
sat_publish no yes yes/no
true/false
yesに設定すると、新しいバージョンが公開されます
sat_remove_old_cv no no yes/no
true/false
yesに設定すると、古いコンテンツビューが削除されます。保持するコンテンツビューの数を指定するには、変数sat_keep_old_cvを使用します
sat_keep_old_cv no 5 なし 保持する古いコンテンツビューの数
sat_promote no no yes/no
true/false
yesに設定すると、指定された環境(変数sat_env_nameで)にコンテンツビューが昇格されます
sat_follow_env_path no yes yes/no
true/false
yesに設定すると、sat_env_nameに達するまで環境パス内のすべての環境に昇格されます(例:コンテンツビューを公開して昇格するを参照)
sat_env_name no None なし 昇格する環境
sat_wait_task_retries no 60 なし Satelliteの昇格が長引く場合は、これらの変数を増やすことができます。あるコンテンツビューが公開されるのにかなりの時間がかかることがあるため、リトライの数と遅延を調整できます。タスクのデフォルトのタイムアウトはsat_wait_task_retries x sat_wait_task_delayです。デフォルトでは、60 x 30 = 1800秒、つまり、Ansibleはコンテンツビューの公開/昇格/削除が完了するまで30分待機します。
sat_wait_task_delay no 30 なし 2つのタスクチェック間の遅延
sat_publish_description no Ansibleによる自動公開 なし バージョンの説明に表示されるメッセージ
sat_promote_description no Ansibleによる自動昇格 なし 昇格の説明に表示されるメッセージ

TODO

  • すべてのコンテンツビューを一度に公開する
  • 特定のコンテンツビューのバージョンを昇格する
  • 新しいパッケージ/ Puppetモジュールがある場合のみ、コンテンツビューを公開する
  • 正確なフィルタを使用してタスク検索を最適化する
  • テストを追加する

ライセンス

GPLv3

作者情報

オリヴィエ・ジェルブロン

プロジェクトについて

Role to manage content views in RedHat Satellite

インストール
ansible-galaxy install ogerbron.satellite6_content_views
ライセンス
gpl-3.0
ダウンロード
4.7k
所有者
EM 👨‍🔧 @doctolib 🇫🇷🇬🇧 Triathlete 🏊🏻‍♂️🚴🏻🏃🏻