第8章 コンテンツビューの管理
Red Hat Satellite 6 では、コンテンツビューを使用して リポジトリーからカスタマイズリポジトリーを作成します。作成するには、使用するリポジトリーを定義し、特定のフィルターをコンテンツに適用します。このフィルターにはパッケージフィルター、パッケージグループフィルター、およびエラータフィルターが含まれます。コンテンツビューを使用して、特定の環境が使用するソフトウェアのバージョンを定義できます。たとえば、実稼働 環境では古いバージョンのパッケージを含むコンテンツビューを使用し、開発 環境では新しいバージョンのパッケージを含むコンテンツビューを使用するなどです。
コンテンツビューは各環境でリポジトリーセットを作成し、Satellite Server が保存して管理します。アプリケーションライフサイクルの次の環境にコンテンツビューをプロモートすると、それに対応する Satellite Server のリポジトリーがパッケージを更新して公開します。
開発 | テスト | 実稼働 | |
---|---|---|---|
コンテンツビューのバージョンとコンテンツ |
バージョン 2 - example_software-1.1-0.noarch.rpm |
バージョン 1 - example_software-1.0-0.noarch.rpm |
バージョン 1 - example_software-1.0-0.noarch.rpm |
テストと実稼働のリポジトリーには example_software-1.0-0.noarch.rpm
パッケージが含まれています。コンテンツビューのバージョン 2 を開発環境からテスト環境にプロモートすると、テスト環境のリポジトリーが再作成され、example_software-1.1-0.noarch.rpm
パッケージが含まれるようになります。
開発 | テスト | 実稼働 | |
---|---|---|---|
コンテンツビューのバージョンとコンテンツ |
バージョン 2 - example_software-1.1-0.noarch.rpm |
バージョン 2 - example_software-1.1-0.noarch.rpm |
バージョン 1 - example_software-1.0-0.noarch.rpm |
こうすることで、システムは特定の環境専用となり、その環境が新しいコンテンツビューを使用する際には更新を受け取ることができます。
スナップショットのフィルタリングと作成に使用するコンテンツビューを作成する一般的なワークフローは、以下の通りです。
- コンテンツビューを作成します。
- コンテンツビューに使用するリポジトリーと Puppet モジュールを追加します。
- 任意で、コンテンツビューのコンテンツを絞り込むフィルターを 1 つまたは複数作成します。
- オプションで、コンテンツビューのパッケージの依存関係を解決します。
- コンテンツビューを公開します。
- 任意で、コンテンツビューを別の環境にプロモートします。
- コンテンツホストをコンテンツビューにアタッチします。
コンテンツビューでリポジトリーを割り当てないと、/etc/yum.repos.d/redhat.repo
ファイルは空になり、登録済みのシステムで更新を受け取ることができません。
ホストを関連付けるコンテンツビューは 1 つだけにすることができます。複数のコンテンツビューにホストを関連付けるには、複合コンテンツビューを作成します。詳細は「複合コンテンツビューの作成」を参照してください。
パッケージの依存関係の解決
パッケージの依存関係は、パッケージ管理を複雑化させます。コンテンツビューでパッケージの依存関係を管理する方法は、「パッケージの依存関係の解決」を参照してください。
8.1. コンテンツビューの作成
以下の手順を使用してシンプルなコンテンツビューを作成します。
前提条件
コンテンツビューごとに、コンテンツビューでパッケージの依存関係を解決するかどうかを指定できますが、Satellite のデフォルト設定を変更して、全コンテンツビューでパッケージの解決を有効化または無効化できます。詳細情報は、「パッケージの依存関係の解決」を参照してください。
手順
コンテンツビューを作成するには、以下の手順を行います。
- Satellite Web UI で コンテンツ > コンテンツビューに移動して、新規ビューの作成をクリックします。
- 名前 フィールドで、ビューの名前を入力します。Satellite では、ラベル フィールドは、入力した名前をもとに自動的に入力されます。
- 説明 フィールドに、ビューの説明を入力します。
- オプション: 対象のコンテンツビューを公開するたびに自動的に依存関係を解決する場合には、依存関係の解決 のチェックボックスにチェックを入れます。依存関係の解決を選択すると、公開にかかる時間が長くなり、使用するコンテンツビューフィルターが無視される可能性があります。また、その結果、エラータの依存関係を解決する時に、エラーが発生する可能性があります。
- 保存 をクリックして、コンテンツビューを作成します。
- リポジトリーの選択 エリアで、コンテンツビューに追加するリポジトリーを選択して、リポジトリーの追加 をクリックします。
- 新規バージョンの公開 をクリックし、説明 フィールドに、変更をログに記録するバージョンについての情報を入力します。
- 保存をクリックします。
- オプション: Yum リポジトリーでメタデータを再生成させるには、コンテンツビューバージョンの アクション リストから、リポジトリーメタデータの再生成 を選択します。
コンテンツビューウィンドウでコンテンツビューを表示できます。コンテンツビューに関する詳細情報を表示するには、コンテンツビュー名をクリックします。
コンテンツビューにホストを登録するには、『ホストの管理』ガイドの「ホストの登録」を参照してください。
Hammer CLI を使用したコンテンツビューの作成
リポジトリー ID の一覧を取得します。
# hammer repository list --organization "My_Organization"
コンテンツビューを作成し、リポジトリーに追加します。
# hammer content-view create \ --name "Example_Content_View" \ --description "Example Content View" \ --repository-ids 1,2 \ --organization "My_Organization"
--repository-ids
オプションを使用すると、hammer repository list
コマンドの出力で ID が分かります。ビューを公開します。
# hammer content-view publish \ --name "Example_Content_View" \ --description "Example Content View" \ --organization "My_Organization"
オプション: 既存のコンテンツビューにリポジトリーを追加するには、以下のコマンドを入力します。
# hammer content-view add-repository \ --name "Example_Content_View" \ --organization "My_Organization" \ --repository-id repository_ID
Satellite Server がビューの新バージョンを作成し、ライブラリー環境に公開します。
8.2. モジュールストリームの表示
Satellite で、コンテンツビューにリポジトリーのモジュールストリームを表示できます。
手順
コンテンツビューにリポジトリーのモジュールストリームを表示するには、次の手順を行います。
- Satellite Web UI で、コンテンツ > コンテンツビュー に移動して、表示するモジュールが含まれるコンテンツビューを選択します。
- バージョン タブをクリックし、表示するコンテンツビューバージョンを選択します。
- モジュールストリーム タブをクリックして、コンテンツビューに利用できるモジュールストリームを表示します。
- フィルター フィールドを使用して、モジュールのリストを絞り込みます。
- モジュールについての情報を表示するには、モジュールをクリックします。
8.3. Puppet モジュールを含むコンテンツビューの作成
以下の手順を使用して、フィルターなしで、リポジトリーを 1 つ使用するコンテンツビューを作成します。
前提条件
開始前に、カスタムの製品内のリポジトリーに、必要な Puppet モジュールをアップロードします。詳細は、『Puppet Guide』の「Adding Puppet Modules to Red Hat Satellite 6」を参照してください。
手順
Puppet モジュールありのコンテンツビューを作成するには、以下の手順を行います。
- Satellite Web UI で コンテンツ > コンテンツビューに移動して、新規ビューの作成をクリックします。
- 名前 フィールドで、ビューの名前を入力します。Red Hat Satellite 6 では、入力した名前から、ラベル フィールドに自動的に入力されます。
- 説明 フィールドに、ビューの説明を入力します。
- 保存をクリックします。
- リポジトリーの選択 エリアで、コンテンツビューに追加するリポジトリーを選択して、リポジトリーの追加 をクリックします。
- Puppet モジュール タブで 新規モジュールの追加 をクリックします。
- 追加するモジュールを探し、バージョンの選択 をクリックします。
- 最新を使用 のエントリーに移動し、アクション コラムの バージョンの選択 をクリックします。
- 公開するには、バージョン タブをクリックし、新規バージョンの公開 をクリックします。説明 フィールドに、変更をログに記録する説明を入力し、保存 をクリックします。
コンテンツビューにホストを登録するには、『ホストの管理』ガイドの「ホストの登録」を参照してください。
CLI をご利用の場合
Puppet モジュールをコンテンツビューに追加するには、以下のコマンドを実行します。
# hammer content-view puppet-module add \ --content-view cv_name \ --name module_name
8.4. コンテンツビューのプロモート
以下の手順を使用して、異なるライフサイクル環境全体に、コンテンツビューをプロモートします。
コンテンツビュープロモーションのパーミッション要件
環境にコンテンツビューをプロモートするために、管理者以外のユーザーには以下の 2 つのパーミッションが必要になります。
-
promote_or_remove_content_views
-
promote_or_remove_content_views_to_environment
promote_or_remove_content_views
パーミッションで、ユーザーがプロモートできるコンテンツビューを制限します。
promote_or_remove_content_views_to_environment
パーミッションで、コンテンツビューのプロモート先となる環境を制限します。
上記のパーミッションを使用すると、指定の環境に指定のコンテンツビューをプロモートし、それ以外の環境にはプロモートできないように、ユーザーパーミッションを割り当てることができます。たとえば、テスト環境へのプロモーションはできるが、実稼働環境にはできないようにユーザーを制限できます。
コンテンツビューをプロモートできるようにするには、ユーザーに両パーミッションを割り当てる必要があります。
手順
コンテンツビューをプロモートするには、以下の手順を行います。
- Satellite Web UI で、コンテンツ > コンテンツビュー に移動して、プロモートするコンテンツビューを選択します。
- コンテンツビューの バージョン タブをクリックします。
- プロモートするバージョンを選択し、アクション 列で、プロモート をクリックします。
- コンテンツビューをプロモートする環境を選択し、バージョンのプロモート をクリックします。
- プロモート ボタンを再度クリックします。今度は テスト 環境を選択して バージョンのプロモート をクリックします。
- 最後に プロモート ボタンを再度押します。Production 環境を選択し、バージョンのプロモート をクリックします。
これでこのコンテンツビューのリポジトリーが全環境に表示されます。
CLI をご利用の場合
コンテンツビューのプロモートには、毎回
hammer content-view version promote
を使用します。# hammer content-view version promote \ --content-view "Database" \ --version 1 \ --to-lifecycle-environment "Development" \ --organization "My_Organization" # hammer content-view version promote \ --content-view "Database" \ --version 1 \ --to-lifecycle-environment "Testing" \ --organization "My_Organization" # hammer content-view version promote \ --content-view "Database" \ --version 1 \ --to-lifecycle-environment "Production" \ --organization "My_Organization"
これで Database のコンテンツが全環境で利用可能になります。
コンテンツビューにホストを登録するには、『ホストの管理』ガイドの「ホストの登録」を参照してください。
8.5. 組織内の全ライフサイクル環境へのコンテンツビューのプロモート
以下の手順を使用して、組織内の全ライフサイクル環境にコンテンツビューをプロモートします。
手順
組織内の全ライフサイクル環境にコンテンツビューのバージョンをプロモートするには、次の手順を実行します。
組織内の全ライフサイクル環境に、ライブラリーから選択したコンテンツビューバージョンをプロモートするには、次の Bash スクリプトを実行します。
ORG="Your_Organization" CVV_ID=3 for i in $(hammer --no-headers --csv lifecycle-environment list --organization $ORG | awk -F, {'print $1'} | sort -n) do hammer content-view version promote --organization $ORG --to-lifecycle-environment-id $i --id $CVV_ID done
コンテンツビューのバージョンに関する情報を表示して、必要なライフサイクル環境にプロモートされていることを確認します。
# hammer content-view version info --id 3
8.6. 複合コンテンツビューの概要
複合コンテンツビューは、複数のコンテンツビューのコンテンツを組み合わせます。たとえば、オペレーティングシステムとアプリケーションの管理に別々のコンテンツビューを使用していたとします。複合コンテンツビューを使用して、この 2 つのコンテンツビューのコンテンツを新規リポジトリーに統合できます。元のコンテンツビューのリポジトリーはそのまま存在し、統合したコンテンツには新規リポジトリーを使用します。
さまざまなデータベースサーバーをサポートするアプリケーションを開発する場合には、example_application は次のように表示されます。
example_software |
---|
アプリケーション |
データベース |
オペレーティングシステム |
4 つの異なるコンテンツビューの例:
- Red Hat Enterprise Linux (オペレーティングシステム)
- PostgreSQL (データベース)
- MariaDB (データベース)
- example_software (アプリケーション)
以前のコンテンツビューから、2 つの複合コンテンツビューを作成できます。
PostgreSQL データベースの複合コンテンツビューの例:
複合コンテンツビュー 1: PostgreSQL の example_software |
---|
example_software (アプリケーション) |
PostgreSQL (データベース) |
Red Hat Enterprise Linux (オペレーティングシステム) |
MariaDB の複合コンテンツビューの例:
複合コンテンツビュー 2: MariaDB の example_software |
---|
example_software (アプリケーション) |
MariaDB (データベース) |
Red Hat Enterprise Linux (オペレーティングシステム) |
これで各コンテンツビューは別個に管理して公開されます。アプリケーションのバージョンを作成すると、複合コンテンツビューの新バージョンを公開することになります。複合コンテンツビューの作成時に、自動公開 オプションを選択することも可能です。自動公開オプションを選択して、複合コンテンツビューに含まれるコンテンツビューが再公開されると、自動的に複合コンテンツビューが再公開されます。
リポジトリーの制限事項
複合コンテンツビューは、各リポジトリーで 1 つしか許可されません。たとえば、同じリポジトリーを使用したコンテンツビューを 2 つ追加しようとすると、Satellite Server はエラーをレポートします。
8.7. 複合コンテンツビューの作成
手順
複合コンテンツビューを作成するには、以下の手順を行います。
- Satellite Web UI で コンテンツ > コンテンツビューに移動して、新規ビューの作成をクリックします。
- 名前 フィールドで、ビューの名前を入力します。Red Hat Satellite 6 では、入力した名前から、ラベル フィールドに自動的に入力されます。
- 説明 フィールドに、ビューの説明を入力します。
- 複合ビュー? チェックボックスを選択して、複合コンテンツビューを作成します。
- オプション: コンテンツビューが再公開されると複合コンテンツビューが自動的に再公開されるようにするには、自動公開 チェックボックスを選択します。
- 保存をクリックします。
- コンテンツビューの追加 エリアで、複合コンテンツビューに追加するコンテンツビューを選択して、コンテンツビューの追加 をクリックします
- 新規バージョンの公開 をクリックして、複合コンテンツビューを公開します。説明 フィールドに説明を入力し、保存 をクリックします。
- プロモート をクリックし、複合コンテンツビューをプロモートするライフサイクル環境を選択し、説明を入力して、バージョンのプロモート をクリックします。
CLI をご利用の場合
複合コンテンツビューを作成する前に、既存のコンテンツビューのバージョン ID を一覧表示します。
# hammer content-view version list \ --organization "My_Organization"
新しい複合コンテンツビューを作成します。
--auto-publish
オプションをyes
に設定すると、そのコンテンツビューが含まれるコンテンツビューが再公開されると、複合コンテンツビューは自動的に再公開されます。# hammer content-view create \ --composite \ --auto-publish yes \ --name "Example_Composite_Content_View" \ --description "Example Composite Content View" \ --organization "My_Organization"
コンポーネントのコンテンツビューを複合コンテンツビューに追加します。コンテンツビューのバージョン ID を追加して、
--latest
オプションを使用する必要があります。複合コンテンツビューに、複数のコンポーネントのコンテンツビューを追加するには、追加する全コンテンツビューに対して、この手順を繰り返し実行します。# hammer content-view component add \ --component-content-view-id Content_View_Version_ID \ --latest \ --composite-content-view "Example_Composite_Content_View"
複合コンテンツビューを公開します。
# hammer content-view publish \ --name "Example_Composite_Content_View" \ --description "Initial version of Composite Content View" \ --organization "My_Organization"
複合コンテンツビューを全環境にプロモートします。
# hammer content-view version promote \ --content-view "Example_Composite_Content_View" \ --version 1 \ --to-lifecycle-environment "Development" \ --organization "My_Organization" # hammer content-view version promote \ --content-view "Example_Composite_Content_View" \ --version 1 \ --to-lifecycle-environment "Testing" \ --organization "My_Organization" # hammer content-view version promote \ --content-view "Example_Composite_Content_View" \ --version 1 \ --to-lifecycle-environment "Production" \ --organization "My_Organization"
8.8. コンテンツフィルターの概要
コンテンツビューでは、フィルターを使って特定の RPM コンテンツを追加したり制限したりします。フィルターを使用しないと、選択したリポジトリーからのすべてのコンテンツが含まれてしまいます。
コンテンツフィルターには、次の 2 種類があります。
表8.1 フィルタータイプ
フィルタータイプ | 説明 |
---|---|
包含 |
コンテンツなしの状態から開始し、選択したリポジトリーから追加するコンテンツを選択します。このフィルターを使用して、複数のコンテンツアイテムを組み合わせます。 |
除外 |
選択したリポジトリーからのコンテンツがすべてある状態から開始し、除外するコンテンツを選択します。リポジトリーのほとんどのコンテンツを使用するものの、ブラックリスト化されたパッケージなど、特定のパッケージは除外する場合にこのフィルターを使用します。このフィルターでは、選択したコンテンツ以外、リポジトリーにあるコンテンツすべてを使用します。 |
包含と除外のフィルターの組み合わせ
包含と除外のフィルターの組み合わせを使用してコンテンツビューを公開すると、最初に包含フィルターが適用され、次に除外フィルターが適用されます。この場合には、先に、含めるコンテンツを選択してから、このサブセットから除外するコンテンツを選択することになります。
コンテンツタイプ
また、フィルターの対象となるコンテンツには以下の 4 つのタイプがあります。
表8.2 コンテンツタイプ
コンテンツタイプ | 説明 |
---|---|
パッケージ |
名前とバージョン番号に基づいてパッケージをフィルタリングします。 |
パッケージグループ |
パッケージグループ別に、パッケージをフィルタリングします。パッケージグループの一覧は、コンテンツビューに追加されたリポジトリー別になっています。 |
エラータ - ID 別 |
フィルターに追加する特定のエラータを選択します。エラータ一覧は、コンテンツビューに追加されたリポジトリー別になっています。 |
エラータ - 日付およびタイプ別 |
フィルターに追加する発行済みまたは更新済みの日付範囲およびエラータタイプ (バグ修正、機能強化、またはセキュリティー) を選択します。 |
8.9. パッケージの依存関係の解決
Satellite では、パッケージの依存関係解決機能を使用して、コンテンツビューに含まれるパッケージの依存関係が、コンテンツビューの公開プロセスの一部として、依存するリポジトリーに追加されているようにします。
任意のコンテンツビューのパッケージ依存関係を解決するか、デフォルト設定を変更して、新規コンテンツビューすべてのパッケージ依存関係の解決を有効化または無効化できます。
パッケージの依存関係を解決すると、コンテンツビューのプロモートにかなり時間がかかる可能性がある点に注意してください。パッケージの依存関係解決機能では、コンテンツビューから独立してシステムにインストールされたパッケージを考慮されず、リポジトリー間の依存関係も解決されません。
パッケージの依存関係の解決とフィルター
フィルターは、フィルター内に記載されているパッケージの依存関係を解決するものではありません。必要な依存関係の判定には、テストが必要になる場合があります。
必要なパッケージを除外するフィルターを追加しており、かつコンテンツビューで依存関係の解決が有効になっている場合には、Satellite はフィルターで作成したルールを無視して、パッケージの依存関係解決を優先します。
セキュリティーの目的でコンテンツフィルターを作成している場合に、Satellite は、パッケージの依存関係を解決するためにセキュリティーが低いパッケージを追加する可能性があります。
手順
デフォルトでパッケージの依存関係を解決するには、次の手順を実行します。
- Satellite Web UI で、管理 > 設定 に移動して、コンテンツ タブをクリックします。
- コンテンツビューの依存関係をデフォルトで解決する という項目を探し、はい を選択します。
任意の依存関係解決に関してデフォルトレベルを設定することもできます。必要なパッケージが存在しない場合には、依存関係を解決するパッケージを追加することも可能です。または、リポジトリーにパッケージが存在する場合でも依存関係を解決するための最新のパッケージを追加できます。
依存関係解決のデフォルトレベルを設定するには、次の手順を実行します。
- Satellite Web UI で、管理 > 設定 に移動して、コンテンツ タブをクリックします。
コンテンツビューの依存関係解決アルゴリズム という項目を探し、以下のオプションのいずれかを選択します。
- リポジトリーに存在しない場合にのみ、依存関係を解決するパッケージを追加する場合には、Conservative を選択します。
- リポジトリーにパッケージが存在するかどうかにかかわらず、依存関係を解決するパッケージを追加するには、Greedy を選択します。
8.10. コンテンツフィルターの例
カスタムコンテンツフィルターをビルドするには、以下のいずれかの例の手順に従います。
例 1
ベースの Red Hat Enterprise Linux パッケージでリポジトリーを作成します。このフィルターでは、Red Hat Enterprise Linux リポジトリーがコンテンツビューに追加されている必要があります。
フィルター:
- 包含タイプ: 組み込み
- コンテンツタイプ: パッケージグループ
- フィルター: Base パッケージグループのみを選択します。
例 2
セキュリティー更新を除く、特定日以降の全エラータを除外するリポジトリーを作成します。これは、重要なセキュリティー更新は即座に適用する必要があるが、その他のシステム更新は定期的に実行する場合に便利です。このフィルターでは、Red Hat Enterprise Linux リポジトリーをコンテンツビューに追加しておく必要があります。
フィルター:
- 包含タイプ: 除外
- コンテンツタイプ: エラータ - 日付およびタイプ別
- フィルター: バグ修正と機能強化のエラータタイプのみを選択し、セキュリティーの選択は解除します。日付タイプを更新日に設定します。エラータを制限する日付を開始日に設定します。終了日は空白にして、セキュリティー以外の新たなエラータにフィルターが適用されないようにします。
例 3
例 1 と例 2 の組み合わせで、オペレーティングシステムパッケージのみが必要で、最近のバグ修正と機能強化エラータを除外します。この場合には、同一のコンテンツビューにアタッチされた 2 つのフィルターが必要です。コンテンツビューは組み込みフィルターを最初に適用してから、除外フィルターを適用します。
フィルター 1:
- 包含タイプ: 組み込み
- コンテンツタイプ: パッケージグループ
- フィルター: Base パッケージグループのみを選択します。
フィルター 2:
- 包含タイプ: 除外
- コンテンツタイプ: エラータ - 日付およびタイプ別
- フィルター: バグ修正と機能強化のエラータタイプのみを選択し、セキュリティーの選択は解除します。日付タイプを更新日に設定します。エラータを制限する日付を開始日に設定します。終了日は空白にして、セキュリティー以外の新たなエラータにフィルターが適用されないようにします。
コンテンツフィルターの機能例については、How do content filters work in Satellite 6 を参照してください。
8.11. コンテンツフィルターの作成
以下の手順を使用して、コンテンツフィルターを作成します。フィルターをビルドする方法の例については、「コンテンツフィルターの例」を参照してください。
手順
コンテンツフィルターを作成するには、以下の手順を行います。
- Satellite Web UI で、コンテンツ > コンテンツビュー に移動して、コンテンツビューを選択します。
- Yum コンテンツ > フィルターに移動し、新規フィルターをクリックします。
- 名前 フィールドに、フィルターの名前を入力します。
- コンテンツタイプ の一覧から、絞り込むコンテンツタイプを選択します。新しいフィルターのコンテンツタイプに選択した内容に応じて、異なるオプションが表示されます。
- 包含タイプ リストから、包含 または 除外 を選択します。
- 説明 フィールドに、フィルターの説明を入力し、保存 をクリックします。
- コンテンツタイプ に入力した内容に応じて、必要なフィルターを作成するルールを追加します。
- 影響のあるリポジトリー タブをクリックして、どのリポジトリーがこのフィルターを使用するかを選択します。
- 新規バージョンの公開 をクリックして、フィルタリングされたリポジトリーを公開します。説明 フィールドに変更の説明を入力し、保存 をクリックします。
このコンテンツビューを全環境にプロモートできます。
CLI をご利用の場合
フィルターをコンテンツビューに追加します。
--inclusion false
オプションを使用して、フィルターを除外フィルターに設定します。# hammer content-view filter create \ --name "Errata Filter" \ --type erratum --content-view "Example_Content_View" \ --description "My latest filter" \ --inclusion false \ --organization "My_Organization"
フィルターにルールを追加します。
# hammer content-view filter rule create \ --content-view "Example_Content_View" \ --content-view-filter "Errata Filter" \ --start-date "YYYY-MM-DD" \ --types enhancement,bugfix \ --date-type updated \ --organization "My_Organization"
コンテンツビューを公開します。
# hammer content-view publish \ --name "Example_Content_View" \ --description "Adding errata filter" \ --organization "My_Organization"
ビューを各環境にプロモートします。
# hammer content-view version promote \ --content-view "Example_Content_View" \ --version 1 \ --to-lifecycle-environment "Development" \ --organization "My_Organization" # hammer content-view version promote \ --content-view "Example_Content_View" \ --version 1 \ --to-lifecycle-environment "Testing" \ --organization "My_Organization" # hammer content-view version promote \ --content-view "Example_Content_View" \ --version 1 \ --to-lifecycle-environment "Production" \ --organization "My_Organization"