第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 または CLI ツール (hammer
) のいずれかを使用する手順を提供します。Red Hat Satellite 6 とのお好みの対話方法に応じていずれかを使用します。CLI を使用しており、hammer
コマンドを実行するたびに認証詳細情報を提供したくない場合は、ローカルユーザーに対して CLI 設定ファイルを作成します。
# mkdir ~/.hammer # cat > .hammer/cli_config.yml <<EOF :foreman: :host: 'https://satellite.example.com/' :username: 'admin' :password: 'p@55w0rd!' EOF
本書での hammer
コマンドのすべての使用箇所では、設定ファイルが使用され、認証詳細情報は省略されます。
一部の CLI コマンドでは、特定のタスクを非同期的に実行するために --async
オプションを使用できます。例えば、コンテンツを同期し、監視するのではなくコンテンツビューを非同期タスクとして公開できます。本書では、ユーザーが完了するタスクの進行状況を監視できるよう --async
が省略されます。特定のタスクで --async
オプションを含める場合は、次のタスクに進む前にタスクを完了させてください。
1.5. コンテンツ管理ストレージの定義
Red Hat Satellite 6 では、Red Hat のコンテンツ配信ネットワークと同期されるコンテンツを含む RPM および Puppet コンテンツ用リポジトリーと独自のカスタムリポジトリーがホストされます。このようなリポジトリーのサイズは時間の経過とともに大きくなります。したがって、それぞれの環境に合わせて適切なサイズ要件を推定し、将来の要件を適切にスケールする必要があります。
Red Hat Satellite 6 では、リポジトリーコンテンツの保存と管理が /var/lib/pulp
で行われます。このディレクトリーは、スケール可能な大規模ローカルパーティションにマウントすることをお勧めします。例えば、このパーティションを作成するには論理ボリュームマネージャー (LVM) を使用します。
/var/lib/pulp
は NFS 共有にマウントしないでください。Red Hat Satellite 6 の一部は、NFS に関する問題がある一時的な SQLite データベースを使用します。NFS 共有を使用する場合は、主要なソースコンテンツユニットを含む /var/lib/pulp/content
ディレクトリーのみをマウントします。Red Hat は、/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 Life Cycle" を参照してください。
すべてのリポジトリーのサイズは異なります。これらの仕様は推奨にすぎず、同期を選択したリポジトリーに応じて調整する必要があります。
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 を大量に使用する多くの操作があるため、高レイテンシーで低帯域幅のストレージを使用すると、パフォーマンスが低下することがあります。
1.6. 章の概要
本章では、Red Hat Satellite 6 のコンテキストのコンテンツ管理の基本的な概念について説明しました。これには、Red Hat Satellite 6 アプリケーションライフサイクルのフェーズの定義と Red Hat Satellite 6 が管理するコンテンツのさまざまなタイプが含まれます。また、本章では、シナリオ例のスコープが定義され、それぞれのコンテンツ管理のニーズを満たすストレージ要件が提供されました。
次章では、組織を作成してコンテンツを保存する方法について説明します。