ogerbron.satellite6_content_views
重要: 私は新しい仕事に移ったため、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