第7章 アプリケーションライフサイクルの管理

本章では、Satellite のアプリケーションライフサイクルと、Satellite と Capsule のアプリケーションライフサイクルの作成と削除の方法を概説します。

7.1. アプリケーションライフサイクルの概要

アプリケーションライフサイクル は、Red Hat Satellite 6 のコンテンツ管理機能の中心となる概念です。アプリケーションライフサイクルは、特定の段階で特定のシステムとソフトウェアがどのように見えるかを定義します。たとえば、アプリケーションライフサイクルが単純な場合には、開発段階と実稼働段階のみになります。このような場合に、アプリケーションライフサイクルは以下のようになります。

  • 開発
  • 実稼働

ただし、テストやベータリリースなど、より多くの段階が含まれ、アプリケーションライフサイクルが複雑になる場合があります。

  • 開発
  • テスト
  • Beta リリース
  • 実稼働

Red Hat Satellite 6 は、仕様に合わせて各アプリケーションライフサイクルの段階をカスタマイズする方法を提供します。

Red Hat Satellite 6 では、アプリケーションライフサイクルの各段階は環境と呼ばれます。各環境はコンテンツの特定のコレクションを使用します。Red Hat Satellite 6 では、これらのコンテンツコレクションはコンテンツビューとして定義されます。各コンテンツビューは、特定の環境に含めるリポジトリー、パッケージ、および Puppet モジュールを定義できるフィルターとなります。これにより、ユーザーは各環境に指定する特定のコンテンツセットを定義できるようになります。

たとえば、メールサーバーの場合は、実際に使用する実稼働レベルのサーバーと、最新のメールサーバーパッケージをテストするテストサーバーという、単純なアプリケーションライフサイクルのみを必要とします。テストサーバーが初期段階をパスすると、実稼働レベルのサーバーで新パッケージを使用するように設定できます。

別の例としては、ソフトウェア製品の開発ライフサイクルがあります。開発環境でソフトウェアの新しい部分を開発するには、品質保証環境でソフトウェアをテストしてベータ版としてプレリリースした後に、実稼働レベルのアプリケーションとしてソフトウェアをリリースします。

図7.1 Red Hat Satellite 6 アプリケーションライフサイクル

The Red Hat Satellite 6 Application Life Cycle

7.2. アプリケーションライフサイクルでのコンテンツのプロモーション

アプリケーションライフサイクルチェーンで、ある環境から次の環境へコンテンツが移動することは、プロモーション と呼ばれます。

Satellite ライフサイクル環境のコンテンツプロモーションの例

各環境には、Red Hat Satellite 6 に登録したシステムが含まれ、そのシステムがアクセスできるのは、各環境に関連するリポジトリーに限られます。別の環境にパッケージをプロモートすると、プロモート先の環境のリポジトリーはパッケージの新バージョンを受け取り、その結果、プロモート先の環境にある各システムはパッケージを新バージョンに更新できます。

開発テスト実稼働

example_software-1.1-0.noarch.rpm

example_software-1.0-0.noarch.rpm

example_software-1.0-0.noarch.rpm

パッチ開発の完了後には、RPM をテスト環境にプロモートして、品質保証エンジニアチームがパッチをレビューできるようにします。この時点では、アプリケーションライフサイクルに以下のパッケージバージョンが各環境に含まれます。

開発テスト実稼働

example_software-1.1-0.noarch.rpm

example_software-1.1-0.noarch.rpm

example_software-1.0-0.noarch.rpm

品質保証エンジニアチームがパッチのレビューを行う間、開発チームは example_software 2.0 の作業に着手します。このため、アプリケーションライフサイクルは以下のようになります。

開発テスト実稼働

exampleware-2.0-0.noarch.rpm

exampleware-1.1-0.noarch.rpm

exampleware-1.0-0.noarch.rpm

品質保証エンジニアチームがパッチのレビューを完了します。これで、example_software 1.1 をリリースする準備が完了します。1.1 を実稼働環境にプロモートします。

