第3章 Spacewalkサーバーのサーバー間同期の構成
ISSを構成して、チャネル・コンテンツ、チャネル許可、および組織の信頼構成をSpacewalkサーバー間で同期させることができます。 ユーザーおよび組織のローカル非コンテンツ設定の構成には影響しません。 1つのSpacewalkサーバーは、任意の数のworker Spacewalkサーバーにコンテンツを提供するための「プライマリ」として機能します。
典型的な使用例は次のとおりです:
-
ワーカー・サーバーのコンテンツは、最新のメンテナンス・リリースを取得するために、プライマリ・サーバーと定期的に同期化されます。
-
コンテンツは、ワーカー・サーバーに配布する前にプライマリ・サーバーで開発およびテストされます。
-
ワーカー・サーバーには、プライマリ・サーバーから同期されるローカル・コンテンツが追加されます。
上位レベルのプライマリSpacewalkサーバーのワーカーであるプライマリ・サーバーを構成できます。 通常、ISSトポロジはツリーに似た階層で、各ワーカーには有向グラフではなく1つのプライマリ・サーバーのみがあります。この場合、複数の最上位プライマリ・サーバーが存在し、各ワーカーが複数のプライマリ・サーバーを持つことができます。 ワーカーに複数のプライマリ・サーバーがある場合、1つをワーカーが同期するデフォルトのプライマリ・サーバーに指定できます。
spacewalk-sync-setupコマンドを使用してプライマリ・サーバーとワーカーSpacewalkサーバー間の関係を設定することも、Spacewalk webインタフェースを使用して各サーバーを個別に構成することもできます。
3.1 Spacewalkサーバーに対するワーカー同期サポートの有効化または無効化
デフォルトでは、Spacewalkサーバーは、プライマリ・サーバーとして機能できるように構成されています。 プライマリ・サーバーに構成するすべてのワーカー・サーバーは、そこから同期化できます。 ワーカー・サーバーとしてのみ機能するSpacewalkサーバーでこの機能を無効にする場合を除き、通常、次のステップは必要ありません。
次のように、Spacewalkサーバーでのワーカー同期のサポートを有効または無効にします:
-
ISSサポートを無効にするには、
/etc/rhn/rhn.conf
を編集し、disable_iss
の値を1に設定します:disable_iss=1
ISSサポートを有効にするには、
/etc/rhn/rhn.conf
を編集し、disable_iss
の値を0に設定します:disable_iss=0
-
httpd
サービスを再起動します。Oracle Linux 6の場合、次のコマンドを入力します:
#
service httpd restart
Oracle Linux 7の場合、次のコマンドを入力します:
#
systemctl restart httpd
3.2 spacewalk-sync-setupコマンドを使用したプライマリおよびワーカーSpacewalkサーバーの構成
ISSを構成する前に、Spacewalkがプライマリ・サーバーとワーカー・サーバーの両方にインストールされ、実行されている必要があります。
spacewalk-sync-setupコマンドは、spacewalk-utils
パッケージで使用できます。
いずれかのSpacewalkサーバーで、spacewalk-sync-setupコマンドを実行します。
#spacewalk-sync-setup --apply --create-templates
\--ms=
\primary_swksvr_FQDN
--ml=primary_swadm
--mp=primary_swadm_passwd
--ss=
worker_swksvr_FQDN
--sl=worker_swadm
--sp=worker_swadm_passwd
前の例では、primary_swksvr_FQDN
はプライマリ・サーバーとして機能するSpacewalkサーバーの完全修飾ドメイン名であり、primary_swadm
およびprimary_swadm_passwd
の値はそのサーバーのSpacewalk管理者ユーザー名とパスワードを指定します。
worker_swksvr_FQDN
の値は、ワーカー・サーバーとして機能するSpacewalkサーバーの完全修飾ドメイン名で、worker_swadm
およびworker_swadm_passwd
の値はそのサーバーのSpacewalk管理者のユーザー名とパスワードを指定します。
このコマンドを実行したときに表示される一般的な出力は次のとおりです:
# spacewalk-sync-setup --apply --create-templates \
--ms=swksvr.mydom.com --ml=swadm
--mp=swpass
\
--ss=swksvr2.mydom.com --sl=swadm2
--sp=swpass2
INFO: Connecting to swadmin@swksvr.mydom.com
INFO: Connecting to swadmin@swksvr2.mydom.com
INFO: Generating master-setup file /root/.spacewalk-sync-setup/master.txt
INFO: Generating slave-setup file /root/.spacewalk-sync-setup/slave.txt
INFO: About to wget master CA cert: [wget -q -O
/usr/share/rhn/swksvr.mydom.com_RHN-ORG-TRUSTED-SSL-CERT
http://swksvr.mydom.com/pub/RHN-ORG-TRUSTED-SSL-CERT]
INFO: Applying master-setup /root/.spacewalk-sync-setup/master.txt
INFO: Applying slave-setup /root/.spacewalk-sync-setup/slave.txt
プライマリ・サーバーのCA証明書のコピーは、/usr/share/rhn/swksvr.mydom.com_RHN-ORG-TRUSTED-SSL-CERT
としてワーカーに格納されます。
その後、プライマリ・サーバーがエクスポートする組織に、ワーカー・サーバーのローカル組織をマップできます。 3.5項、「Spacewalk Webインタフェースを使用したエクスポートされた組織へのローカル組織のマッピング」を参照してください。
3.3 Spacewalk Webインタフェースを使用したプライマリSpacewalkサーバーの構成
プライマリSpacewalkサーバーを次のように構成します:
-
「管理者」に行き、「ISS構成」を選択して、「マスター設定」タブを選択します。
-
「既知のスレーブ・インスタンス」ページで、「+新しいスレーブを追加」をクリックします。
-
「スレーブの詳細の編集」ページで、ワーカー・サーバーのFQDNを入力し、ワーカーと組織の同期を構成するチェック・ボックスを選択または選択解除します。
たとえば、ワーカーがプライマリ・サーバーから同期できるようにするが、すべての組織をワーカーに同期させたくない場合があります。
-
「作成」をクリックします。
ページが更新されると、エクスポートできる組織を選択できます。 デフォルトでは、組織は選択されていません。
-
ワーカーへのエクスポートを有効にする組織を選択し、「組織を許可」をクリックします。
3.4 Spacewalk Webインタフェースを使用したWorker Spacewalkサーバーの構成
ワーカーSpacewalkサーバーを次のように構成します:
-
ブラウザ・タブで、
http://
に移動します。ここで、primary_swksvr_FQDN
/pubprimary_swksvr_FQDN
はプライマリSpacewalkサーバーのFQDNで、CA証明書ファイルRHN-ORG-TRUSTED-SSL-CERT
をRHN-ORG-TRUSTED-SSL-CERT-MASTER
としてダウンロードします。または、次のようにwgetコマンドを使用することもできます:
#
wget -q -O /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT-MASTER
\http://
primary_swksvr_FQDN
/pub/RHN-ORG-TRUSTED-SSL-CERT -
Spacewalk Webインタフェースで、「管理者」に移動し、「ISS構成」を選択して、「スレーブ設定」タブを選択します。
-
「既知のマスター・インスタンス」ページで、「+新しいマスターを追加」をクリックします。
-
新しいマスターの詳細ページで、プライマリ・サーバーのFDQNおよびダウンロードしたプライマリCA証明書の絶対パス名(
RHN-ORG-TRUSTED-SSL-CERT-MASTER
)を入力し、そのプライマリをワーカーが同期するデフォルトにするかどうかを選択します。 -
「新しいマスターを追加」をクリックします。
ページがリフレッシュされ、primary-to-「スレーブ組織マッピング」の構成セクションが表示されます。このセクションでは、プライマリがエクスポートする組織のローカル名を構成できます。 コンテンツを同期すると、プライマリ・サーバーのチャネルに構成したアクセス権限がワーカー・サーバーに伝播されます。 ワーカー・サーバーにマップする組織および関連するチャネル権限を選択できます。
必要に応じて、プライマリ・サーバーがエクスポートする組織にマップするローカル組織を次のように作成します:
-
「管理者」に行き、「組織」を選択し、「+新しい組織を作成」をクリックして下さい。
-
「新しい組織を作成」ページで、組織の名前と管理者のログイン情報を含めて、組織の詳細を入力します。
ノートSpacewalk管理者はこのロールを実行できないため、組織管理者のロールを果たす新しいユーザーを作成する必要があります。
-
「組織の作成」をクリックします。
-
プライマリ・サーバー・インスタンスの「マスターからスレーブへの組織マッピングの構成」セクションに戻るには、「管理者」に移動し、「ISS構成」を選択します。 次に、「スレーブ設定」タブを選択し、プライマリ・サーバー・インスタンスの名前をクリックします。
-
-
「マスターからスレーブへの組織マッピングの構成」セクションで、プライマリ・サーバーがエクスポートする組織にマップするローカル組織を選択します。
-
マスター組織名列のエクスポートされた組織ごとに、ローカル組織の一致列のプルダウン・メニューを使用して、エクスポート組織にマップするローカル組織を選択します。
組織をインポートしない場合は、「マップされていない」を選択します。
-
「更新」をクリックします。
3.5 Spacewalk Webインタフェースを使用してエクスポートされた組織にローカル組織をマッピング
次のようにして、ワーカー・サーバーのローカル組織を、プライマリ・サーバーによってエクスポートされた組織にマップします:
-
ワーカー・サーバーで、プライマリ・サーバーがエクスポートする組織を表示するには、「管理者」に移動し、「ISS構成」を選択し、「スレーブ設定」タブを選択して、プライマリ・サーバー・インスタンスの名前をクリックします。
-
ワーカー・サーバーで、プライマリ・サーバーがエクスポートする組織にマップするローカル組織を作成します。
次のようにローカル組織を作成します:
-
「管理者」に行き、「組織」を選択し、「+新しい組織を作成」をクリックして下さい。
-
「新しい組織を作成」ページで、組織の名前と管理者のログイン情報を含めて、組織の詳細を入力します。
ノートSpacewalk管理者はこのロールを実行できないため、組織管理者のロールを果たす新しいユーザーを作成する必要があります。
-
「組織の作成」をクリックします。
-
プライマリ・サーバー・インスタンスの「マスターからスレーブへの組織マッピングの構成」セクションに戻るには、「管理者」に移動し、「ISS構成」を選択します。 次に、「スレーブ設定」タブを選択し、プライマリ・サーバー・インスタンスの名前をクリックします。
-
-
「マスターからスレーブへの組織マッピングの構成」セクションで、プライマリ・サーバーがエクスポートする組織にマップするローカル組織を選択します。
マスター組織名列のエクスポートされた組織ごとに、ローカル組織の一致列のプルダウンを使用して、エクスポート組織にマップするローカル組織を選択します。 組織をインポートしない場合は、「マップされていない」を選択します。
-
「更新」をクリックします。
3.6 Spacewalk Worker Server上のソフトウェア・チャネルの同期
ソフトウェア・チャネルを同期化するには、次のようにワーカー・サーバーでsatellite-syncコマンドを実行します:
#satellite-sync
[--iss-parent=
primary_swksvr_FQDN
] [--orgid=
N
]-c
channel_label
前述のコマンドで、channel_label
は、プライマリ・サーバーから同期するソフトウェア・チャネルのラベルを指定します。
--orgidオプションの引数では、チャネルの同期化先であるワーカーの組織のIDを指定します。 指定されていない場合、IDが1のSpacewalk Default Organizationが想定されます。
primary_swksvr_FQDN
値は、プライマリSpacewalkサーバーのFQDNを指定します。 指定しない場合、ワーカー・サーバーに複数のプライマリがあると、デフォルトのプライマリ・サーバーが使用されます。
デフォルトのプライマリ・サーバーのSpacewalkデフォルト組織からワーカー・サーバーでソフトウェア・チャネルの初期同期を実行すると、次のような出力が表示されます:
# satellite-sync -c oraclelinux6-x86_64-patch
16:16:52 Spacewalk - live synchronization
16:16:52 url: https://swksvr.mydom.com
16:16:52 debug/output level: 1
16:16:52 db: c##spacewalk2/<password>@//odbsvr.mydom.com/company.mydom.com
16:16:52
16:16:52 Retrieving / parsing orgs data
16:16:52 orgs data complete
16:16:52
16:16:52 Retrieving / parsing channel-families data
16:16:52 channel-families data complete
16:16:52
16:16:52 Retrieving / parsing product names data
16:16:52 product names data complete
16:16:52
16:16:52 Retrieving / parsing arches data
16:16:53 arches data complete
16:16:53
16:16:53 Retrieving / parsing additional arches data
16:16:53 additional arches data complete
16:16:53
16:16:53 Retrieving / parsing channel data
16:16:54 p = previously imported/synced channel
16:16:54 . = channel not yet imported/synced
16:16:54 base-channels:
16:16:54 NONE RELEVANT
16:16:54 oraclelinux6-x86_64:
16:16:54 . oraclelinux6-x86_64-patch 1367 full import from Fri Jul 10 13:02:52 2015
16:16:54
16:16:54 Channel data complete
16:16:54
16:16:54 Retrieving short package metadata (used for indexing)
16:16:54 Retrieving / parsing short package metadata: oraclelinux6-x86_64-patch (1367)
16:17:01 Diffing package metadata (what's missing locally?): oraclelinux6-x86_64-patch
________________________________________
Diffing: ######################################## - complete
16:17:04
16:17:04 Downloading package metadata
16:17:04 Retrieving / parsing *relevant* package metadata: oraclelinux6-x86_64-patch (1357)
16:17:04 * WARNING: this may be a slow process.
________________________________________
Downloading:######################################## - complete
16:42:30
16:42:30 Downloading rpm packages
16:42:30 Fetching any missing RPMs: oraclelinux6-x86_64-patch (1357)
16:42:53 Total size: 5.31 GiB
16:47:53 Processing rpm packages complete
16:47:53
16:47:53 Importing package metadata
16:47:53 Importing *relevant* package metadata: oraclelinux6-x86_64-patch (1357)
________________________________________
Importing: ######################################## - complete
18:06:44
18:06:44 Linking packages to channels
18:07:02
18:07:02 Downloading errata data
18:07:02 Retrieving / parsing errata data: oraclelinux6-x86_64-patch (216)
________________________________________
Downloading:######################################## - complete
18:07:06 Downloading errata data complete
18:07:06
18:07:06 Downloading kickstartable trees metadata
18:07:06 Retrieving / parsing kickstart data: oraclelinux6-x86_64-patch (NONE RELEVANT)
18:07:06
18:07:06 Downloading kickstartable trees files
18:07:06 Retrieving / parsing kickstart tree files: oraclelinux6-x86_64-patch (NONE RELEVANT)
18:07:06
18:07:06 Importing channel errata
18:07:13 Importing *relevant* errata: oraclelinux6-x86_64-patch (468)
________________________________________
Downloading:######################################## - complete
18:07:31 No new kickstartable tree to import
Import complete:
Begin time: Fri Jul 10 16:16:51 2015
End time: Fri Jul 10 18:07:31 2015
Elapsed: 1 hours, 50 minutes, 40 seconds