第10章 クライアント・システムの制御と構成
リモート・クライアント・システムでコマンド・スクリプトを実行するには、Spacewalk Webインタフェースまたはspacecmdコマンドを使用します。 チャネルを使用してコンフィギュレーション・ファイルをデプロイすることによって、構成チャネルを構成し、これらのチャネルにクライアント・システムをサブスクライブし、クライアント・システムをカスタマイズすることもできます。
10.1 Spacewalk Webインタフェースを使用したリモート・クライアント・システムでのコマンド・スクリプトの実行
クライアント・システムは、Spacewalkサーバーがリモート・コマンドを実行できるようにする必要があります。 7.1項、「Spacewalk Webインタフェースを使用したキックスタート・プロファイルでのリモート構成の有効化」と7.3項、「リモート構成の手動による有効化」を参照してください。
リモート・クライアントでコマンドを実行するには:
-
「システム」に移動し、リストからクライアント・システムを選択します。
-
「詳細」を選択し、「リモート・コマンド」タブを選択します。
-
必要に応じて、コマンドを実行するユーザーのユーザーIDとグループID、コマンドのタイムアウト、およびコマンド・ラベルを最大10文字変更します。
-
「スクリプト」テキスト・ボックスに、実行するコマンド・スクリプトを入力します。 次の例では、whoコマンドを実行します:
#!/bin/sh who
-
必要に応じて、コマンドのスケジュールを変更します。
-
「スケジュール」をクリックして、指定したスケジュールに従ってコマンド・スクリプトを実行します。
スケジュールを編集しておらず、クライアント上でOSAデーモンを使用可能にした場合、OSAデーモンは通常、すぐにコマンドを実行します。
-
「イベント」を選択し、「保留中」または「履歴」タブを選択して、スケジュールされたアクションまたは完了したアクションを表示します。 サマリー名をクリックすると、スクリプトおよびクライアント上で既に実行されているすべての出力の詳細が表示されます。
10.2 spacecmdコマンドを使用したリモート・クライアント・システムでのコマンド・スクリプトの実行
クライアント・システムは、Spacewalk Serverがリモート・コマンドを実行できるようにする必要があります。 7.1項、「Spacewalk Webインタフェースを使用したキックスタート・プロファイルでのリモート構成の有効化」と7.3項、「リモート構成の手動による有効化」を参照してください。
クライアント・システムでコマンドを実行するには、次の例に示すように、system_runscriptコマンドを使用します:
spacecmd {SSM:0}>system_runscript group:group3 -s 20150617T0130 -t 60 -f /root/myscript
User: root Group: root Timeout: 60 seconds Start Time: 20150617T01:30:00 Script Contents --------------- #!/bin/sh yum update Systems ------- svr2.mydom.com svr3.mydom.com Is this ok [y/N]:y
INFO: Action ID: 343 INFO: Scheduled: 2 system(s)
イベントを開始する日時を指定するには、-sオプションとともにYYYYMMDD
[hhmm
]の形式を使用します。 開始時間を指定しないと、Spacewalkは0000
(深夜)とみなします。
-tオプションは、クライアントがコマンドを実行したことを確認するタイムアウトを定義します。 この時間が経過すると、Spacewalkはコマンドが失敗したとみなします。
10.3 スケジュールされたイベントの処理
完了イベント、失敗イベント、および保留イベントのリストを表示するには、schedule_listコマンドを使用します:
spacecmd {SSM:0}> schedule_list
ID Date C F P Action
-- ---- --- --- --- ------
...
343 20150617T01:30:00 0 0 2 Run an arbitrary script
...
C
、F
、およびP
列には、イベントが完了、失敗、保留中のシステムの数が表示されます。 完了、失敗、または保留中のイベントのみを表示するには、schedule_listcompleted、schedule_listfailed、またはschedule_listpendingコマンドを使用します。
保留中のイベントの詳細を表示するには、schedule_detailsコマンドを使用します:
spacecmd {SSM:0}> schedule_details 343
ID: 343
Action: Run an arbitrary script
User: swadmin
Date: 20150617T01:30:00
Completed: 0
Failed: 0
Pending: 2
Pending Systems
---------------
svr2.mydom.com
svr3.mydom.com
保留中のイベントを取り消すには、schedule_cancelコマンドを使用します:
spacecmd {SSM:0}> schedule_cancel 343
INFO: Canceled action 343
Canceled 1 action(s)
失敗したイベントを再実行するには、schedule_rescheduleコマンドを使用します:
spacecmd {SSM:0}> schedule_reschedule 382
Rescheduled 1 action(s)
10.4 構成チャネルの使用
- 10.4.1 カスタム情報キーの使用
- 10.4.2 Spacewalk Webインタフェースを使用してカスタム情報キーを定義
- 10.4.3 spacecmdコマンドを使用してカスタム情報キーを定義
- 10.4.4 Spacewalk Webインタフェースを使用して構成チャネルを操作
- 10.4.5 spacecmdコマンドを使用して構成チャネルを操作
- 10.4.6 Spacewalk Webインタフェースを使用したクライアント・システムの構成チャネルへのサブスクライブ
- 10.4.7 spacecmdコマンドを使用してクライアント・システムを構成チャネルにサブスクライブ
- 10.4.8 Spacewalk Webインタフェースを使用したクライアント・システムへの構成ファイルのデプロイ
- 10.4.9 spacecmdコマンドを使用して構成ファイルをクライアント・システムにデプロイ
クライアント・システムは、Spacewalkサーバーがファイルをデプロイできるようにする必要があります。 7.1項、「Spacewalk Webインタフェースを使用したキックスタート・プロファイルでのリモート構成の有効化」、7.3項、「リモート構成の手動による有効化」、および第3章、「Spacewalkのアクティベーション・キーの操作」を参照してください。
Spacewalkのソフトウェア・チャネルに複数のクライアント・システムにインストールするパッケージが含まれているのと同じように、構成チャネルにはクライアント・システムを構成するためのファイルが含まれています。 たとえば、ファイルにはサービス、アプリケーション、またはユーザーの構成情報が含まれている可能性があります。
10.4.1 カスタム情報キーの使用
カスタム情報キーを使用すると、クライアントから構成情報を抽出できます。
カスタム情報キーを使用するには、次のステップを実行します:
-
第10.4.2項、「Spacewalk Webインタフェースの使用によるカスタム情報キーの定義」および第10.4.3項、「spacecmdコマンドを使用したカスタム情報キーの定義」の説明に従って、Spacewalkでカスタム情報キーを定義します。
たとえば、
uptrack-uname
という名前のカスタム情報キーを定義して、Kspliceの有効カーネル・バージョンの値を格納することができます。 -
キーを使用する各クライアントに
rhn-custom-info
パッケージをインストールします。 -
rhn-custom-infoコマンドを使用して、キーの値をSpacewalkで使用できるようにします:
#
rhn-custom-info uptrack-uname `uptrack-uname -r`
このコマンドは、
uptrack-uname -r
によって返された値をuptrack-uname
キーの値として使用可能にします。 次に、rhn.system.custom_info(uptrack-uname)
マクロを使用して、構成ファイル内のuptrack-name
の値を抽出することができます。
10.4.2 Spacewalk Webインタフェースを使用したカスタム情報キーの定義
カスタム情報キーを定義してシステムに割り当てるには、次のステップを実行します:
-
「システム」に行き、「カスタム・システム情報」を選択して下さい。
-
「+新しいキーを作成」をクリックします。
-
「カスタム情報キーを作成」ページで、キー・ラベル(例:
asset_tag
)と説明を入力し、「キーを作成」をクリックします。 -
「システム」に移動し、キーに値を割り当てるシステムの名前をクリックします。
-
「カスタム情報」タブを選択します。
-
「カスタム・システム情報」ページで、「+新しい価値を創造」をクリックします。
-
「カスタム情報キーを編集」ページで、値を割り当てるキーを選択します。
ページが更新され、キーと「値」テキスト・ボックスに関する情報が表示されます。
-
「値」テキスト・ボックスにキー値を入力し、「更新キー」をクリックします。
「カスタム・システム情報」ページには、システムに関連付けられているキーと値のペアが表示されます。 値を変更するには、関連する「この値を編集」リンクを選択します。
また、システムのキックスタート・プロファイルの「カスタム情報」タブを使用して、システムのカスタム情報キーを定義することもできます。
システムには必要な数のキーと値のペアを定義できます。
10.4.3 spacecmdコマンドを使用してカスタム情報キーを定義
カスタム情報キーを作成するには、次のようにcustominfo_createkeyコマンドを使用します:
spacecmd {SSM:0}> custominfo_createkey admin_user "Email of admin contact"
利用可能なカスタム情報キーを一覧表示するには、custominfo_listkeysコマンドを使用します:
spacecmd {SSM:0}> custominfo_listkeys
asset_tag
admin_user
カスタム情報キーをシステムまたはシステム・グループに割り当てるには、system_addcustomvalue:
spacecmd {SSM:0}>system_addcustomvalue asset_tag "fc01568a" svr3.mydom.com
spacecmd {SSM:0}>system_addcustomvalue admin_user "an.admin@mydom.com" group:group3
システムまたはシステム・グループのカスタム情報キーを表示するには、system_listcustomvaluesコマンドを使用します:
spacecmd {SSM:0}>system_listcustomvalues svr3.mydom.com
asset_tag = fc01568a admin_user = an.admin@mydom.com spacecmd {SSM:0}>system_listcustomvalues group:group3
System: svr3.mydom.com asset_tag = fc01568a admin_user = an.admin@mydom.com ############################## System: svr4.mydom.com asset_tag = aa10889f admin_user = an.admin@mydom.com
10.4.4 Spacewalk Webインタフェースを使用して構成チャネルを操作
構成チャネルを作成するには:
-
「構成」に行き、「構成チャネル」を選択して下さい
-
「中央管理された構成チャネル」ページで、「+新しい構成チャネルを作成」をクリックします。
-
チャネルの名前、ラベル、および説明を入力します。 ラベルは、ターゲット・オペレーティング・システム、アーキテクチャ(必要に応じて)、およびチャネルの目的(たとえば、
ol6_generic_configuration
)の短い表現でなければなりません。 -
「構成チャネルの作成」をクリックします。
-
構成チャネルにファイルを追加するには、「新しいチャネル」ページで「追加ファイル」タブを選択します。
-
テキスト・ファイル、ディレクトリ、シンボリック・リンクを作成するには:
-
「ファイルの作成」タブを選択します。
-
「新しい構成ファイルを作成」ページでは、テキスト・ファイル、ディレクトリ、またはシンボリック・リンクを作成できます。
たとえば、クライアントに関する構成情報を含むメッセージ・メッセージ・ファイルを設定するには、次の情報を入力します:
- ファイル・タイプ
-
「テキスト・ファイル」を選択します。
- ファイル名/パス
-
/etc/motd
と入力します。 - 所有権
-
ユーザー名とグループの両方に
root
と入力します。 これらはデフォルトのエントリです。 - 「ファイル許可モード」
-
644と入力します。 (これはデフォルトのモードです。)
- File Contents
-
ドロップダウン・リストからファイル・タイプを「シェル」として選択し、テキスト・フィールドにファイルの内容を入力します。
たとえば、次のファイルでは、Spacewalkがファイルがデプロイされているシステムの適切な値で置き換えられるマクロが使用されます:
System Information ================== Client system: {|rhn.system.hostname|} Spacewalk SID: {|rhn.system.sid|} Asset tag: {|rhn.system.custom_info(asset_tag) = 'Asset tag missing'|} Profile: {|rhn.system.profile_name|} Description: {|rhn.system.description|} IP address: {|rhn.system.ip_address(eth0)|} MAC address: {|rhn.system.net_interface.hardware_address(eth0)|}
カスタム・マクロ
rhn.system.custom_info
は、システムの「カスタム情報」タブに割り当てられているasset_tag
という名前のカスタム・システム情報キーの値で置き換えられます。 それ以外の場合は、値Asset tag missing
を挿入します。10.4.2項、「Spacewalk Webインタフェースを使用したカスタム情報キーの定義」を参照してください。
付録C、「構成ファイルのマクロ」を参照してください。
-
ファイルの詳細を入力したら、「構成ファイルの作成」をクリックします。
-
-
ファイルをインポートするには:
-
「ファイルのインポート」タブを選択します。
「別のチャネル」からの構成ファイルのインポート・ページで、他の構成チャネルから構成ファイルをインポートできます。
-
インポートする構成ファイルのチェックボックスをオンにします。
-
「構成ファイルのインポート」をクリックします。
-
-
ファイルをアップロードするには:
-
「ファイルをアップロード」タブを選択します。
-
「新しい構成ファイルをアップロード」ページで、Browse...をクリックし、アップロードするファイルのパスを選択します。
-
ファイルのタイプを選択: テキスト・ファイルまたはバイナリ・ファイル。
-
必要に応じて、所有権やアクセス許可など、ファイルのその他の詳細を入力します。
-
「アップロード構成ファイル」をクリックします。
-
-
10.4.5 spacecmdコマンドを使用して構成チャネルを操作
構成チャネルを作成するには、次の例に示すように、configchannel_createコマンドを使用します:
spacecmd {SSM:0}>configchannel_create
Name:Oracle Linux 6 Server Configuration
Label:ol6-server-config
Description:Generic configuration channel for Oracle Linux 6 servers
コンフィギュレーション・ファイルをチャネルに追加するには、configchannel_addfileコマンドを使用します:
spacecmd {SSM:0}>configchannel_addfile ol6-server-config
Path:/etc/motd
Symlink [y/N]:N
Directory [y/N]:N
Owner [root]:[Enter]
Group [root]:[Enter]
Mode [0644]:[Enter]
SELinux Context [None]:[Enter]
Revision [next]:[Enter]
Read an existing file [y/N]:y
File:/var/config_file_templates/ol6-server/etc/motd
Path: /etc/motd Directory: False Owner: root Group: root Mode: 0644 SELinux Context: Contents -------- System Information ================== Client system: {|rhn.system.hostname|} Spacewalk SID: {|rhn.system.sid|} Asset tag: {|rhn.system.custom_info(asset_tag) = 'Asset tag missing'|} Profile: {|rhn.system.profile_name|} Description: {|rhn.system.description|} IP address: {|rhn.system.ip_address(eth0)|} MAC address: {|rhn.system.net_interface.hardware_address(eth0)|} Is this ok [y/N]:y
カスタム・マクロrhn.system.custom_info
は、システムの「カスタム情報」タブに割り当てられているasset_tag
という名前のカスタム・システム情報キーの値で置き換えられます。 それ以外の場合は、値Asset tag missing
を挿入します。
第10.4.3項、「spacecmdコマンドを使用したカスタム情報キーの定義」を参照してください。
付録C、「構成ファイルのマクロ」を参照してください。
構成チャネルの詳細を表示するには、configchannel_detailsコマンドを使用します:
spacecmd {SSM:0}> configchannel_details ol6-server-config Label: ol6-server-config Name: Oracle Linux 6 Server Configuration Description: Configuration channel for generic Oracle Linux 6 servers Files ----- /etc/motd
10.4.6 Spacewalk Webインタフェースを使用してクライアント・システムを構成チャネルにサブスクライブ
クライアント・システムを構成チャネルにサブスクライブするには:
-
「システム」に移動し、システム名をクリックします。
-
「構成」タブ、「構成チャネルの管理」タブ、最後に「チャネルをサブスクライブ」タブを選択します。
-
ステップ1: サブスクリプションのチャネル・ページを選択し、システムをサブスクライブするチャネルのチェック・ボックスを選択し、「持続」をクリックします。
-
ステップ2: サブスクリプション・ページのランクのチャネルを選択すると、必要に応じて優先順位に従ってコンフィギュレーション・チャネルの順序を変更できます。 複数のエントリが同じファイルまたはディレクトリを変更できる場合は、上位のエントリは下位のエントリを上書きします。
-
変更を保存するには、「チャネル・ランキングを更新」をクリックします。
10.4.8項、「Spacewalk Webインタフェースを使用したクライアント・システムへの構成ファイルのデプロイ」を参照してください。
10.4.7 spacecmdコマンドを使用してクライアント・システムを構成チャネルにサブスクライブ
使用可能な構成チャネルをリストするには、次のようにconfigchannel_listコマンドを使用します:
spacecmd {SSM:0}> configchannel_list
ol6-dns-server-config
ol6-http-server-config
ol6-nfs-server-config
ol6-server-config
システムまたはシステム・グループを構成チャネルにサブスクライブするには、system_addconfigchannelsコマンドを使用します:
spacecmd {SSM:0}>system_addconfigchannels svr3.mydom.com ol6-nfs-server-config -t
spacecmd {SSM:0}>system_addconfigchannels group:group3 ol6-server-config -b
システムまたはシステム・グループがサブスクライブされている構成チャネルを一覧表示するには、system_listconfigchannelsコマンドを使用します:
spacecmd {SSM:0}> system_listconfigchannels group:group3
System: svr3.mydom.com
ol6-nfs-server-config
ol6-server-config
##############################
System: svr4.mydom.com
ol6-server-config
システムの構成チャネルを編集するには、次のようにsystem_setconfigchannelorderコマンドを使用します:
spacecmd {SSM:0}>system_setconfigchannelorder svr1.mydom.com
Current Selections ------------------ 1. ol6-server-config a[dd], r[emove], c[lear], d[one]:a
Available Configuration Channels -------------------------------- ol6-dns-server-config ol6-http-server-config ol6-nfs-server-config ol6-server-config Channel:ol6-dns-server-config
New Rank:1
Current Selections ------------------ 1. ol6-dns-server-config 2. ol6-server-config a[dd], r[emove], c[lear], d[one]:d
システムを構成チャネルから退会させるには、system_removeconfigchannelsコマンドを使用します:
spacecmd {SSM:0}> system_removeconfigchannels svr3.mydom.com ol6-server-config
10.4.8 Spacewalk Webインタフェースを使用したクライアント・システムへの構成ファイルのデプロイ
デプロイする構成ファイルの適切な構成チャネルにシステムを事前にサブスクライブしておく必要があります。 10.4.6項、「Spacewalk Webインタフェースを使用したクライアント・システムの構成チャネルへのサブスクリプション」を参照してください。
/var/log/rhncfg-actions
ログファイルがクライアント上に存在しない場合、クライアント・システムへの最初のデプロイは失敗する可能性があります。 デプロイメントが失敗すると、ログファイルが自動的に作成され、デプロイメント・イベントを再スケジュールできます。 または、クライアント・システム上でファイルをデプロイする前に、次のコマンドを実行します:
# touch /var/log/rhncfg-actions
構成ファイルを使用して、以前にSpacewalkサーバーによってプロビジョニングされていないSpacewalkクライアントにSSLおよびGPG証明書をデプロイすることをお薦めします。
構成ファイルをクライアント・システムにデプロイするには:
-
「システム」に移動し、システム名をクリックします。
-
「構成」タブを選択し、次に「ファイルをデプロイ」タブを選択します。
-
「ファイルをデプロイ」ページで、デプロイするファイルのチェックボックスをオンにして、「ファイルをデプロイ」をクリックします。
-
「ファイルのデプロイを確認」ページで、必要に応じてスケジュールを変更し、「スケジュールのデプロイ」をクリックします。
-
「イベント」を選択し、「保留中」または「履歴」タブを選択して、スケジュールされたアクションまたは完了したアクションを表示します。 要約名をクリックすると、デプロイメント・イベントの詳細が表示されます。
10.4.9 spacecmdコマンドを使用したクライアント・システムへの構成ファイルのデプロイ
デプロイする構成ファイルの適切な構成チャネルにシステムを事前にサブスクライブしておく必要があります。 第10.4.7項、「spacecmdコマンドを使用したクライアント・システムの構成チャネルへのサブスクライブ」を参照してください。
/var/log/rhncfg-actions
ログファイルがクライアント上に存在しない場合、クライアント・システムへの最初のデプロイは失敗する可能性があります。 デプロイメントが失敗すると、ログファイルが自動的に作成され、デプロイメント・イベントを再スケジュールできます。 または、クライアント・システム上でファイルをデプロイする前に、次のコマンドを実行します:
# touch /var/log/rhncfg-actions
すべての構成ファイルをシステムまたはシステム・グループにデプロイするには、system_deployconfigfilesコマンドを使用します:
spacecmd {SSM:0}>system_deployconfigfiles group:group3
Systems ------- svr3.mydom.com svr4.mydom.com Deploy ALL configuration files to these systems [y/N]:y
INFO: Scheduled deployment for 2 system(s)
保留中のデプロイメント・イベントの詳細を表示するには、schedule_detailsコマンドを使用します。
10.3項、「スケジュールされたイベントの処理」を参照してください。