第2章 組織、場所、リポジトリーの管理
hammer を使用して、組織、場所、リポジトリーの作成、編集、管理をすることができます。Web UI を使用した場合の以下の手順は、Red Hat Satellite サーバー管理ガイド「組織、ロケーション、およびライフサイクル環境の設定」を参照してください。
2.1. 組織
Red Hat Satellite の組織は、Satellite デプロイメント内にあるシステム、コンテンツ、その他の機能を分離して集めたものです。本章では、hammer を使用した組織の作成、変更の方法を説明します。
2.1.1. 組織の作成
以下のコマンドを使用して組織を作成します。
$ hammer organization create \ --name "<org_name>" \ --label "<org_label>" \ --description "<org_description>"
ここで、
- <org_name> は組織の名前に置き換えます。このパラメーターは必須です。
-
<org_label> は
subscription-managerなど、コマンドラインアプリケーションで使用する組織のラベルに置き換えます。ラベルには、ホワイトスペースを含めることはできず、後ほど変更することもできません。指定されていない場合は、ラベルは組織名から自動的に生成されます (ホワイトスペースはアンダースコアに置き換えられます)。 - <org_description> は、組織の簡単な説明に置き換えます。このパラメーターは必須ではありませんが、多数の組織を管理しやすくなります。
組織の作成時に全設定を行うことができます (hammer organization create --help を実行してオプションを表示します)。また、hammer organization update コマンドを使用して既存の組織を変更することもできます。
例2.1 ACME の組織の作成および更新
以下の例では、ACME という名前の組織の作成方法を示します。
$ ORG="ACME" $ hammer organization create \ --name $ORG \ --description "Example organization"
このコマンドは、組織にコンピューとリソースを割り当てます。
$ hammer organization update \ --name $ORG \ --compute-resource-ids 1
Satellite Server で実行可能なタスクの多くは、組織固有のものです。Hammer コマンドは、organization、organization-label または organization-id オプションを使用して、3 つの方法で組織を特定することができます。組織 ID を検索するには、以下のコマンドを使用します。
$ hammer organization list
組織名が長い場合には、シェル変数に保存することを検討してください。Hammer コマンドではこの変数を使用できます。以下に例を示します。
$ ORG = "Red Hat Enterprise Linux Developer Team" $ hammer product list --organization $ORG
本ガイドの例ではこのアプローチを使用します。
単一の組織を管理することが多い場合には、以下のように、デフォルトのパラメーターとして ID を保存してください。
$ hammer defaults add --param-name organization_id --param-value 1
上記の設定では、組織固有のコマンドは --organization-id 1 が指定されていることを前提とするため、これ以上入力の必要はありません。
2.1.2. マニフェストのアップロード
サブスクリプションマニフェストを使用して、Red Hat カスタマーポータルから Satellite Server にサブスクリプションを移行します。まず、『Red Hat Satellite Content Management Guide』の説明通りに、Red Hat カスタマーポータルでマニフェストを作成し、そのマニフェストを以下のように組織にアップロードします。
$ hammer subscription upload \ --organization-label <org_label> \ --file <path_to_manifest>
例2.2 マニフェストの ACME 組織へのアップロード
以下の例では、サブスクリプションマニフェストファイルを ACME 組織にアップロードする方法を説明します (組織名がシェル変数に保存されていることを前提とします)。
$ hammer subscription upload --organization $ORG --file /tmp/manifest.zip
マニフェストでインポートしたサブスクリプションを表示するには、以下を実行します。
$ hammer subscription list --organization $ORG
2.2. 場所
Red Hat Satellite の場所は、物理的な場所を示すデフォルトの設定を集めたものです。本セクションでは、hammer を使用した場所の作成方法を説明します。
2.2.1. ロケーションの作成
以下のコマンドを使用して場所を作成します。
$ hammer location create --name <location_name>例2.3 スクリプトを使用した複数の場所の作成
以下の Bash スクリプトでは、3 つの場所 (ロンドン、ミュンヘン、ボストン) を作成して、これらの場所を ACME 組織に割り当てます。
ORG="ACME"
LOCATIONS="london munich boston"
for LOC in ${LOCATIONS}
do
hammer location create --name "${LOC}"
hammer location add-organization --name "${LOC}" --organization "${ORG}"
done
hammer location --help を実行して考えられる場所関連の操作を表示します。
2.3. リポジトリー
リポジトリーは、コンテンツコレクション用のストレージを提供します。本セクションでは、hammer を使用してリポジトリーを有効化、同期する方法を説明します。
2.3.1. リポジトリーの有効化
Red Hat リポジトリーを有効化する前に、リポジトリーの名前、リポジトリーが提供する製品の名前、ベースアーキテクチャー、リリースバージョンを知っておく必要があります。以下のコマンドを使用して、リポジトリーを有効化します。
$ hammer repository-set enable \ --organization-label <org_label> \ --product "<product_name>" \ --basearch "<base_architecture>" \ --releasever "<release_version>" \ --name "<repository_name>"
例2.4 Red Hat Enterprise Linux リポジトリーの有効化
以下のコマンドは、組織用に Red Hat Enterprise Linux 7 Server リポジトリーを有効化します。
$ hammer repository-set enable \ --organization $ORG \ --product "Red Hat Enterprise Linux Server" \ --basearch "x86_64" \ --releasever "7Server" \ --name "Red Hat Enterprise Linux 7 Server (RPMs)"
hammer repository-set --help を実行して、利用可能なリポジトリー関連の操作を表示します。また、hammer repository --help も参照してください。
2.3.2. リポジトリーの同期
リポジトリーを同期すると、Red Hat カスタマーポータルから Satellite Server にコンテンツをプルします。リポジトリーを同期するには、リポジトリーの名前と製品名を指定する必要があります。
$ hammer repository synchronize \ --product "<product_name>" \ --name "<repo_name>" \ --organization-label <org_label> \ --async
コンテンツビューを作成した場合に、単一の組織内に同じ名前を持つリポジトリーが複数存在する可能性がある点に注意してください。--id オプションを使用して、同期するリポジトリーを特定します (hammer repository list を実行してリポジトリー ID を検索します)。
例2.5 Red Hat Enterprise Linux リポジトリーの同期
以下のコマンドは、組織内の Red Hat Enterprise Linux 7 Server リポジトリーを 1 度同期します。
$ hammer repository synchronize \ --product "Red Hat Enterprise Linux Server" \ --name "Red Hat Enterprise Linux 7 Server (RPMs)" \ --organization $ORG \ --async
タスク ID は、上記のコマンドを実行後に表示されます。
Repository is being synchronized in task 640bb71f-0ce5-40a3-a675-425a4acacceb
タスクの進捗を表示するには以下を実行します。
$ hammer task progress --id 640bb71f-0ce5-40a3-a675-425a4acacceb
最初の同期を完了した後に、リポジトリーは Satellite Server にミラーリングされたリポジトリー一覧に追加されます。以下のコマンドを実行して一覧を表示します。
$ hammer repository list --organization $ORG
以下のように製品に含まれる全リポジトリーを同期することもできます。
$ hammer product synchronize \ --organization-label <org_label> \ --name "<product_name>" \ --async
--async オプションを指定すると、リポジトリーの同期はバックグラウンドで実行され、並行して複数のリポジトリーを有効化、同期することも可能です。
例2.6 ACME 組織の全リポジトリーの同期
以下の Bash スクリプトは、ACME 組織内の全リポジトリーを同期します。
ORG="ACME"
for i in $(hammer --csv repository list --organization $ORG | grep -vi '^ID' | awk -F, {'print $1'})
do
hammer repository synchronize --id ${i} --organization $ORG --async
done2.3.3. 同期プランの作成
Red Hat Satellite の製品は、同期プロセスの最小単位として機能するリポジトリーの集まりです。指定の間隔で、選択した製品のリポジトリーを自動的に更新するように同期プランを作成することができます。
同期プランを定義するには、以下のコマンドを実行します。
$ hammer sync-plan create \ --name "<sync_plan_name>" \ --enabled=true \ --interval <repetition_interval> \ --organization-label <org_label> \ --sync-date "<initial_sync>"
<repetition_interval> は hourly、daily または weekly に置き換えます。また、<initial_sync> は、初回同期の日時 (「YYYY-MM-DD HH:MM:SS」形式) に置き換えます。
例2.7 同期プランの作成
以下のコマンドは、2016 年 1 月 15 日から、毎日午前 3 時に実行される ACME 組織の日次の同期スケジュールを作成します。
$ hammer sync-plan create \ --name "daily sync at 3 a.m." \ --enabled=true \ --interval daily \ --organization $ORG \ --sync-date "2016-01-15 03:00:00"
同期プランと製品を関連付けるには、以下のコマンドを発行します。
$ hammer product set-sync-plan \ --organization-label <org_label> \ --name "<product_name>" \ --sync-plan "<sync_plan_name>"
例2.8 複数製品への同期プランの割り当て
以下の Bash スクリプトは、最低でも 1 回同期され、少なくとも 1 つのリポジトリーが含まれる ACME 組織の製品を選択し、「daily sync at 3 a.m」という同期プランに割り当てます。
ORG="ACME"
SYNC_PLAN="daily sync at 3 a.m."
for i in $(hammer --csv product list --organization $ORG --per-page 999 | grep -vi '^ID' | grep -vi not_synced | awk -F, {'{ if ($5!=0) print $1}'})
do
hammer product set-sync-plan --sync-plan $SYNC_PLAN --organization $ORG --id $i
doneスクリプトの実行後には、以下のコマンドを発行して、どの製品が同期プランに割り当てられたのかを確認します。
$ hammer product list --organization $ORG --sync-plan "daily sync at 3 a.m."
選択した組織で利用可能な同期プランを表示するには、以下のコマンドを実行します。
$ hammer sync-plan list --organization-label <org_label>
製品および同期プランとの連携方法に関する詳しい情報は hammer sync-plan --help および hammer product --help を参照してください。
2.3.4. カスタムリポジトリーの作成
Red Hat のリポジトリーを有効化すると、適切な製品が自動的に作成されます。カスタムのパッケージのリポジトリーを有効化するには、最初にこのリポジトリーの製品を手動で作成する必要があります。
以下のコマンドを使用してカスタムの製品を作成します。
$ hammer product create --name "<product_name>" --organization-label <org_label>
以下のコマンドは、カスタムの製品の下に新規リポジトリーを作成します。
$ hammer repository create \ --name "<repo_name>" \ --organization-label <org_label> \ --product "<product_name>" \ --content-type <cont_type> --publish-via-http true \ --url "<repo_url>"
例で使用している値は独自の値で置き換えてください。
-
特に、<cont_type> はリポジトリーのコンテンツタイプを指定しており、
yum、puppet、dockerの中から 1 つ選択してください。 - <repo_url> は、利用可能なリポジトリーの URL を指定します。--publish-via-http が有効化されている場合のみ、有効です。
カスタムのリポジトリーにパッケージをアップロードするには、以下のコマンドを実行します。
$ hammer repository upload-content \ --product "<product_name>" \ --organization-label <org_label> \ --id "<repo_id>" \ --path <path_to_dir>
<path_to_dir> は、カスタムリポジトリーに追加するコンテンツ (RPM パッケージ、Puppet モジュール、Docker イメージ) を含むディレクトリーへのパスに置き換えます。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.