第4章 デプロイメントに関する考慮事項
このセクションでは、Red Hat Satellite 6 デプロイメントの計画時に検討される一般的なトピックの概要を、推奨事項やさらに具体的なドキュメントの参照と共に提供します。たとえば、お客様のシナリオ例 (Satellite 6.1 に特化) に基づくインプリメンテーションについては、アーティクルの 10 Steps to Build an SOE: How Red Hat Satellite 6 Supports Setting up a Standard Operating Environment を参照してください。
4.1. Satellite Server の設定
作業用の Satellite インフラストラクチャーに対する最初のステップとして、Red Hat Satellite インストールガイド に説明されているように Red Hat Satellite Server を専用 Red Hat Enterprise 7 Server にインストールします。本ガイドで説明している インストールの前提条件 および 大規模なデプロイメントについての考慮事項 について検討してください。
Satellite サブスクリプションマニフェストの Satellite Server への追加
サブスクリプションマニフェストは、サブスクリプション情報が含まれる暗号化されたファイルのセットです。Satellite Server はこの情報を使って CDN にアクセスし、関連付けられたサブスクリプションで利用可能なリポジトリーを検索できます。サブスクリプションマニフェストの作成およびインポート方法の詳細は、Red Hat Satellite Content Management Guide の Managing Subscriptions を参照してください。
Red Hat Satellite 6 では、Satellite で設定される各組織の単一マニフェストが必要になります。Satellite 6 の組織機能を使用して、Red Hat Network アカウントでインフラストラクチャーの別々のユニットを管理する予定がある場合、必要に応じて 1 つのアカウントのサブスクリプションを組織ごとのマニフェストに割り当てます。
複数の Red Hat Network アカウントを持つ予定の場合や、Red Hat Network アカウントの保持者でもある別のエンティティーに属するシステムを管理する必要がある場合には、ユーザーと別のアカウント保持者は必要に応じてマニフェストにサブスクリプションを割り当てることができます。次に 1 つの Satellite Server で複数のマニフェストを使用して複数の組織を管理できます。
システムを管理する必要があるもののサブスクリプションへのアクセスがない場合、Smart Management サブスクリプションを使用します。これにより、ソフトウェアリポジトリーにサブスクライブするエンタイトルメントなしに複数のシステムを管理することができます。
以下の図は、複数のシステムを同じ Satellite 6 インストールで管理する必要のある、2 つの Red Hat Network アカウント保持者について示しています。このシナリオでは、Example Corporation 1 は 60 サブスクリプションの任意のサブセットを割り当てることができます。この例では、30 をマニフェストに割り当てています。これは別個の組織として Satellite にインポートできます。これにより、システム管理者は Satellite 6 を使用し、Example Corporation 2 の組織 (R&D、Operations、および Engineering) と完全に切り離して Example Corporation 1 のシステムを管理する機能できます。
複数のマニフェストを含む Satellite Server
サブスクリプションマニフェストの作成時:
- 切断されて Satellite Server または自己登録 Satellite Server について計画する場合は Satellite Server のサブスクリプションをマニフェストに追加します。これは、ベースシステム上で Red Hat Subscription Manager ユーティリティーを使用しているサブスクライブされている接続済みの Satellite Server には不要です。
- 作成する必要のあるすべての Capsule Server のサブスクリプションを追加します。
- Satellite で管理する必要のあるすべての Red Hat 製品のサブスクリプションを追加します。
- 1 つの組織につき 1 つのマニフェストを作成します。複数のマニフェストを使用することができ、かつ複数の異なる Red Hat サブスクリプションのマニフェストを使用することができます。
サブスクリプションマニフェストは、インフラストラクチャーに変更があった場合やサブスクリプションを追加する場合に変更でき、Satellite Server にリロードできることに注意してください。マニフェストを削除することはできません。マニフェストを Red Hat カスタマーポータルや Satellite Web UI で削除する場合には、すべてのコンテンツホストの登録解除が行われます。
4.2. ロケーションおよびトポロジー
このセクションでは、Satellite 6 デプロイメントシナリオを指定するのに役立つ一般的な考慮事項について説明します。デプロイメントの最も一般的なシナリオについては、5章共通のデプロイメントシナリオ にその一覧が記載されています。以下はよくある質問です。
- 必要な Capsule Server の数は?: 組織が機能する地理的な場所の数が Capsule Server の数であると考えることができます。Capsule を各ロケーションに割り当てることで、Satellite Server の負荷が軽減されると同時に、冗長性が強化され、帯域幅の使用量が減少します。Satellite Server 自体も Capsule として機能できます (これにはデフォルトで統合 Capsule が含まれます)。これは単一ロケーションのデプロイメントで使用でき、Capsule Server のベースシステムをプロビジョニングするために使用できます。統合 Capsule を使用してリモートロケーションのホストと通信することは、ネットワークの使用が最適化されない可能性があるために推奨されません。
- Capsule Server が提供するサービスは?: Capsule の数を設定したら、各 Capsule で有効にするサービスを決定します。コンテンツおよび設定管理機能のスタック全体が利用可能な場合でも、一部のインフラストラクチャーサービス (DNS、DHCP、TFTP) は Satellite 管理者の管理対象外である場合があります。その場合は、Capsule はそれらの外部サービスと統合する必要があります (「Capsule と外部サービス」 を参照)。
- Satellite Server をインターネットから切断している必要があるか?: 切断された Satellite は一般的なデプロイメントシナリオで使用されます (「接続されていない Satellite」 を参照)。切断された Satellite で Red Hat コンテンツの更新が頻繁に必要な場合には、Satellite 間の同期を図るための追加の Satellite インスタンスについて計画してください。
- ホストに必要なコンピュートリソースは?: ベアメタルホストのプロビジョニングのほかにも、Satellite 6 でサポートされる各種のコンピュートリソースを使用できます。複数の異なるコンピュートリソースでのプロビジョニングについての詳細は、Red Hat Satellite Provisioning Guide を参照してください。
4.3. コンテンツソース
サブスクリプションマニフェストは Satellite Server からアクセスできる Red Hat リポジトリーを決定します。Red Hat リポジトリーを有効にすると、関連付けられた Satellite 製品が自動的に作成されます。カスタムソースからコンテンツを配信するには、製品およびリポジトリーを手動で作成する必要があります。Red Hat リポジトリーは、デフォルトでは GPG キーで署名されるため、カスタムリポジトリー用にも GPG キーを作成することが推奨されます。カスタムリポジトリーの設定は、それらが保持するコンテンツのタイプ (RPM パッケージ、Puppet モジュール、Docker イメージ、または OSTree スナップショット) によって異なります。
RPM パッケージのみを含む yum
リポジトリーとして設定されるリポジトリーは、同期時間と保存スペースを節約するための新規ダウンロードポリシー設定を利用できます。この設定により、即時、オンデマンド、およびバックグラウンドから選択することができます。オンデマンド設定は、クライアントの要求時にのみパッケージをダウンロードすることでスペースと時間を節約します。バックグラウンド設定は、初期の同期後にダウンロードを完了することで時間を節約します。コンテンツソースのセットアップについての詳細な説明については、Red Hat Satellite Content Management Guide の Importing Red Hat Content セクションを参照してください。
Satellite Server 内のカスタムリポジトリーには、ほとんどの場合、外部ステージングサーバーからのコンテンツが設定されます。これらのサーバーは Satellite インフラストラクチャー外に置かれますが、カスタムコンテンツをより効果的に制御するために (Git などの) リビジョンコントロールシステムを使用することが推奨されます。
4.4. コンテンツのライフサイクル
Satellite 6 は、コンテンツライフサイクルを詳細に管理するための各種機能を提供します。ライフサイクル環境 は、コンテンツライフサイクルのステージを表し、コンテンツビュー はコンテンツのフィルターされたコンテンツのセットであり、コンテンツの定義済みのサブセットとみなすことができます。コンテンツビューをライフサイクル環境に関連付けると、コンテンツを定義された方法でホストに対して利用可能にできます (プロセスの仮想化については、図1.2「Red Hat Satellite 6 におけるコンテンツのライフサイクル」 を参照)。コンテンツ管理プロセスの詳細の説明については、Red Hat 6 Content Management Guide を参照してください。以下のセクションでは、ライフサイクル環境と共にコンテンツビューをデプロイするための一般的なシナリオについて説明します。
ライブラリー と呼ばれるデフォルトのライフサイクル環境はすべての接続されたソースからコンテンツを収集します。ホストをライブラリーに直接関連付けることは、ホストに利用可能にする前のコンテンツのテストを実行できなくなるために推奨されていません。その代わりに、コンテンツのワークフローに適したライフサイクル環境パスを作成します。よくあるシナリオは以下のようになります。
単一ライフサイクル環境: ライブラリーからのコンテンツは本番ステージに直接プロモートされます。このアプローチでは、複雑さの面で制限がありますが、ホストに利用可能にする前のライブラリー内でのコンテンツのテストが可能です。
単一ライフサイクル環境パス: オペレーティングシステムとアプリケーションコンテンツは共に同じパスでプロモートされます。そのパスは複数のステージ (たとえば、「Development (開発)」、「QA」、「Production (本番)」) で構成されており、詳細なテストを可能にしますが、これには追加の作業が必要です。
アプリケーション固有のライフサイクル環境パス: 各アプリケーションには別個のパスがあり、これにより個別のアプリケーションリリースサイクルが可能になります。特定のコンピュートリソースをアプリケーションライフサイクルのステージに関連付けて、テストを容易にすることができます。しかしながら、このシナリオではメンテナンスが複雑になります。
以下はよくあるコンテンツビューのシナリオです。
- オールインワンコンテンツビュー: 大半のホストに必要なすべてのコンテンツが含まれるコンテンツビューです。コンテンツビューの数を減らすことは、リソース (時間、保存スペース) に制限のあるデプロイメントやホストタイプが同一のデプロイメントの場合に利点があります。ただし、このシナリオは時間ベースのスナップショットやインテリジェントなフィルタリングなどのコンテンツビューの各種機能を制限します。コンテンツソースのいずれの変更も一部のホストに影響を与えます。
- ホスト固有のコンテンツビュー: 各ホストタイプの専用コンテンツビューです。このアプローチは、少数のホストタイプ (最高 30) を含むデプロイメントで役立ちます。ただし、この場合はホストタイプ間のコンテンツの共有や、ホストタイプ以外の基準に基づく分離 (オペレーティングシステムとアプリケーション間など) を防ぎます。重要な更新があった場合は、すべてのコンテンツビューを更新する必要があり、これによりメンテナンスの作業が増加します。
- ホスト固有の複合コンテンツビュー: 各ホストタイプ専用のコンテンツビューの組み合わせです。このアプローチにより、ホスト固有のコンテンツと共有コンテンツの分離が可能になります。たとえば、Puppet 設定の専用のコンテンツビューを設定することができます。このコンテンツビューを複数のホストタイプの複合コンテンツビューに組み込むと、他のホストコンテンツよりも高い頻度で Puppet 設定を更新することができます。
- コンポーネントベースのコンテンツビュー: 特定のアプリケーションの専用コンテンツビューです。たとえば、データベースコンテンツビューはいくつかの複合コンテンツビューに組み込むことができます。このアプローチにより標準化のレベルが上がりますが、コンテンツビューの数が増えることにもなります。
最適なソリューションはホスト環境の性質によって異なります。多数のコンテンツビューを作成することは避けますが、コンテンツビューのサイズは関連する操作 (公開、プロモート) の速度に影響を与えることに注意してください。また、コンテンツビューのパッケージのサブセットを作成する際には、すべての依存関係も含まれていることを確認してください。キックスタートリポジトリーは、ホストのプロビジョニングにのみ使用されるのでコンテンツビューに追加できないことに注意してください。
4.5. プロビジョニング
Satellite 6 は、プロビジョニングテンプレート、Puppet を使用した設定管理、ホストロールの標準化されたプロビジョニングのためのホストグループを含む、ホストのプロビジョニングの自動化に役立つ複数の機能を提供します。プロビジョニングのワークフローについては、the Red Hat Satellite 6 Provisioning Guide の Understanding the Provisioning Workflow を参照してください。同じガイドには、各種のコンピュートリソースでのプロビジョニングの方法について記載されています。
4.6. ロールベースの認証
ロールをユーザーに割り当てることにより、一連のパーミッションに基づく Satellite 6 コンポーネントへのアクセスを制御できます。ロールベースの認証は、ユーザーにとって不要なオブジェクトをユーザーから非表示にする方法として理解することができます。
組織内の複数の異なるロールを区別する基準は多岐に及びます。管理者ロールのほかにも、一般的に以下のタイプが見られます。
- アプリケーションまたはインフラストラクチャーの一部に関連するロール: たとえば、オペレーティングシステムとしての Red Hat Enterprise Linux の所有者とアプリケーションサーバーおよびデータベースサーバーの所有者を比較できます。
- ソフトウェアライフサイクルの特定のステージに関連するロール: たとえば、開発、テストおよび本番フェーズで区分されたロールで、各フェーズに 1 人以上の所有者が設定されるケース。
- 特定のタスクに関連するロール: セキュリティーマネージャー、ライセンスマネージャー、または Access Insights 管理者など。
カスタムロールを定義する際に、以下の推奨事項を考慮してください。
- 予想されるタスクおよび責任の定義: 所定のロールからアクセスできる Satellite インフラストラクチャーのサブセットおよびこのサブセットで許可されるアクションを定義します。ロールの責任について、また他のロールとの違いについて検討します。
- 事前に定義されたロールの使用 (可能な場合): Satellite 6 は、単独またはロールの組み合わせの一部として使用できる数多くのサンプルロールを提供します。既存のロールのコピーおよび編集からカスタムロールの作成を開始すると良いでしょう。
- 影響を受けるすべてのエンティティーを考慮に入れる: たとえば、コンテンツビューのプロモートにより、特定のライフサイクル環境およびコンテンツビューの組み合わせに対する新規の Puppet 環境が自動的に作成されます。そのため、あるロールがコンテンツビューをプロモートすることが予想される場合に、Puppet 環境を作成し、編集するパーミッションも必要になります。
- 関連分野を考慮に入れる:ロールの責任範囲が限定されている場合でも、関連する分野は広い範囲に及ぶ場合があります。そのため、ロールの責任範囲に影響を与える Satellite インフラストラクチャーの部分に対する読み取り専用アクセスをロールに付与することができます。これにより、ユーザーは今後の変更の可能性についての情報に早期に取得することができます。
- パーミッションを段階的に追加する: カスタムロールが予定通りに機能することを確認するためにテストします。問題が生じた場合には、限定されたパーミッションセットでこれを開始し、パーミッションを段階的に追加して継続的にテストするのが効果的な方法です。
ロールを定義し、これらをユーザーに割り当てる方法については、Red Hat Satellite サーバー管理ガイド の説明を参照してください。同ガイドには、外部の認証ソースについての情報が記載されています。
4.7. 追加のタスク
このセクションでは、特定のタスクを自動化したり、Satellite 6 のコアの使用を拡張したりするために使用できる選択された Satellite 機能の短い概要を示します。
- 既存ホストのインポート: 過去に Satellite 6 で管理されてこなかった既存のホストがある場合、それらのホストを Satellite Server にインポートできます。通常、この手順には Red Hat Satellite 5 からの移行における 1 つのステップが必要になります。詳細のドキュメントについては、Red Hat Satellite Transition Guide を参照してください。移行プロセスの概要については、Red Hat ナレッジベースのアーティクル Red Hat Satellite 5 から Satellite 6 への移行 を参照してください。
- ベアメタルホストの検出: Satellite 6 検出プラグインはプロビジョニングネットワーク上の不明なホストのベアメタルの自動検出を可能にします。これらの新規ホストは、シリアル ID、ネットワークインターフェース、メモリー、およびディスク情報などの Facter が収集するクライアントアップロードシステムのファクトに基づいて Satellite Server および Puppet エージェントに自己登録します。登録後は、それらの検出されたホストのプロビジョニングを初期化できます。詳細については、Red Hat Satellite Host Configuration Guide の Discovering Bare-metal Hosts on Satellite を参照してください。
- バックアップ管理: Satellite Server のバックアップおよび障害回復の手順についての情報を参照してください (Red Hat Satellite サーバー管理ガイド の バックアップおよび障害回復 を参照)。リモート実行を利用すると、管理対象ホストで繰り返されるバックアップタスクを設定することもできます。リモート実行についての詳細は、Red Hat Satellite Host Configuration Guide の Running Jobs on Satellite Hosts を参照してください。
- セキュリティー管理: Satellite 6 は、更新およびエラータ管理、システム検証のための OpenSCA 統合、更新およびセキュリティーコンプライアンスのレポート作成、および詳細なロールベースの認証を含む、セキュリティー管理を各種の方法でサポートします。エラータ管理および OpenSCAP 概念の詳細については、Red Hat Satellite Host Configuration Guide を参照してください。
- インシデント管理: Satellite 6 は、レポート作成およびメール通知を含むすべてのシステムの一元化された概要を提供することで、インシデント管理プロセスをサポートします。各ホストの詳細情報は、最近の変更のイベント履歴を含め、Satellite Server からアクセスできます。また、Satellite 6 は Red Hat Insights と統合しています。
- Hammer および API を使用したスクリプト: Satellite 6 は、大半の Web UI の手順と同等の CLI を提供する Hammer というコマンドラインツールを提供します。さらに、Satellite API へのアクセスを使用して、選択したプログラミング言語で自動化スクリプトを作成できます。詳細は、Red Hat Hammer CLI Guide および Red Hat API Guide を参照してください。