Red Hat Training

A Red Hat training course is available for Red Hat Satellite

4.3. Red Hat Network Configuration Manager の使用

Red Hat Network Configuration Client とは異なり、Red Hat Network Configuration Manager (rhncfg-manager) は、クライアントシステムにある設定ファイルではなく Red Hat Network にある設定ファイルとチャンネルの中央レポジトリの保守を目的として設計されています。このツールでは Red Hat Network Web サイト内の設定管理機能の代替となるコマンドラインのほか、関連するメンテナンスの一部または全体を行うためにスクリプトを作成する機能も備えています。
これは、設定管理者による使用が意図されているため、適切な権限セットを持つ Red Hat Network ユーザー名とパスワードを必要とします。ユーザー名は /etc/sysconfig/rhn/rhncfg-manager.conf または ~/.rhncfgrc の [rhncfg-manager] セクションに指定することができます。
Red Hat Network Configuration Manager が root として実行されると、Red Hat Update Agent から必要な設定値を取得しようとします。root 以外のユーザーとして実行される場合は、~/.rhncfgrc ファイル内で設定の変更を行う必要があるかもしれません。セッションファイルは ~/.rhncfg-manager-session にキャッシュされ、すべてのコマンドごとにログインが行われないようにします。
Red Hat Network Configuration Manager のデフォルトのタイムアウトは 30 分です。タイムアウトを変更するには、server.session_lifetime オプションと新しい値を、このマネージャーを実行しているサーバー上の /etc/rhn/rhn.conf ファイルに追加します。次のようになります。
server.session_lifetime = 120
Red Hat Network Configuration Manager には、「add」、「create-channel」、「diff」、「diff-revisions」、「download-channel」、「get」、「list」、「list-channels」、「remove」、「remove-channel」、「revisions」、「update」、「upload-channel」などの基本モードが備わっています。
各モードにはそれぞれ独自のオプションセットがあります。 次のコマンドを発行するとオプションを表示することができます。
rhncfg-manager mode --help 
mode の部分にモード名を入れて調べます。
rhncfg-manager diff-revisions --help
「add」モードのオプション一覧は、「設定チャンネルへのファイルの追加」 を参照してください。

4.3.1. 設定チャンネルの作成

組織用の設定チャンネルを作成するには、次のコマンドを発行します。
rhncfg-manager create-channel channel-label
Red Hat Satellite のユーザー名とパスワードの入力が求められたら入力します。次のような出力になります。
Red Hat Network username: rhn-user
Password:
Creating config channel channel-label Config channel channel-label created
設定チャンネルを作成したら、上記の残りのモードを使ってそのチャンネルの設定や管理を行います。

4.3.2. 設定チャンネルへのファイルの追加

設定チャンネルにファイルを追加するには、アップロードするローカルファイルとチャンネルのラベルを指定します。
rhncfg-manager add --channel=channel-label /path/to/file
必要なチャンネルラベルおよびファイルへのパスのほか、追加時にファイルに変更を加えるオプションを使用することもできます。例えば、以下のようにコマンドに --dest-file オプションを組み込んでパスとファイル名を変更することができます。
rhncfg-manager add --channel=channel-label --dest-file=/new/path/to/file.txt/path/to/file
出力は以下のようになります。
Pushing to channel example-channel
Local file >/path/to/file -> remote file /new/path/to/file.txt
次の表は rhncfg-manager add に使用できるオプションの一覧です。

表4.4 rhncfg-manager add のオプション

オプション説明
-c CHANNEL --channel=CHANNELこの設定チャンネルにファイルをアップロードします
-d DEST_FILE --dest-file=DEST_FILEこのパスにファイルをアップロードします
--delim-start=DELIM_START変数挿入用の区切りの開始点です
--delim-end=DELIM_END変数挿入用の区切りの終了点です
-i, --ignore-missing足りないローカルファイルは無視します
--selinux-context=SELINUX_CONTEXTSELinux コンテキストを上書きします。
-h, --helpヘルプメッセージを表示して終了します

注記

デフォルトでは設定ファイルの最大サイズは 128KB です。この値を変更する必要がある場合は、以下のファイルで指定の行を見つけるか、その行を作成します。
/usr/share/rhn/config-defaults/rhn_web.conf の場合(バイト単位):
maximum_config_file_size = 131072
/usr/share/rhn/config-defaults/rhn_server.conf の場合(バイト単位):
maximum_config_file_size = 131072
/usr/share/rhn/config-defaults/rhn_java.conf (キロバイト単位):
java.config_file_edit_size = 128