開発テスト実稼働

example_software-2.0-0.noarch.rpm

example_software-1.1-0.noarch.rpm

example_software-1.1-0.noarch.rpm

開発チームが example_software 2.0 の作業を完了し、テスト環境にプロモートします。

開発テスト実稼働

example_software-2.0-0.noarch.rpm

example_software-2.0-0.noarch.rpm

example_software-1.1-0.noarch.rpm

最後に品質保証エンジニアチームがこのパッケージのレビューを行います。レビューが完了したら、パッケージを 実稼働 環境にプロモートします。

開発テスト実稼働

exampleware-2.0-0.noarch.rpm

exampleware-2.0-0.noarch.rpm

exampleware-2.0-0.noarch.rpm

詳細については、「コンテンツビューのプロモート」を参照してください。

7.3. ライフサイクル環境パスの作成

ソフトウェアを開発およびリリースするためのアプリケーションライフサイクルを作成するには、ライブラリー 環境を初期環境として使用して、環境パスを作成します。次に、オプションで環境パスに環境を追加します。

手順

  1. Satellite Web UI で、コンテンツ > ライフサイクル環境 に移動します。
  2. 新規環境パス をクリックして、新しいアプリケーションライフサイクルを開始します。
  3. 名前 フィールドに、環境の名前を入力します。
  4. 説明 フィールドに、環境の説明を入力します。
  5. 保存をクリックします。
  6. オプション: 環境パスに環境を追加するには、新しい環境の追加 をクリックし、名前説明 フィールドを入力します。続いて、以前の環境 一覧から以前の環境を選択します。

CLI をご利用の場合

  1. 環境パスを作成するには、hammer lifecycle-environment create コマンドを入力し、--prior オプションを使用してライブラリー環境を指定します。

    # hammer lifecycle-environment create \
    --name "Environment Path Name" \
    --description "Environment Path Description" \
    --prior "Library" \
    --organization "My_Organization"
  2. オプション: 環境パスに環境を追加するには、hammer lifecycle-environment create コマンドを入力し、--prior オプションを使用して親環境を指定します。

    # hammer lifecycle-environment create \
    --name "Environment Name" \
    --description "Environment Description" \
    --prior "Prior Environment Name" \
    --organization "My_Organization"
  3. ライフサイクル環境のチェーンを表示するには、以下のコマンドを入力します。

    # hammer lifecycle-environment paths --organization "My_Organization"

7.4. Satellite Server からのライフサイクル環境の削除

以下の手順を使用して、ライフサイクル環境を削除します。

手順

ライフサイクル環境を削除するには、以下の手順を行います。

  1. Satellite Web UI で、コンテンツ > ライフサイクル環境 に移動します。
  2. 削除するライフサイクル環境の名前をクリックし、環境の削除をクリックします。
  3. 削除 をクリックして環境を削除します。

CLI をご利用の場合

  1. 組織のライフサイクル環境を一覧表示し、削除するライフサイクル環境の名前を確認します。

    # hammer lifecycle-environment list --organization "My_Organization"
  2. hammer lifecycle-environment delete コマンドを使用して、環境を削除します。

    # hammer lifecycle-environment delete \
    --name "your_environment" \
    --organization "My_Organization"

7.5. Capsule Server からのライフサイクル環境の削除

ライフサイクル環境がホストシステムに適さなくなった場合や、環境が Capsule Server に誤って追加された場合、Capsule Server からライフサイクル環境を削除できます。

Capsule からライフサイクル環境を削除するには、Satellite Web UI と Hammer の両方を使用できます。

手順

ライフサイクル環境を Capsule Server から削除するには、以下の手順を行います。

  1. Satellite Web UI で、インフラストラクチャー > Capsules に移動し、ライフサイクルを削除する Capsule を選択します。
  2. Edit をクリックしてから、Life Cycle Environments タブをクリックします。
  3. 右のメニューから、Capsule から削除するライフサイクル環境を選択し、送信 をクリックします。
  4. Capsule のコンテンツを同期するには、概要タブをクリックしてから同期ボタンをクリックします。
  5. 最適化された同期または 完全な同期を選択します。

