第1章 はじめに
システム管理のコンテキストでは、コンテンツは、システム上にインストールされたソフトウェアとして定義されます。これには、ベースオペレーティングシステム、ミドルウェアサービス、エンドユーザーアプリケーションが含まれます (ただし、これらに限定されません)。Red Hat Satellite 6 は、Red Hat Enterprise Linux システム向けのさまざまな種類のコンテンツを管理するツールを提供します。このため、システム管理者は、簡単に広範なコンテンツを収集したり、コンテンツを最新の状態に保ったり、コンテンツを使用して新しいシステムをプロビジョニングして既存のシステムを更新したりできます。
本書では、コンテンツの管理方法を示すエンドツーエンドシナリオを提供します。Satellite Server を新規にインストールしたシステムの管理者を対象をしています。
1.1. Red Hat Satellite 6 コンテンツ管理の概要
Red Hat Satellite 6 のコンテキストでは、コンテンツ管理は複数のコンテンツタイプ向けの持続可能なリポジトリーを提供するワークフローを意味します。Red Hat コンテンツについては、Red Hat Satellite 6 ではサブスクリプション情報を使用して、ユーザーに利用可能なコンテンツを認識します。つまり、Red Hat Satellite 6 は以下のものを管理するコンポーネントを使用します。
- サブスクリプション管理。これには Red Hat ソフトウェアサブスクリプションと関連コンテンツを安全な接続を介して管理するツールが含まれます。これにより、組織が Red Hat サブスクリプション情報を管理する手段が提供されます。
- コンテンツ管理。これにはコンテンツをダウンロードし、カスタムリポジトリーに格納するアプリケーションが含まれます。これにより、組織は Red Hat コンテンツを格納し、さまざまな方法で整理することができるようになります。
1.2. アプリケーションライフサイクルの定義
アプリケーションライフサイクルは、Red Hat Satellite 6 のコンテンツ管理機能の中心となる概念です。アプリケーションライフサイクルは、特定の段階で特定のシステムとソフトウェアがどのように見えるかを定義します。たとえば、アプリケーションライフサイクルが単純な場合には、開発段階と実稼働段階のみになります。このような場合、アプリケーションライフサイクルは以下のようになります。
- 開発
- 実稼働
ただし、テストやベータリリースなど、より多くの段階が含まれ、アプリケーションライフサイクルが複雑になる場合があります。
- 開発
- テスト
- Beta リリース
- 実稼働
結局のところ、アプリケーションライフサイクルに含まれる段階は、それぞれの組織とソフトウェア開発方法によって異なります。Red Hat Satellite 6 はそれぞれの仕様を満たすために、アプリケーションライフサイクルの各段階をカスタマイズする方法を提供します。
Red Hat Satellite 6 では、アプリケーションライフサイクルの各段階は環境と呼ばれます。各環境はコンテンツの特定のコレクションを使用します。Red Hat Satellite 6 では、これらのコンテンツコレクションはコンテンツビューとして定義されます。各コンテンツビューは、特定の環境に含めるリポジトリー、パッケージ、および Puppet モジュールを定義できるフィルターとなります。これにより、ユーザーは各環境に指定する特定のコンテンツセットを定義できるようになります。
アプリケーションライフサイクルの概念は、進捗状況によって異なります。たとえば、アプリケーションライフサイクルの初期段階の環境では、新しい機能の開発とテストを行うために、新しいリリース前のパッケージを使用することがあります。同様に、それ以降の段階の環境では、実稼働用ソフトウェアに適した安定したパッケージのみを使用することがあります。開発中のパッケージのテストが完了したら、アプリケーションライフサイクルで、開発コンテンツビューを、実稼働環境用のコンテンツビューにプロモートすることができます。この結果、アプリケーションの開発でアプリケーションライフサイクルが進むことになります。
図1.1 Red Hat Satellite 6 アプリケーションライフサイクル
1.3. コンテンツ管理タイプの定義
Red Hat Satellite 6 では、以下のものを含むさまざまなコンテンツタイプを管理できます。
- RPM パッケージ
- Red Hat Satellite 6 では、Red Hat サブスクリプションに関連するリポジトリーから RPM ファイルをインポートする方法が提供されます。これにより、Satellite Server は Red Hat のコンテンツ配信ネットワークから RPM ファイルをダウンロードし、ローカルに保存します。これらのリポジトリーと RPM ファイルはコンテンツビューで使用できます。
- キックスタートツリー
- Red Hat Satellite 6 は、新しいシステムを作成するためにキックスタートツリーを取得します。新しいシステムは、ネットワークを介してこれらのキックスタートツリーにアクセスしてインストールのベースコンテンツとして使用します。また、Red Hat Satellite 6 には、事前に定義されたいくつかのキックスタートテンプレートが含まれます (独自のキックスタートテンプレートを作成することもできます)。これらのテンプレートは、新しいシステムをプロビジョニングし、インストールをカスタマイズするために使用されます。
- ISO および KVM イメージ
- Red Hat Satellite 6 は、インストールおよびプロビジョニング向けのメディアをダウンロードおよび管理します。たとえば、Satellite は、特定の Red Hat Enterprise Linux バージョン向けの ISO イメージおよび KVM ゲストイメージをダウンロード、保存、および管理します。
- Puppet モジュール
- Red Hat Satellite 6 では、RPM コンテンツとともに Puppet モジュールをアップロードできるため、プロビジョニング後にシステムの状態を設定できます。また、ユーザーはプロビジョニングプロセスの一部として Puppet クラスとパラメーターを管理することもできます。
- コンテナーイメージ
- Red Hat Satellite 6 は、コンテナーイメージのレジストリーとして機能することができます。これにより、Red Hat Enterprise Linux Atomic Host を使用してコンテナーを作成する方法が提供されます。
- OSTree
- Red Hat Satellite 6 は OSTree ブランチをインポートし、このコンテンツを HTTP の場所に公開できます。
1.4. シナリオの定義
本書では、シナリオ例を使用して Red Hat Satellite 6 の機能を説明します。このシナリオでは、ACME という名前のソフトウェア開発会社が最近 Red Hat Satellite 6 をインストールし、その会社のシステム管理者が Red Hat コンテンツをインポートおよび管理するとします。ACME の最終的な目標は以下のとおりです。
- 組織のためにコンテンツソースセットをインポートします。これには Red Hat サブスクリプションのコンテンツと独自のカスタムコンテンツが含まれます。
- ソフトウェア開発プロセスに基づいてアプリケーションライフサイクルを定義します。
- 新しい Red Hat Enterprise Linux ホストをプロビジョニングし、既存の Red Hat Enterprise Linux ホストを登録できるよう Satellite Server を準備します。
本書ではコンテンツ管理のみを取り上げます。ホストプロビジョニング、環境アーキテクチャー、Satellite Server 管理などの他の機能については、Red Hat Satellite 6 シリーズの他のガイドを参照してください。
本書では、Red Hat Satellite 6 Web UI または Hammer CLI ツール のいずれかを使用する手順を説明します。いずれかの方法を選択してください。CLI を使用し、hammer
コマンドを実行するたびに認証詳細情報を入力しない場合は、~/.hammer/cli.modules.d/foreman.yml
ファイルを編集し、ローカルユーザーの認証情報を追加します。
:foreman: :host: 'https://satellite.example.com/' :username: 'your_username' :password: 'your_password'
本書での hammer
コマンドのすべての使用箇所では、設定ファイルが使用され、認証の詳細情報を入力することはありません。
一部の CLI コマンドでは、特定のタスクを非同期的に実行する --async
オプションを使用できます。たとえば、コンテンツを同期して監視するのではなく、コンテンツビューを非同期タスクとして公開できます。本書では、ユーザーが完了するタスクの進行状況を監視できるよう --async
が省略されます。特定のタスクで--async
オプションを使用する場合は、次のタスクに進む前にそのタスクを完了してください。
1.5. コンテンツ管理ストレージ
Red Hat Satellite 6 では、Red Hat のコンテンツ配信ネットワークと同期されるコンテンツを含む RPM および Puppet コンテンツ用リポジトリーと、独自のカスタムリポジトリーがホストされます。このようなリポジトリーのサイズは時間の経過とともに大きくなります。したがって、それぞれの環境に合わせて適切なサイズ要件を推定し、将来の要件を適切にスケールする必要があります。
Red Hat Satellite 6 は、一時的にコンテンツを /var/cache/pulp
に追加してから、保存と管理目的で /var/lib/pulp
ディレクトリーに移動します。/var/cache/pulp
および /var/lib/pulp
の両方に適切な容量のストレージを割り当てるようにしてください。スケーリング可能な大容量のローカルパーティションに /var/lib/pulp
ディレクトリーをマウントしてください。たとえば、論理ボリュームマネジャー (LVM) を使用して、このパーティションを作成します。
/var/lib/pulp
は NFS 共有にマウントしないでください。Red Hat Satellite 6 の一部は、NFS に問題がある一時的な SQLite データベースを使用します。NFS 共有を使用する場合は、主要なソースコンテンツユニットを含む /var/lib/pulp/content
ディレクトリーのみをマウントします。/var/lib/pulp
ファイルシステムには、高帯域幅で低レイテンシーのストレージを使用してください。Red Hat Satellite には、I/O を大量に使用する多くの操作があるため、高レイテンシーで低帯域幅のストレージを使用すると、パフォーマンスが低下することがあります。
Red Hat Satellite 6 は、Red Hat のコンテンツ配信ネットワークのパッケージを同期し、保存します。これには、Red Hat Enterprise Linux などの Red Hat ソフトウェア向けのリポジトリーが含まれます。Red Hat コンテンツの推奨ストレージ要件は以下のとおりです。
主要な Red Hat Enterprise Linux バージョンの実稼働フェーズ 1 の間:
- 各バイナリーパッケージリポジトリーに対して最低 40GB
- 各デバッグ情報リポジトリーに対して最低 80GB
主要な Red Hat Enterprise Linux バージョンの実稼働フェーズ 1 の後:
- このようなリポジトリーの推定された年間増加率は、バイナリーパッケージリポジトリーごとに 10GB、デバッグ情報リポジトリーごとに 20GB です。
Red Hat 実稼働フェーズの詳細は「Red Hat Enterprise Linux のライフサイクル」 を参照してください。
すべてのリポジトリーのサイズは異なります。これらの仕様は推奨にすぎず、同期を選択したリポジトリーに応じて調整する必要があります。
Red Hat Satellite 6 では、ユーザーはコンテンツビューを作成できます。コンテンツビューは、特定の時点でのユーザー定義コンテンツコレクションのスナップショットとなります。これにより、既存のリポジトリーからカスタマイズしたコンテンツコレクションを作成できるようになります。
コンテンツビューのコンテンツの各ユニットは、/var/lib/pulp/content
ディレクトリーにある Definitive Media Library へのシンボリックリンクを使用します。また、コンテンツビュー内の各リポジトリーには、コンテンツビューに属するコンテンツに関するメタデータが含まれます。したがって、使用しているパッケージが最小数しかないと、コンテンツビューが使用するストレージのサイズは少なくなりますが、コンテンツビューを複数使用し、ビューごとに使用するパッケージが大量になると、ストレージサイズが増加します。
たとえば、Red Hat Enterprise Linux 7 RPM リポジトリーを使用しているコンテンツビューには 7000 を超えるパッケージが含まれることがあります。この場合のディスク領域は、100MB 未満のシンボリックリンクになります。ただし、以下のことを考慮してください。
- このリポジトリーを含むコンテンツビューの数
- コンテンツビューごとのバージョンの数
- プロモートされたビューを使用しているライフサイクル環境の数
- キックスタートツリーやライブ CD コンテンツなどの追加コンテンツ
コンテンツビューが使用するストレージの量を削減するには、以下のことを行うことをお勧めします。
- コンテンツビューの未使用バージョンを削除します。ライフサイクル環境でコンテンツビューを使用せず、再使用しない場合は、削除して使用済みストレージを確保します。
- コンテンツビューでフィルターを使用します。フィルターは、コンテンツビューに表示されるコンテンツを制限します。これにより、ビューに必要なコンテンツのみを定義し、冗長なコンテンツを除外できるようになります。各コンテンツビューのサイズは大幅に削減されます。
-
/var/lib/pulp/nodes
ディレクトリーを監視します。Red Hat Satellite 6 は、このディレクトリーを使用してコンテンツビューを構築します。 -
/var/lib/pulp/published
ディレクトリーを監視します。Red Hat Satellite 6 は、このディレクトリーを使用してコンテンツビューを公開します。
また、Red Hat Satellite 6 はコンテンツ管理コンポーネント向けに以下のデータベースを使用します。
-
主要データベース:
/var/lib/pgsql
に格納された PostgreSQL データベース。ストレージの要件は、組織、環境、登録されたシステム、コンテンツビューなどの複数の要因によって異なります。 -
コンテンツデータベース:
/var/lib/mongodb
に格納された MongoDB データベース。ストレージの要件は、Red Hat Satellite 6 環境向けのパッケージとコンテンツビューの数によって異なります。通常は、大規模なストレージが使用されます。コンテンツデータベース向けに少なくても 10GB を予約し、リポジトリーごとに 5GB を計画します。このディレクトリーは、スケール可能な大規模ローカルパーティションにマウントすることをお勧めします。たとえば、このパーティションを作成するには論理ボリュームマネージャー (LVM) を使用します。
/var/lib/mongodb
は NFS 共有にマウントしないでください。Red Hat は、/var/lib/mongodb
ファイルシステムに高帯域幅で低レイテンシーのストレージを使用することをお勧めします。Red Hat Satellite には、I/O を大量に使用する多くの操作があるため、高レイテンシーで低帯域幅のストレージを使用すると、パフォーマンスが低下することがあります。