4.3.3. 最新の設定ファイルの違いを比較

ディスク上の設定ファイルとチャンネル内の最新リビジョン間の違いを表示するには、以下のコマンドを実行します。
rhncfg-manager diff --channel=channel-label --dest-file=/path/to/file.txt \ /local/path/to/file
次のような出力が表示されるはずです。
--- /tmp/dest_path/example-config.txt config_channel: example-channel revision: 1
+++ /home/test/blah/hello_world.txt 2003-12-14 19:08:59.000000000 -0500
@@ -1 +1 @@
-foo
+hello, world
次の表は rhncfg-manager diff に使用できるオプションの一覧です。

表4.5 rhncfg-manager diff のオプション

オプション説明
-c CHANNEL, --channel=CHANNELこの設定チャンネルからファイルを取得します
-r REVISION, --revision=REVISIONこのリビジョンを使用します
-d DEST_FILE, --dest-file=DEST_FILEこのパスにファイルをアップロードします
-t TOPDIR, --topdir=TOPDIR全てのファイルをこの文字列に対して相対的にします
-h, --helpヘルプメッセージを表示して終了します

4.3.4. バージョン間の違いの比較

チャンネルおよびリビジョン全体で 1 つのファイルの異なるバージョンを比較する場合は、-r フラグを使用して比較するファイルのリビジョンを指定し、-n フラグでチェックする 2 つのチャンネルを特定します。これに関する説明は、「ファイルリビジョン数の判断」 を参照してください。ここでは 1 つのファイルの別のバージョンを比較しているため、1 つのファイル名のみを指定します。例を以下に示します。
rhncfg-manager diff-revisions -n=channel-label1 -r=1 -n=channel-label2 -r=1 /path/to/file.txt
出力は以下のようになります。
--- /tmp/dest_path/example-config.txt 2004-01-13 14:36:41 \ config channel: example-channel2 revision: 1
--- /tmp/dest_path/example-config.txt 2004-01-13 14:42:42 \ config channel: example-channel3 revision: 1
@@ -1 +1,20 @@
-foo
+blah
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.0.6 (GNU/Linux)
+Comment: For info see http://www.gnupg.org
+
+iD8DBQA9ZY6vse4XmfJPGwgRAsHcAJ9ud9dabUcdscdcqB8AZP7e0Fua0NmKsdhQCeOWHX +VsDTfen2NWdwwPaTM+S+Cow=
+=Ltp2
+-----END PGP SIGNATURE-----
次の表は rhncfg-manager diff-revisions に使用できるオプションの一覧です。

表4.6 rhncfg-manager diff-revisions のオプション

オプション説明
-c CHANNEL, --channel=CHANNELこの設定チャンネルを使用します
-r REVISION, --revision=REVISIONこのリビジョンを使用します
-h, --helpヘルプメッセージを表示して終了します

4.3.5. 1 つのチャンネル内のすべてのファイルをダウンロード

あるチャンネル内の全ファイルをディスクにダウンロードする場合は、ディレクトリーを 1 つ作成してから次のコマンドを発行します。
rhncfg-manager download-channel channel-label --topdir . 
出力は以下のようになります。
Copying /tmp/dest_path/example-config.txt -> \ blah2/tmp/dest_path/example-config.txt
次の表は rhncfg-manager download-channel に使用できるオプションの一覧です。

表4.7 rhncfg-manager download-channel のオプション

オプション説明
-t TOPDIR, --topdir=TOPDIR全てのファイルパスはこのディレクトリーに対して相対的になります。このオプションは設定しなければなりません。
-h, --helpヘルプメッセージを表示して終了します

4.3.6. ファイル内容の取得

特定ファイルの内容を標準出力に出力するには、次のコマンドを実行します。
rhncfg-manager get --channel=channel-label \ /tmp/dest_path/example-config.txt 
ファイルの内容は出力として表示されます。

4.3.7. チャンネル内の全ファイルの表示