CLI をご利用の場合

ライフサイクル環境を Capsule Server から削除するには、以下の手順を行います。

  1. 一覧から使用する Capsule Server を選択し、その ID を書き留めます。

    # hammer capsule list
  2. Capsule Server の詳細を確認するには、以下のコマンドを実行します。

    # hammer capsule info --id capsule_id
  3. Capsule Server に現在アタッチされているライフサイクル環境の一覧を確認し、環境 ID を書き留めます。

    # hammer capsule content lifecycle-environments \
    --id capsule_id
  4. Capsule Server からのライフサイクル環境を削除します。

    # hammer capsule content remove-lifecycle-environment \
    --id capsule_id \
    --lifecycle-environment-id lifecycle_environment_id

    Capsule Server から削除するすべてのライフサイクル環境に対してこの手順を繰り返します。

  5. Satellite Server の環境にあるコンテンツを Capsule Server に同期します。

    # hammer capsule content synchronize \
    --id capsule_id

7.6. Capsule Server へのライフサイクル環境の追加

Capsule Server でコンテンツ機能が有効な場合は、環境を追加して、Capsule が Satellite Server のコンテンツを同期し、コンテンツをホストシステムに提供できるようにする必要があります。

リポジトリーが CDN から更新されるたびに自動で Capsule が同期されるようになるので、ライブラリーライフサイクル環境を Capsule Server に割り当てないでください。自動的に同期されると、Capsule 上の複数のシステムリソースや Satellite と Capsule 間のネットワーク帯域幅、および Capsule 上の利用可能なディスク領域が消費される可能性があります。

Satellite Server の Hammer CLI または Satellite Web UI を使用できます。

手順

ライフサイクル環境を Capsule Server に追加するには、以下の手順を実行します。

  1. Satellite Web UI で、インフラストラクチャー > Capsule に移動し、ライフサイクルを追加する Capsule を選択します。
  2. Edit をクリックしてから、Life Cycle Environments タブをクリックします。
  3. 左のメニューから、Capsule に追加するライフサイクル環境を選択し、送信をクリックします。
  4. Capsule のコンテンツを同期するには、概要タブをクリックしてから、同期 をクリックします。
  5. 最適化された同期または 完全な同期を選択します。

    各同期タイプの定義については、「リポジトリーの復旧」 を参照してください。

CLI をご利用の場合

  1. Satellite Server で、Capsule Server の全一覧を表示するには、以下のコマンドを入力します。

    # hammer capsule list

    ライフサイクルを追加する Capsule の Capsule ID を書き留めます。

  2. その ID を使用して、Capsule Server の詳細を確認します。

    # hammer capsule info --id capsule_id
  3. 利用可能なライフサイクル環境を確認し、環境 ID を書き留めます。

    # hammer capsule content available-lifecycle-environments \
    --id capsule_id
  4. Capsule Server で利用可能なライフサイクル環境を表示するには、以下のコマンドを入力して、組織名と ID をメモします。

    # hammer capsule content available-lifecycle-environments --id capsule_id
  5. ライフサイクル環境を Capsule Server に追加します。

    # hammer capsule content add-lifecycle-environment \
    --id capsule_id --organization "My_Organization" \
    --environment-id environment_id

    Capsule Server に追加する各ライフサイクル環境に対して手順を繰り返します。

  6. Satellite から Capsule にコンテンツを同期します。

    • Satellite Server 環境のすべてのコンテンツを Capsule Server に同期するには、以下のコマンドを実行します。

      # hammer capsule content synchronize --id capsule_id
    • Satellite Server 環境の特定のライフサイクル環境を Capsule Server と同期するには、以下のコマンドを実行します。

      # hammer capsule content synchronize --id external_capsule_id \
      --environment-id environment_id