1 つのチャンネル内の全ファイルを表示させるには、次のコマンドを発行します。
rhncfg-manager list channel-label
次のような出力が表示されるはずです。
Files in config channel `example-channel3': /tmp/dest_path/example-config.txt
次の表は rhncfg-manager get に使用できるオプションの一覧です。

表4.8 rhncfg-manager get のオプション

オプション説明
-c CHANNEL, --channel=CHANNELこの設定チャンネルからファイルを取得します
-t TOPDIR, --topdir=TOPDIR全てのファイルをこの文字列に対して相対的にします
-r REVISION, --revision=REVISIONこのファイルリビジョンを取得します
-h, --helpヘルプメッセージを表示して終了します

4.3.8. すべての設定チャンネルの一覧表示

組織内の全ての設定チャンネルを表示させるには、次のコマンドを発行します。
rhncfg-manager list-channels 
出力は以下のようになります。
Available config channels: example-channel example-channel2 example-channel3 config-channel-14 config-channel-17
local_override チャンネルや server_import チャンネルは表示しないので注意してください。

4.3.9. チャンネルからのファイルの削除

チャンネルからファイルを削除するには、次のコマンドを発行します。
rhncfg-manager remove --channel=channel-label /tmp/dest_path/example-config.txt
Red Hat Network のユーザー名とパスワードの入力が求められたら入力します。次のような出力が表示されます。
Red Hat Network username: rhn-user Password: Removing from config channel example-channel3 /tmp/dest_path/example-config.txt removed
次の表は rhncfg-manager remove に使用できるオプションの一覧です。

表4.9 rhncfg-manager remove のオプション

オプション説明
-c CHANNEL, --channel=CHANNELこの設定チャンネルからファイルを削除します
-t TOPDIR, --topdir=TOPDIR全てのファイルをこの文字列に対して相対的にします
-h, --helpヘルプメッセージを表示して終了します

4.3.10. 設定チャンネルの削除

組織の設定チャンネルを削除するには、以下のコマンドを実行します。
rhncfg-manager remove-channel channel-label 
出力は以下のようになります。
Removing config channel example-channel Config channel example-channel removed

4.3.11. ファイルリビジョン数の判断

チャンネル内のファイルやパスのリビジョンの数を確認するには (リビジョンは 1 から開始して N までとし、N は 0 より大きい整数になる)、次のコマンドを発行します。
rhncfg-manager revisions channel-label /tmp/dest_path/example-config.txt 
出力は以下のようになります。
Analyzing files in config channel example-channel \ /tmp/dest_path/example-config.txt: 1

4.3.12. チャンネル内のファイルの更新

チャンネル内のファイルの新たなリビジョンを作成 (またはそのパスにリビジョンが存在していない場合はそのチャンネルに最初のリビジョンを追加) するには、次のコマンドを発行します。
rhncfg-manager update \ --channel=channel-label --dest-file=/path/to/file.txt /local/path/to/file
出力は以下のようになります。
Pushing to channel example-channel: Local file example-channel/tmp/dest_path/example-config.txt -> \ remote file /tmp/dest_path/example-config.txt
次の表は rhncfg-manager update に使用できるオプションの一覧です。

表4.10 rhncfg-manager update のオプション

オプション説明
-c CHANNEL, --channel=CHANNELこの設定チャンネルにファイルをアップロードします
-d DEST_FILE, --dest-file=DEST_FILEこのパスにファイルをアップロードします
-t TOPDIR, --topdir=TOPDIR全てのファイルをこの文字列に対して相対的にします
--delim-start=DELIM_START変数挿入用の区切りの開始点です
--delim-end=DELIM_END変数挿入用の区切りの終了点です
-h, --helpヘルプメッセージを表示して終了します

4.3.13. 複数のファイルを一度にまとめてアップロード

ローカルディスクから設定チャンネルへ一度にまとめて複数ファイルをアップロードする場合は、次のコマンドを発行します。
rhncfg-manager upload-channel --topdir=topdir channel-label
出力は以下のようになります。
Using config channel example-channel4 Uploading /tmp/ola_world.txt from blah4/tmp/ola_world.txt
次の表は rhncfg-manager upload-channel に使用できるオプションの一覧です。

表4.11 rhncfg-manager upload-channel のオプション

オプション説明
-t TOPDIR, --topdir=TOPDIR全てのファイルパスはこのディレクトリーに対して相対的になります
-c CHANNEL, --channel=CHANNEL設定情報をアップロードする複数のチャンネルをリストします。 チャンネルとチャンネルの間はコンマ「,」で区切ります。 例: --channel=foo,bar,baz
-h, --helpヘルプメッセージを表示して終了します