このドキュメントで説明されているソフトウェアはサポートされなくなったか、または拡張サポートされています。
Oracleでは、現在サポートされているリリースにアップグレードすることをお薦めします。

機械翻訳について

第2章 ソフトウェア・チャネルとリポジトリの作成

この章では、Spacewalkでソフトウェア・チャネルを作成する方法について説明します。クライアント・システムはパッケージおよびエラータをサブスクライブして取得できます。 各チャネルは少なくとも1つのリポジトリに関連付けられており、パッケージとエラータのソースを定義します。

この章の例では、Unbreakable Linux Network (ULN)およびOracle Linux yumサーバーを使用します。 ただし、Spacewalkを使用して他の内部または外部ソースからソフトウェア・パッケージを取得することもできます。

2.1 ソフトウェア・チャネルの構成について

ULNには100を超える一意のチャネルが用意されており、Oracle Linux 4 update 6以降のリリースでは、i386、x86_64、IA64および64ビットのArmアーキテクチャがサポートされて。 ULNにアクセスするには、https://linux.oracle.com/に移動します。

ULNは、olN_arch_latestリポジトリを提供します。これは、パッチ・チャネルでも提供されるエラータを含め、配布されたすべての最新バージョンです。 パッケージに脆弱性が見つかっていなければ、パッケージ・バージョンは、元のディストリビューションに含まれるものと同じになります。 その他のパッケージでは、バージョンは、最も高い更新レベルのパッチ・チャネルで提供されたものと同じです。 たとえば、Oracle Linux 6更新3のol6_arch_latestチャネルには、ol6_u3_arch_baseおよびol6_u3_arch_patchチャネルの組合せが含まれています。これには、Oracle Linuxリリース用のパッケージがすべて含まれています。

Oracle Linux yumサーバーは、olN_latestリポジトリを提供します。これには、更新ごとにolN_uN_baseリポジトリに加えて、Oracle Linuxリリース全体のすべてのパッケージが含まれます。 ULNとは異なり、Oracle Linux yumサーバーは、更新用のpatchチャネルを提供しません。

DTraceユーザー空間、KspliceおよびOFED用のチャネルなどの一部のチャネルはULNでは使用できますが、Oracle Linux yumサーバーでは使用できません。

ULNは、親チャネルに追加された古いバージョンのパッケージも提供します。 _archive接尾辞は、通常、アーカイブ・パッケージをホストするチャネルに追加されます。 たとえば、_latestチャネルには、_latestチャネルで更新された古いバージョンのパッケージをホストするのと同等の_latest_archiveチャネルがあります。

同じパッケージの新しいバージョンが親チャネルに追加されると、パッケージはアーカイブ・チャネルに移動されます。 アーカイブ・チャネルを追加すると、親チャネルのメタデータを管理可能な状態に維持し、チャネルの全体的なサイズを最小限に保つことができます。 以前のバージョンのパッケージが必要な場合は、同等の_archiveチャネルをサブスクライブして取得できます。 インストールまたはダウングレードを実行する場合、インストールするパッケージのバージョンを指定する必要があります。

ノート

_archiveチャネルからパッケージをインストールすると、セキュリティ関連の問題でパッチが適用された後、システムでソフトウェアが実行されている可能性があります。 これにより、悪意のある目的で利用される可能性のある脆弱性までシステムを開くことができます。

また、ULNは、Oracle Linuxリリースの更新ごとにbaseおよびpatchチャネルを提供します。 Oracle Linuxのリリースによっては、DTraceユーザー空間、Ksplice、およびOpenFabric Enterprise Edition (OFED)機能などの追加機能用の最新のパッケージが他のチャネルで提供される可能性があります。

ベータ・バージョンのパッケージでは_betaチャネルなど、他のチャネルも使用可能な場合があります。

Oracle Linuxの新しいメジャー・バージョンまたはマイナー更新が利用可能になるたびに、Oracleはサポートされているアーキテクチャごとに新しいベース・チャネルおよびパッチ・チャネルを作成して、新しいパッケージを配布します。 以前のバージョンまたは更新の既存のベース・チャネルおよびパッチ・チャネルは、そのまま使用可能で、新しいパッケージは含まれません。 _latestチャネルは、すべてのパッケージの最新のバージョンを配布し、更新レベルに関係なく開発ツリーの最上位を追跡します。

ULNで使用可能なメイン・チャネルの詳細は、Oracle® Linux: Unbreakable Linuxネットワーク・ユーザー・ガイドfor Oracle Linux 6およびOracle Linux 7におけるULNの登録に関する章を参照してください。

特定のワークフローに基づいたチャネル構成を設計することをお薦めします。 たとえば、Spacewalkチャネル・クローニング機能を使用して、テストから本番までのシステム開発を促進する場合は、baseチャネルとchild patchチャネルを他の子チャネルとともに構成できます。

子チャネルを複製する場合、リポジトリを複製する必要はありません。 これらのチャネルは、クローンされたチャネルと同じリポジトリを使用できます。 たとえば、クローニングされた各ベース・チャネルには一意のaddons子チャネルがあるが、それぞれの子チャネルでは同じリポジトリが使用される場合があります。 複数のチャネルで参照されていても、パッケージは複製されません。

アーカイブ・チャネル・コンテンツをローカル・クライアントで使用できるようにするには、まず、同期する各ULNアーカイブ・チャネルのリポジトリを作成し、それらのリポジトリをSpacewalkで作成したソフトウェア・チャネルにマップする必要があります。

必要に応じて、これらのチャネルにシステムをサブスクライブせずに、latestチャネルを個別にメンテナンスできます。 必要が生じた場合は、latestチャネルからエラータ・パッケージをpatchチャネルにコピーして、最新の修正プログラムを利用可能にすることができます。

ノート

rhnpushなどのメソッドでパッケージを取得するカスタム・チャネルを作成する場合や、Webインタフェースを使用してアップロードする場合は、ソフトウェア・チャネルをリポジトリに関連付ける必要はありません。 これらのメソッドにより、ローカルに開発され、アップストリーム・リポジトリを持たないパッケージ化されたソフトウェアを処理できます。

2.2  ULNのソフトウェア・チャネルの構成

Spacewalkには、spacewalk-repo-syncツール用のULNプラグインが含まれています。 プラグインを使用すると、SpacewalkサーバーをULNに登録しなくても、ソフトウェア・チャネルを同期させることができます。

次のようにULNプラグインを構成します:

  1. /etc/rhn/spacewalk-repo-sync/uln.confファイルのモードを600(読み書き可能)に変更します。

    # chmod 600 /etc/rhn/spacewalk-repo-sync/uln.conf
  2. /etc/rhn/spacewalk-repo-sync/uln.confファイルを編集して、ULNのSSOログイン・ユーザー名とパスワードを追加します:

    [main] 
    username=ULN_SSO_username 
    password=ULN_SSO_password
  3. /etc/rhn/spacewalk-repo-sync/uln.confファイルのモードを400(読み取り専用)に変更します。

    # chmod 400 /etc/rhn/spacewalk-repo-sync/uln.conf
重要

ULN資格証明を保護するには、/etc/rhn/spacewalk-repo-sync/uln.confファイルがrootによって読み取り専用(ファイル・モード0400)であることを確認します。

# ls -l /etc/rhn/spacewalk-repo-sync/uln.conf
-r--------. 1 root root 56 Feb  2 14:44 /etc/rhn/spacewalk-repo-sync/uln.conf

ULNプラグインを構成したら、Spacewalk Webインタフェース、spacecmdコマンド、またはspacewalk-common-channelsコマンドを使用して、Spacewalkソフトウェア・チャネル、リポジトリ、アクティベーション・キーを次のように作成できます:

ソフトウェア・チャネルとリポジトリを設定したら、ソフトウェア・チャネルをULNと同期させてパッケージをダウンロードします。 2.6項、「ソフトウェア・チャネルの同期」を参照してください。

2.3 Oracle Linux Yumサーバーからパッケージを取得するためのソフトウェア・チャネルの構成

spacewalk-utilsパッケージにあるspacewalk-common-channelsコマンドを使用して、Oracle Linux yumサーバーを使用するソフトウェア・チャネルを構成することができます。 ソフトウェア・チャネルの構成に加えて、このコマンドを使用して、Oracle Linux 5、Oracle Linux 6、およびOracle Linux 7のリポジトリ、GPGキー、アクティベーション・キーを構成することができます。

使用可能なチャネルを一覧表示するには、--listオプションを使用します:

# spacewalk-common-channels --list | grep "^ oracle"
 oraclelinux5:        i386, x86_64
 oraclelinux5-addons: i386, x86_64
 oraclelinux5-oracle-addons: i386, x86_64
 oraclelinux5-spacewalk22-client: i386, x86_64
 oraclelinux5-spacewalk24-client: i386, x86_64
 oraclelinux5-spacewalk26-client: i386, x86_64
 oraclelinux5-uek:    i386, x86_64
 oraclelinux5-unsupported: i386, x86_64
 oraclelinux6:        i386, x86_64
 oraclelinux6-addons: i386, x86_64
 oraclelinux6-mysql55: i386, x86_64
 oraclelinux6-mysql56: i386, x86_64
 oraclelinux6-mysql57: i386, x86_64
 oraclelinux6-openstack30: x86_64
 oraclelinux6-playground: x86_64
 oraclelinux6-scl:    x86_64
 oraclelinux6-spacewalk22-client: i386, x86_64
 oraclelinux6-spacewalk22-server: x86_64
 oraclelinux6-spacewalk24-client: i386, x86_64
 oraclelinux6-spacewalk24-server: x86_64
 oraclelinux6-spacewalk26-client: i386, x86_64
 oraclelinux6-spacewalk26-server: x86_64
 oraclelinux6-uek-r2: i386, x86_64
 oraclelinux6-uek-r3: x86_64
 oraclelinux6-uek-r4: x86_64
 oraclelinux7:        x86_64
 oraclelinux7-addons: x86_64
 oraclelinux7-ceph:   x86_64
 oraclelinux7-mysql55: x86_64
 oraclelinux7-mysql56: x86_64
 oraclelinux7-mysql57: x86_64
 oraclelinux7-openstack20: x86_64
 oraclelinux7-openstack21: x86_64
 oraclelinux7-openstack30: x86_64
 oraclelinux7-openstack30-extras: x86_64
 oraclelinux7-optional: x86_64
 oraclelinux7-scl:    x86_64
 oraclelinux7-spacewalk22-client: x86_64
 oraclelinux7-spacewalk22-server: x86_64
 oraclelinux7-spacewalk24-client: x86_64
 oraclelinux7-spacewalk24-server: x86_64
 oraclelinux7-spacewalk26-client: x86_64
 oraclelinux7-spacewalk26-server: x86_64
 oraclelinux7-uek-r3: x86_64
 oraclelinux7-uek-r4: x86_64
ノート

Oracle Linux yumサーバーは、ULNとは異なり、Oracle Linuxリリースの各更新に対してpatchチャネルを提供しません。 代わりに、spacewalk-common-channelsコマンドは、ベース(親)ソフトウェア・チャネルを、リリース全体のすべてのパッケージを含むol N _latestリポジトリを使用するように構成します。

DTraceユーザー・スペース、Ksplice、OFEDなどのULNチャネルは、Oracle Linux yumサーバーでは使用できません。

たとえば、次のようにOracle Linux 7 (x86_64)のソフトウェア・チャネルを作成します:

# spacewalk-common-channels -v -u swadm -p swadm_passwd -a x86_64 -k unlimited 'oraclelinux7*'
Connecting to http://localhost/rpc/api
Base channel 'Oracle Linux 7 (x86_64)' - creating...
* Activation key 'oraclelinux7-x86_64' - creating...
* Child channel 'Oracle Linux 7 Addons (x86_64)' - creating...
** Activation key '1-oraclelinux7-x86_64' - adding child channel...
* Child channel 'Oracle Linux 7 MySQL 5.5 (x86_64)' - creating...
** Activation key '1-oraclelinux7-x86_64' - adding child channel...
* Child channel 'Oracle Linux 7 MySQL 5.6 (x86_64)' - creating...
** Activation key '1-oraclelinux7-x86_64' - adding child channel...
* Child channel 'Oracle Linux 7 MySQL 5.7 (x86_64)' - creating...
** Activation key '1-oraclelinux7-x86_64' - adding child channel...
...

ここで、swadmswadm_passwdは、Spacewalk管理者のユーザー名とパスワードです。 -k unlimitedオプションは、コマンドを使用できるサーバーの数に制限のないアクティベーション・キーを作成するように指定します。

ノート

このオプションを省略すると、アクティベーション・キーは作成されません。

Spacewalk Webインタフェースまたはspacecmdコマンドを使用して、使用可能なチャネル、リポジトリ、アクティベーション・キーを表示、変更、または削除できます。

詳細と手順については、以下を参照してください:

ソフトウェア・チャネルとリポジトリを設定したら、ソフトウェア・チャネルをOracle Linux yumサーバーと同期させてパッケージをダウンロードします。 2.6項、「ソフトウェア・チャネルの同期」を参照してください。

2.3.1 Oracle Linux 7ソフトウェア・チャネル

次の表に、spacewalk-common-channelsコマンドを使用して設定できるOracle Linux 7 (x86_64)ソフトウェア・チャネルの一覧を示します。

ソフトウェア・チャネル

説明

oraclelinux7 Oracle Linux 7にリリースされた最新パッケージ
oraclelinux7-addons Oracle Linux 7のアドオン・パッケージ
oraclelinux7-ceph Oracle Linux 7のCeph 2.0パッケージ
oraclelinux7-mysql55 Oracle Linux 7のMySQL 5.5パッケージ
oraclelinux7-mysql56 Oracle Linux 7のMySQL 5.6パッケージ
oraclelinux7-mysql57 Oracle Linux 7のMySQL 5.7パッケージ
oraclelinux7-openstack20 Oracle Linux 7用のOpenStack 2.0パッケージ
oraclelinux7-openstack21 Oracle Linux 7のOpenStack 2.1パッケージ
oraclelinux7-openstack30 Oracle Linux 7用のOpenStack 3.0パッケージ
oraclelinux7-openstack30-extras Oracle Linux 7のOpenStack 3.0の追加パッケージ
oraclelinux7-optional Oracle Linux 7用にリリースされたオプション・パッケージ
oraclelinux7-scl Software Collection LibraryパッケージがOracle Linux 7用にリリースされました
oraclelinux7-spacewalk22-client Spacewalk 2.2 Oracle Linux 7のクライアント・パッケージ
oraclelinux7-spacewalk24-client Spacewalk 2.4 Oracle Linux 7のクライアント・パッケージ
oraclelinux7-spacewalk24-server Spacewalk 2.4 Oracle Linux 7のサーバー・パッケージ
oraclelinux7-spacewalk26-client Spacewalk 2.6 Oracle Linux 7のクライアント・パッケージ
oraclelinux7-spacewalk26-server Spacewalk 2.6 Oracle Linux 7のサーバー・パッケージ
oraclelinux7-uek-r3 Oracle Linux 7のUnbreakable Enterprise Kernelリリース3パッケージ
oraclelinux7-uek-r4 Unbreakable Enterprise Kernel Oracle Linux 7のリリース4パッケージ

2.3.2 Oracle Linux 6ソフトウェア・チャネル

次の表に、spacewalk-common-channelsコマンドを使用して設定できるOracle Linux 6 (i386および x86_64)ソフトウェア・チャネルを示します。

ソフトウェア・チャネル

説明

oraclelinux6 Oracle Linux 6にリリースされた最新パッケージ
oraclelinux6-addons Oracle Linux 6のアドオン・パッケージ
oraclelinux6-mysql55 Oracle Linux 6のMySQL 5.5パッケージ
oraclelinux6-mysql56 Oracle Linux 6のMySQL 5.6パッケージ
oraclelinux6-mysql57 Oracle Linux 6のMySQL 5.7パッケージ
oraclelinux6-openstack30 Oracle Linux 6用のOpenStack 3.0パッケージ
oraclelinux6-playground Oracle Linux 6のために構築されたメイン・ライン・カーネル・パッケージ
oraclelinux6-scl Software Collection LibraryパッケージがOracle Linux 6用にリリースされました
oraclelinux6-spacewalk22-client Spacewalk 2.2 Oracle Linux 6のクライアント・パッケージ
oraclelinux6-spacewalk22-server Oracle Linux 6のSpacewalk 2.2サーバー・パッケージ
oraclelinux6-spacewalk24-client Spacewalk 2.4 Oracle Linux 6のクライアント・パッケージ
oraclelinux6-spacewalk24-server Spacewalk 2.4 Oracle Linux 6のサーバー・パッケージ
oraclelinux6-spacewalk26-client Spacewalk 2.6 Oracle Linux 6のクライアント・パッケージ
oraclelinux6-spacewalk26-server Spacewalk 2.6 Oracle Linux 6のサーバー・パッケージ
oraclelinux6-uek-r2 Unbreakable Enterprise Kernel Oracle Linux 6のリリース2パッケージ
oraclelinux6-uek-r3 Oracle Linux 6のUnbreakable Enterprise Kernelリリース3パッケージ
oraclelinux6-uek-r4 Unbreakable Enterprise Kernel Oracle Linux 6のリリース4パッケージ

2.3.3 Oracle Linux 5ソフトウェア・チャネル

次の表に、spacewalk-common-channelsコマンドを使用して設定できるOracle Linux 5 (i386およびx86_64)ソフトウェア・チャネルを示します。

ソフトウェア・チャネル

説明

oraclelinux5

Oracle Linux 5のベース・チャネル

oraclelinux5-addons

アドオン・パッケージ

oraclelinux5-oracle-addons

Oracle製品のアドオン・パッケージ

oraclelinux5-spacewalk24-client

Spacewalkクライアント2.4パッケージ

oraclelinux5-spacewalk26-client

Spacewalk Client 2.6パッケージ

oraclelinux5-uek

Unbreakable Enterprise Kernelリリース2(UEK R2)パッケージ

oraclelinux5-unsupported

サポートされていないパッケージ

2.4 リポジトリの操作

Spacewalkリポジトリは、ULNまたはOracle Linux yumサーバーからパッケージを入手する場所を定義します。

ULNの場合、Spacewalkリポジトリは、次の形式を使用してULNチャネルのURLを指定します:

uln:///ULN_channel_label

ULN(https://linux.oracle.com)にログインし、チャネルタブを選択することにより、使用可能なULNチャネル・ラベルのリストを取得できます。

次の例に示すように、URLには3つのスラッシュ(/)文字を含める必要があります:

uln:///ol6_x86_64_latest

Oracle Linux yumサーバーの場合、Spacewalkリポジトリは、次の形式を使用してOracle Linux yumサーバー・リポジトリのURLを指定します:

https://yum.oracle.com/repository_path

Oracle Linux yum serverのrepoファイル(https://yum.oracle.com/)からURLを取得できます。

各Spacewalkリポジトリはi386またはx86_64アーキテクチャに固有なため、次の例に示すように、$basearchをアーキテクチャに置き換えます:

https://yum.oracle.com/repo/OracleLinux/OL6/6/base/x86_64/

2.4.1  Spacewalk Webインタフェースを使用してリポジトリを操作


チャネルに行き、ソフトウェア・チャネルの管理を選択し、リポジトリの管理を選択して下さい:

  • リポジトリを生成するには:

    1. +新しいリポジトリを作成をクリックします。

    2. 「新しいリポジトリを作成」ページで、次のリポジトリ設定を入力します:

      リポジトリ・タイプ

      Oracle Linux yumサーバー・リポジトリの場合はyum、ULNリポジトリの場合はulnを指定します。

      リポジトリ・ラベル

      リポジトリの名前を入力します(例:Oracle Linux 6 (x86_64))。

      リポジトリURL

      リポジトリ・パッケージのソースのURLを入力します。 たとえば、uln:///ol6_x86_64_latestまたはhttps://yum.oracle.com/repo/OracleLinux/OL6/6/base/x86_64/です。

      Oracle Linuxの残りのフィールドは設定しないでください。

    3. リポジトリの作成をクリックしてリポジトリを作成します。

  • リポジトリを表示するには、そのエントリを選択してその詳細を表示します。

  • リポジトリを変更するには:

    1. 編集するリポジトリを選択します。

    2. 「リポジトリの詳細」ページで、リポジトリ設定を変更し、リポジトリを更新をクリックして変更を保存します。

  • リポジトリを削除するには:

    1. チャネルに行き、ソフトウェア・チャネルの管理を選択して、リポジトリの管理を選択します。

    2. 削除するリポジトリを選択します。

    3. 「リポジトリの詳細」ページでリポジトリを削除をクリックし、リポジトリを削除をクリックして確認します。

ソフトウェア・チャネルをリポジトリに関連付けるには、2.5.1項、「Spacewalk Webインタフェースを使用したソフトウェア・チャネルの使用」を参照してください。

2.4.2  spacecmdコマンドを使用してリポジトリを操作

次のようにrepo_createコマンドを使用してリポジトリを作成します:

spacecmd {SSM:0}> repo_create
Name: Ksplice for Oracle Linux 7
URL: uln:///ol7_x86_64_ksplice

すべてのリポジトリを一覧表示するには、repo_listコマンドを使用します:

spacecmd {SSM:0}> repo_list
External - Oracle Linux 7 (x86_64)
External - Oracle Linux 7 Addons (x86_64)
External - Oracle Linux 7 MySQL 5.5 (x86_64)
External - Oracle Linux 7 MySQL 5.6 (x86_64)
External - Oracle Linux 7 Optional Packages (x86_64)
External - Oracle Linux 7 UEK Release 4 (x86_64)
External - Spacewalk 2.6 Client for Oracle Linux 7 (x86_64)

リポジトリの詳細を表示するには、repo_detailsコマンドを使用します:

spacecmd {SSM:0}> repo_details "External - Oracle Linux 7 \(x86_64\)"
Repository Label:   External - Oracle Linux 7 (x86_64)
Repository URL:     https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/
Repository Type:    yum

シェルから保護するには、名前のカッコをバックスラッシュでエスケープする必要があります。

リポジトリを削除するには、repo_deleteコマンドを使用します:

spacecmd {SSM:0}> repo_delete "Ksplice for Oracle Linux 7"
Repos
-----
Ksplice for Oracle Linux 7

Delete these repos [y/N]: y

ソフトウェア・チャネルをリポジトリに関連付けるには、第2.5.2項、「spacecmdコマンドを使用したソフトウェア・チャネルの操作」を参照してください。

2.5 ソフトウェア・チャネルの使用

Oracle Linuxリリースのメイン・ソフトウェア・チャネルは、base(またはparent)ソフトウェア・チャネルと呼ばれます。 複数の子ソフトウェア・チャネルを基本ソフトウェア・チャネルに関連付けることができます。 各子ソフトウェア・チャネルは、通常、基本ソフトウェア・チャネルでは利用できないパッケージを提供します。 パッケージの複数のバージョンが異なるサブスクライブされたチャネルに存在する場合、yumのバージョニングと依存関係の解決により、パッケージの最新バージョンが確実にインストールされます。

単一の基本チャネルと1つ以上の子チャネルにクライアントをサブスクライブすることができます。 addonsなどの更新に固有でないチャネルの場合は、各更新レベルの基本チャネルごとにaddons子チャネルを作成し、この子チャネルを同じaddonsリポジトリに関連付けることができます。

あなたがULNからOracle Linuxパッケージを取得するためにSpacewalkを構成した場合、Oracleは、それが利用可能になったあなたはOracle Linuxの更新ごとに別々のolN_arch_un_baseベース・ソフトウェア・チャネルとolN_arch_un_patch子ソフトウェア・チャネルを構成することをお勧めします。 この方法により、ソフトウェア・チャネルは小さく留まり、チャネル・クローニングのスピード・アップに役立ちます。 チャネル・クローニングに使用されるソース・チャネルを変更するか、クライアント・システムがサブスクライブしているチャネルを再構成しない限り、クライアント・システムは更新レベルを超えてアップグレードされません。

次の例は、Oracle Linuxのベース・ソフトウェア・チャネルとチャイルド・ソフトウェア・チャネルの一般的な構成を示しています。ここで、ベース・チャネルとパッチ・チャネルはULNと同期しています:

oraclelinux7-x86_64-base
 |-- oraclelinux7-x86_64-addons
 |-- oraclelinux7-x86_64-ksplice
 |-- oraclelinux7-x86_64-optional
 |-- oraclelinux7-x86_64-patch
 |-- oraclelinux7-x86_64-spacewalk26-client
 |-- oraclelinux7-x86_64-uek-r4
ノート

ベース・ソフトウェア・チャネルとパッチ・ソフトウェア・チャネル以外のソフトウェア・チャネルは、ULNに関連付ける必要はありません。

DTraceユーザー・スペース、Ksplice、OFEDパッケージなどの他のチャネルは、ULNでは利用可能ですが、Oracle Linux yumサーバーでは利用できません。

Oracle Linux yumサーバーは、Oracle Linuxリリース全体のすべてのパッケージを含む_olN_latestチャネルを提供します。 各更新の個別のパッチ・チャネルが利用できない場合は、_olN_latestチャネルを使用するように基本ソフトウェア・チャネルを構成します。 spacewalk-common-channelsコマンドを使用して、Oracle Linux 5、Oracle Linux 6、およびOracle Linux 7のソフトウェア・チャネル、リポジトリ、GPGキー、アクティベーション・キーを構成できます。 2.3項、「Oracle Linux Yumサーバーからパッケージを取得するためのソフトウェア・チャネルの構成」を参照してください。

次の例では、ベース・チャネルがOracle Linux YUMサーバー上ol7_latestチャネルに同期さOracle Linuxのベースと子ソフトウェア・チャンネルの典型的な構成を示す図です:

oraclelinux7-u3-x86_64-base
 |-- oraclelinux7-u3-x86_64-addons
 |-- oraclelinux7-u3-x86_64-ksplice
 |-- oraclelinux7-u3-x86_64-optional
 |-- oraclelinux7-u3-x86_64-patch
 |-- oraclelinux7-u3-x86_64-spacewalk26-client
 |-- oraclelinux7-u3-x86_64-uek-r4

2.5.1  Spacewalk Webインタフェースを使用してソフトウェア・チャネルを操作


チャネルに行き、ソフトウェア・チャネルの管理を選択して下さい:

  • ソフトウェア・チャネルを作成するには:

    1. +新しいチャネルを作成をクリックします。

    2. 「ソフトウェア・チャネルを作成」ページで、チャネルの初期構成で最も重要な次のフィールドにチャネル構成を入力します:

      チャネル名

      チャネルのわかりやすい名前を入力します。 たとえば、Oracle Linux 6 (x86_64) Base

      チャネル・ラベル

      ソフトウェアで使用されているチャネルの一意のラベルを入力します。 たとえば、oraclelinux6-x86_64

      ノート

      チャネル・ラベルは、Spacewalkインストール全体で一意でなければなりません。 たとえば、複数の親を持つ場合など、同じアップストリーム・リポジトリを使用する複数の子チャネルを使用する場合、各子チャネルには固有の固有のラベルが必要です。 推奨される方法は、ラベル内の各階層の更新レベル(oraclelinux6-u9-x86_64など)を指定することです。

      親チャネル

      これが基本ソフトウェア・チャネルの場合はなしを選択し、子ソフトウェア・チャネルの場合は親チャネルの名前を選択します。

      アーキテクチャ

      必要に応じて、IA32(i386リポジトリ用)またはx86_64を選択します。

      Yumリポジトリ・チェックサム・タイプ

      Oracle Linux 5の場合は、sha1を選択します。

      Oracle Linux 6とOracle Linux 7については、sha256を選択します。

      チャネルの概要

      チャネルの概要(例えば、チャネル名)を簡潔に記述します。

      ノート

      このフィールドを空白にすることはできません。

      チャネル記述

      チャネルの詳細な説明を入力するか、フィールドを空白のままにします。

      GPGキーのURL

      ローカルGPGキーのURLを入力します。 Oracle Linuxには、file:///etc/pki/rpm-gpg/RPM-GPG-KEYと入力します。

      サード・パーティ・リポジトリの場合、GPGキーをSpacewalkにインポートし、プロビジョニングまたは他の方法を使用して、サイトに応じてキーをデプロイする必要があります。

      ノート

      Spacewalk Clientは、ローカルに保存されたGPGキーを必要とします。 HTTPベースのURLは使用しないでください。 ローカル・ファイル・システムにインポートしたGPGキーを使用します。

      GPGキーID , GPGキー指紋

      次の表の情報に従って、Oracle Linuxリリースの適切なキーIDとフィンガープリントを入力します:

      リリース

      キーID

      キー指紋

      Oracle Linux 5

      D303656F

      99FD 2766 28EE DECB 5E5A F5F8 66CE D3DE 1E5E 0159

      Oracle Linux 6

      EC551F03

      4214 4123 FECF C55B 9086 313D 72F9 7B74 EC55 1F03

      Oracle Linux 7

      EC551F03

      4214 4123 FECF C55B 9086 313D 72F9 7B74 EC55 1F03

    3. チャネルを作成をクリックしてチャネルを作成します。

  • リポジトリとソフトウェア・チャネルを関連付けるには:

    1. リポジトリに関連付けるチャネルを選択します。

    2. 「基本チャネルの詳細」ページでリポジトリを選択し、リポジトリのチェックボックスを選択して、リポジトリの更新をクリックします。

  • ソフトウェア・チャネルを表示するには、その項目を選択して詳細を表示します。

    または、チャネルに移動し、ソフトウェア・チャネルを選択し、ベース・チャネルの名前の横にある+をクリックして、その子チャネルを表示します。 詳細を表示するソフトウェア・チャネルのエントリを選択します。

  • ソフトウェア・チャネルを変更するには:

    1. 編集するチャネルを選択します。

    2. 「基本チャネルの詳細」ページで、チャネル設定を変更し、チャネルを更新をクリックして変更を保存します。

      ノート

      チャネルを作成した後は、チャネル・ラベルを変更することはできません。

  • ソフトウェア・チャネルを削除するには:

    1. 削除するチャネルを選択します。

    2. 「基本チャネルの詳細」ページでソフトウェア・チャネルを削除をクリックし、チャネルを削除をクリックして確認します。

2.5.2  spacecmdコマンドを使用してソフトウェア・チャネルを操作

ソフトウェア・チャネルを作成するには、次のようにsoftwarechannel_createコマンドを使用します:

spacecmd {SSM:0}> softwarechannel_create
Channel Name: Ksplice for Oracle Linux 7
Channel Label: oraclelinux7-x86_64-ksplice
Base Channels
-------------
oraclelinux6-x86_64
oraclelinux7-x86_64

Select Parent [blank to create a base channel]: oraclelinux7-x86_64

Architecture
------------
i386-sun-solaris
ia32
ia64
ppc
sparc-sun-solaris
x86_64

Select: x86_64

Checksum type
------------
sha256
sha384
sha512

Select: sha1

GPG URL
------------

GPG URL: file:///etc/pki/rpm-gpg/RPM-GPG-KEY

GPG ID
------------

GPG ID: EC551F03

GPG Fingerprint
---------------

GPG Fingerprint: 4214 4123 FECF C55B 9086 313D 72F9 7B74 EC55 1F03

ソフトウェア・チャネルをリポジトリに関連付けるには、次の例に示すように、softwarechannel_addrepoコマンドを使用します:

spacecmd {SSM:0}> softwarechannel_addrepo ksplice-ol7-x86_64 "Ksplice for Oracle Linux 7"

すべてのソフトウェア・チャネルを一覧表示するには、softwarechannel_listコマンドを使用します:

spacecmd {SSM:0}> softwarechannel_list oraclelinux7*
oraclelinux7-x86_64
oraclelinux7-x86_64-addons
oraclelinux7-x86_64-optional
oraclelinux7-x86_64-spacewalk26-client
oraclelinux7-x86_64-spacewalk26-server
oraclelinux7-x86_64-uek-r3
oraclelinux7-x86_64-uek-r4

oraclelinux7*引数は、oraclelinux7で始まるラベルを除くすべてのチャネルをフィルタリングします。

すべてのベース(親)ソフトウェア・チャネルを一覧表示するには、softwarechannel_listbasechannelsコマンドを使用します:

spacecmd {SSM:0}> softwarechannel_listbasechannels
oraclelinux6-x86_64
oraclelinux7-x86_64

基本ソフトウェア・チャネルの子をリストするには、softwarechannel_listchildchannelsコマンドを使用します:

spacecmd {SSM:0}> softwarechannel_listchildchannels oraclelinux7-x86_64
oraclelinux7-x86_64-addons
oraclelinux7-x86_64-optional
oraclelinux7-x86_64-spacewalk26-client
oraclelinux7-x86_64-spacewalk26-server
oraclelinux7-x86_64-uek-r3
oraclelinux7-x86_64-uek-r4

ソフトウェア・チャネルをサブスクライブするシステムを一覧表示するには、softwarechannel_listsystemsコマンドを使用します:

spacecmd {SSM:0}> softwarechannel_listsystems oraclelinux7-x86_64
svr1.mydom.com
svr2.mydom.com
...

ソフトウェア・チャネルの詳細を表示するには、softwarechannel_detailsコマンドを使用します:

spacecmd {SSM:0}> softwarechannel_details oraclelinux7-x86_64
Label:              oraclelinux7-x86_64
Name:               Oracle Linux 7 (x86_64)
Architecture:       x86_64
Parent:             
Systems Subscribed: 0
Number of Packages: 0

Summary
-------
Oracle Linux 7 (x86_64)

GPG Key:            EC551F03
GPG Fingerprint:    4214 4123 FECF C55B 9086  313D 72F9 7B74 EC55 1F03
GPG URL:            file:///etc/pki/rpm-gpg/RPM-GPG-KEY

Repos
-----
External - Oracle Linux 7 (x86_64)

ソフトウェア・チャネルを削除するには、softwarechannel_deleteコマンドを使用します:

spacecmd {SSM:0}> softwarechannel_delete oraclelinux7-x86_64
Channels
--------
oraclelinux7-x86_64

Delete these channels [y/N]: y

2.6 ソフトウェア・チャネルの同期化

ソフトウェア・チャネルと関連するリポジトリを構成した後、即時の手動同期を実行するか、定期的な同期ジョブをスケジュールすることによって、ソフトウェアを同期することができます。

少なくとも、毎日Oracle Linux最新のチャネルを更新することをお薦めします。

Oracle Linuxチャネルの初回の同期化は、完了までに数日かかる場合があります。 初回の手動同期化を実行してチャネルに移入してから、定期ジョブを構成して更新された状態を維持することをお薦めします。

Spacewalk Webインタフェース、spacecmdコマンド、またはspacewalk-repo-syncコマンドを使用して、ソフトウェア・チャネルを同期させることができます。

2.6.1 リポジトリ作成時のメモリーに関する考慮事項

リポジトリ・メタデータの構築時に、Spacewalkがメモリー不足の問題で失敗することがあります。 この失敗は、RAMの最小値が512 MB、最大RAMの1024 MBに設定されているTaskomaticデーモン用のデフォルトのJavaメモリー設定が原因です。 これらの設定は、グローバルSpacewalk構成ファイル/etc/rhn/rhn.confで定義されます。

このタイプの障害が発生した場合は、構成ファイルで次のプロパティを設定して、最大メモリーを4096 MBまで増やします:

taskomatic.java.maxmemory=4096

ただし、4096 MBより大きい値を割り当てるには、次のステップを実行します:

  1. 自動メモリー・プロパティ設定を無効にします。

  2. Javaメモリーの最小値と最大値(-Xmsおよび-Xmx)をtaskomatic.java.additional.1taskomatic.java.additional.2のプロパティに手動で追加します。

    構成ファイルは次の例のようになります。

    taskomatic.java.initmemory=0
    taskomatic.java.maxmemory=0
    taskomatic.java.additional.1=-Xms1024m
    taskomatic.java.additional.2=-Xmx8192m

大規模なデータ・セット(多数のサーバーやパッケージなど)がある場合、Webインタフェースでも同様のメモリーに関する問題が発生する可能性があります。 これらの問題を解決するには、Oracle Linux 6の/etc/sysconfig/tomcat6ファイルのTomcatメモリー制限を増やし、Oracle Linux 7の/etc/sysconfig/tomcatファイルを増やします。 具体的には、JAVA_OPTS環境変数を編集し、-Xms-Xmxの値を増やします。これらはそれぞれ、初期メモリーと最大メモリー量のパラメータです。

2.6.2 Spacewalk Webインタフェースを使用したソフトウェア・チャネルの同期


ソフトウェア・チャネルを同期するには:

  1. チャネルに行き、ソフトウェア・チャネルの管理を選択して、必要なチャネルを選択します。

  2. 「チャネルの詳細」ページでリポジトリを選択し、同期を選択します。

  3. 「チャネル・リポジトリ」ページで:

    1. 必要に応じて、次のチェックボックスを選択します:

      エラータを同期させない

      チャネルで利用可能なエラータを同期させたくない場合に選択します。

      キックスタート可能なツリーを作成

      キックスタート・プロファイルをチャネルに関連付ける場合に選択します。

      ノート

      ULNとOracle Linux yumサーバーは、キックスタート可能なツリーを作成するのに必要なブート・イメージ・ファイルをホストしていません。 その代わりに、Oracle Linux Media Pack DVDイメージからファイルを取得し、それらをローカル・ファイル・システム上で使用できるようにすることができます。 第4章、「クライアント・システムのプロビジョニング」を参照してください。

      エラーが発生した場合に終了

      エラーが発生した場合に同期を停止するには、このオプションを選択します。

    2. ソフトウェア・チャネルを同期させる:

      • 即時の手動同期を実行するには、今すぐ同期をクリックします。

      • 定期的な同期ジョブをスケジュールするには、希望のスケジュールと時間を選択し、スケジュールをクリックします。

        Quartz形式を使用してスケジュールを指定できます。 たとえば、0 30 22 ? * *は、Spacewalkが毎日午後10時30分にチャネルを再同期化するように指定します。 「クォーツを使用」形式は、1日に数回同期をスケジュールする唯一の方法です。 たとえば、0 0 0,2,22 ? * *は、午後10時、深夜12時および午前2時に同期が行われるように指定します。

2.6.3 spacecmdコマンドを使用したソフトウェア・チャネルの同期

次のように、softwarechannel_syncreposコマンドを使用して、ソフトウェア・チャネルを同期させることができます:

spacecmd {SSM:0}> softwarechannel_syncrepos oraclelinux7-x86_64-ksplice

コマンドはすぐに戻り、同期のステータスは表示されません。

tail -fコマンドを使用して、ログファイル/var/logs/rhn/reposync/channel_label.logを表示できます。

次のようにsoftwarechannel_setsyncscheduleコマンドを使用して、チャネル同期のスケジュールを設定します:

spacecmd {SSM:0}> softwarechannel_setsyncschedule oraclelinux7-x86_64-ksplice 0 30 2 ? * *

前のコマンドは、毎日午前2時30分にoraclelinux7-x86_64-kspliceチャネルを1回再同期するように構成します。 Quartz形式でスケジュールを指定します。 詳細は、http://www.quartz-scheduler.org/overview/を参照してください。

次のようにsoftwarechannel_listsyncscheduleコマンドを使用して、スケジュールされたチャネルの同期をリストします:

spacecmd {SSM:0}> softwarechannel_listsyncschedule
  key  Channel Name                             Update Schedule     
-----  ---------------------                    ---------------                                              
  114  oraclelinux7-x86_64                      0 0 1 ? * *                                     
  115  oraclelinux7-x86_64-addons                          
  177  oraclelinux7-x86_64-ksplice              0 30 2 ? * *                            
  120  oraclelinux7-x86_64-optional                            
  127  oraclelinux7-x86_64-patch                0 0 3 ? * *       
  123  oraclelinux7-x86_64-spacewalk26-client   0 0 4 ? * *                     
  124  oraclelinux7-x86_64-spacewalk26-server   0 30 4 ? * *                   
  125  oraclelinux7-x86_64-uek-r3               0 0 1 ? * *                         
  126  oraclelinux7-x86_64-uek-r4               0 30 0 ? * *        

スケジュールされたチャネル同期を削除するには、次のようにsoftwarechannel_removesyncscheduleコマンドを使用します:

spacecmd {SSM:0}> softwarechannel_removesyncschedule oraclelinux7-x86_64-uek-r3

2.6.4 spacewalk-repo-syncコマンドを使用したソフトウェア・チャネルの同期

spacewalk-repo-syncコマンドを使用してソフトウェア・チャネルを同期することができます。 このコマンドを使用するには、rootユーザーであるか、/etc/sudoersファイルで許可が与えられている必要があります。

spacewalk-repo-syncコマンドは、手動またはcronジョブで実行できます。 cronジョブでコマンドを実行する場合は、-qまたは--quietオプションを含めて、大きな電子メール・メッセージがrootに送信されないようにします。

次の例に示すように、spacewalk-repo-sync -lコマンドを使用して、チャネル・ラベルとリポジトリのURLを表示できます

# spacewalk-repo-sync -l | grep ksplice
ksplice-ol7-x86_64 | uln:///ol7_x86_64_ksplice
ksplice-ol6-i386 | uln:///ol6_i386_ksplice
ksplice-ol6-x86_64 | uln:///ol6_x86_64_ksplice

# spacewalk-repo-sync -l | grep addons
oraclelinux7-x86_64-addons | https://yum.oracle.com/repo/OracleLinux/OL7/addons/x86_64/
oraclelinux6-x86_64-addons | https://yum.oracle.com/repo/OracleLinux/OL6/addons/x86_64/

チャネルをYumリポジトリまたはULNリポジトリと同期させるには、Oracle Linux 6の次の例に示すように、-cオプションを使用してチャネル・ラベルを指定します:

# spacewalk-repo-sync -c ksplice-ol6-x86_64
#### Channel label: ksplice-ol6-x86_64 ####
Repo URL: uln:///ol6_x86_64_ksplice
The download URL is: https://linux-update.oracle.com/XMLRPC/GET-REQ/ol6_x86_64_ksplice
Packages in repo:              1296
Packages already synced:          0
Packages to sync:              1296
1/1296 : ksplice-snmp-plugin-0.1.0-2.el6-0.x86_64
2/1296 : uptrack-updates-2.6.39-400.210.2.el6uek.x86_64-20150206-0-0.noarch
...
1295/1296 : uptrack-updates-2.6.32-220.el6.x86_64-20150130-0-0.noarch
1296/1296 : uptrack-updates-2.6.32-200.20.1.el6uek.x86_64-20141216-0-0.noarch
Linking packages to channel.
Repo uln:///ol6_x86_64_ksplice has 0 errata.
Sync completed.
Total time: 1 day, 8:56:47

前の例では、チャネルとしてダウンロードされたすべてのパッケージは、以前はULNと同期されていませんでした。 要した合計時間は約33時間でした。

次の例に示すように、同じコマンドを使用して、チャネルをOracle Linux yumサーバー・リポジトリと同期させることができます:

# spacewalk-repo-sync -c oraclelinux6-x86_64-addons
#### Channel label: oraclelinux6-x86_64-addons ####
Repo URL: https://yum.oracle.com/repo/OracleLinux/OL6/addons/x86_64/
Packages in repo:               308
No new packages to sync.
Repo https://yum.oracle.com/repo/OracleLinux/OL6/addons/x86_64/ has 6 errata.
Sync completed.
Total time: 0:01:09

前の例では、新しいパッケージはダウンロードできませんでした。

次の例に示すように、-p parent_channelオプションと引数を使用して、親チャネルとそのすべての子を1回の操作で同期させます:

# spacewalk-repo-sync -p oraclelinux7-x86_64

次の例に示すように、--latestオプションも指定すると、サーバーは使用可能な最新のパッケージのみを同期します:

 spacewalk-repo-sync -p oraclelinux7-x86_64 --latest
#### Channel label: oraclelinux7-x86_64 ####
Repo URL: https://yum.oracle.com/repo/OracleLinux/OL7/optional/latest/x86_64/
Packages in repo:             10133
Packages already synced:          0
Packages to sync:              5845
1/5845 : bind-lite-devel-9.9.4-18.el7_1.3-32.i686
2/5845 : bind-sdb-chroot-9.9.4-18.el7_1.2-32.x86_64
...

前の例では、5,845個の最新パッケージ(リポジトリ内の10,133個のパッケージのうち)のみをダウンロードする必要がありました。

ノート

--latestオプションは、同期時に使用可能な最新のパッケージをダウンロードします。 このコマンドを実行しても、古いパッケージは削除されません。 同期間隔が長い場合は、特定のバージョンのパッケージを見逃している可能性があります。この場合、エラータが特定のパッケージ・バージョンに関連付けられているエラータ処理に影響があります。 エラータの一貫性が重要な場合は、--latestを使用しないことをお薦めします。 これらのパッケージは常に累積的であるため、例外はKspliceチャネルで--latestを使用していることに注意してください。

詳細は、spacewalk-repo-sync(8)マニュアル・ページを参照してください。

2.7 ソフトウェア・チャネルのクローニング

ソフトウェア・チャネルをクローンして、パッケージとエラータの状態を特定のポイントで取得できます。 クローンされたチャネルは、デプロイメント前にサーバー・システムを開発およびテストする際に安定した参照ベースを提供するのに便利です。 デプロイされたシステムでは、セキュリティ上の脆弱性にさらされる可能性があるため、クローン・チャネルは推奨されません。

ソフトウェア・チャネルのクローン作成に関する以下の追加情報に注意してください:

  • Spacewalkインタフェースを使用して、一度に1つのチャネルをクローンすることができます。

  • 特定の日付にチャネルをクローンして状態を保持する場合は、spacewalk-clone-by-dateコマンドを使用します。

  • ベース・チャネルとそのすべての子チャネルを同時にクローンする場合は、spacecmdまたはspacewalk-clone-by-dateコマンドの使用を検討してください。

  • spacewalk-manage-channel-lifecycleコマンドを使用すると、開発からテスト、プロダクションまでのソフトウェア・チャネルのライフサイクルを管理できます。 spacewalk-manage-channel-lifecycleは、アーカイブをサポートし、ロールバックし、繰り返し使用できるように設計されているため、spacewalk-manage-channel-lifecyclespacewalk-clone-by-dateより優先して使用することをお薦めします。 第2.8項、「spacewalk-manage-channel-lifecycleコマンドを使用してチャネルのライフ・サイクルを管理」を参照してください。

2.7.1  Spacewalk Webインタフェースを使用したソフトウェア・チャネルのクローニング


次のようにソフトウェア・チャネルをクローンします:

  1. チャネルに行き、ソフトウェア・チャネルの管理を選択して下さい。

  2. クローン・チャネルをクリックします。

  3. 「クローン・チャネル」ページで、プルダウン・メニューから複製するソース・チャネルを選択し、クローン・タイプを選択します:

    チャネルの現在の状態(すべてのエラータ)

    クローン・チャネルには、ソース・チャネルからのすべてのパッケージとエラータが含まれます。

    チャネルの元の状態(エラータなし)

    クローンされたチャネルには、ソース・チャネルに元々含まれていたが、関連するエラータはないすべてのパッケージが含まれています。

    エラータを選択

    クローンされたチャネルには、ソース・チャネルに元々含まれていたすべてのパッケージと、選択したエラータが含まれています。 すべてのエラータを選択することは、チャネルの現在の状態を複製することと同じです。 エラータを選択しないことは、チャネルの元の状態を複製することと同じです。

  4. チャネルを作成をクリックします。

  5. 「ソフトウェア・チャネルの編集」ページでは、チャネルの詳細を変更できます。 デフォルト・ラベルは、clone-のプレフィクスが付いたソース・チャネル・ラベルです。

  6. チャネルを作成をもう一度クリックします。

  7. クローン・タイプとしてエラータを選択を指定した場合、「エラータをクローン」ページには利用可能なエラータが表示されます。 それぞれのエラータについて、エラータとマージするか、別個にクローン化されたエラータを作成するか、何もせずにエラータを除外することができます。 デフォルトでは、エラータはソース・エラータとマージされます。つまり、エラータがクローンされたコピーを作成する代わりに使用されます。

    エラータのクローン作成が完了したら、エラータをクローンをクリックします。

  8. チャネルの詳細ページで、チャネルのラベル以外のチャネルの詳細を編集することもできます。

    エラータタブを選択すると、他のチャネルのエラータを追加したり、ソース・チャネルからエラータをクローンしたりすることができます。

    パッケージタブを選択すると、チャネルにパッケージを追加または削除できます。

2.7.2  spacecmdコマンドを使用したソフトウェア・チャネルのクローニング

次のコマンドを実行して、softwarechannel_cloneコマンドを使用して単一のチャネルをクローンすることができます:

spacecmd {SSM:0}> softwarechannel_clone -s ol6u6-x86_64 -x "s/$/-clone/" -o
spacecmd {SSM:0}> softwarechannel_details ol6u6-x86_64-clone
Label:              ol6u6-x86_64-clone
Name:               Oracle Linux 6 Update 6 Base Channel (x86_64)-clone
Architecture:       x86_64
Parent:             
Systems Subscribed: 0
Number of Packages: 5522

Summary
-------
Oracle Linux 6 Update 6 Base Channel (x86_64)-clone

GPG Key:            EC551F03
GPG Fingerprint:    4214 4123 FECF C55B 9086  313D 72F9 7B74 EC55 1F03
GPG URL:            file:///etc/pki/rpm-gpg/RPM-GPG-KEY

-xオプションは、新しいチャネル名とラベルに-cloneを追加します。 -oオプションは、すべてのエラータをクローン・チャネルから除外します。

2つのチャネルのパッケージ内容の違いを比較するには、次のようにsoftwarechannel_diffコマンドを使用します:

spacecmd {SSM:0}> softwarechannel_diff ol6u6-x86_64-clone ol6u6-x86_64
--- ol6u6-x86_64-clone

+++ ol6u6-x86_64

@@ -22,7 +22,18 @@

 GConf2-devel-2.28.0-6.el6.i686
 GConf2-devel-2.28.0-6.el6.x86_64
 GConf2-gtk-2.28.0-6.el6.x86_64
+ImageMagick-6.5.4.7-7.el6_5.i686
+ImageMagick-6.5.4.7-7.el6_5.x86_64
+ImageMagick-c++-6.5.4.7-7.el6_5.i686
...
 zlib-devel-1.2.3-29.el6.i686
 zlib-devel-1.2.3-29.el6.x86_64
 zlib-static-1.2.3-29.el6.x86_64
+zsh-4.3.10-7.el6.x86_64
+zsh-html-4.3.10-8.el6_5.x86_64

ベース・チャネルとそのすべての子チャネルをクローンするには、次のようにsoftwarechannel_clonetreeコマンドを使用します:

spacecmd {SSM:0}> softwarechannel_clonetree -s ol6u6-x86_64 -p "clone-"
INFO: Cloning ol6u6-x86_64 as clone-ol6u6-x86_64
INFO: Cloning ol6-x86_64-addons as clone-ol6-x86_64-addons
INFO: Cloning ol6u6-x86_64-oracle as clone-ol6u6-x86_64-oracle
INFO: Cloning ol6-x86_64-spacewalk22-client as clone-ol6-x86_64-spacewalk22-client
INFO: Cloning ol6-x86_64-spacewalk22-server as clone-ol6-x86_64-spacewalk22-server
INFO: Cloning ol6u6-x86_64-patches as clone-ol6u6-x86_64-patches
INFO: Cloning ol6-x86_64-uekr3_latest as clone-ol6-x86_64-uekr3_latest

2.7.3  spacewalk-clone-by-dateコマンドを使用したソフトウェア・チャネルのクローニング

spacewalk-clone-by-dateコマンドを使用して、指定した日付のOracle Linuxチャネルをクローンします。これにより、チャンネルのエラータとその関連パッケージの状態が元のリリースからその日付まで保持されます。 必要に応じて、パッケージをブロック・リストまたは削除し、どのタイプのエラータを含めるかまたは除外するかを選択できます。

たとえば、次のコマンドは、ol6-x86_64-latestチャネルから2017年1月31日までのol6-x86_64-latest-sec-20170131までのセキュリティ・エラータのみをクローンします:

# spacewalk-clone-by-date --username=swadmin --password=swpasswd \
  --to_date=2017-01-31 --channels=ol6-x86_64-latest ol6-x86_64-latest-sec-20170131 \
  --security_only --background --assumeyes 

このコマンドは、バックグラウンドで途切れることなく実行されます。 指定されたspacewalkユーザーには、組織管理者またはチャネル管理者の権限が必要です。

次の例では、ntpパッケージのすべてのバージョンとfuseで始まるパッケージを除いて、2017年1月31日までのベース・チャネルとパッチの子チャネルをクローンします:

# spacewalk-clone-by-date --username=swadmin --password=swpasswd \
  --channels=ol6-x86_64-base ol6-x86_64-base-20170131
  --channels=ol6-x86_64-patch ol6-x86_64-patch-20170131
  --to_date=2017-01-31 --blacklist=ntp,fuse*

spacewalk-clone-by-dateをリモートで実行するには、-sオプションを使用して、XML/RPC API接続のSpacewalkサーバーURLを指定します(例:-s https://swksvr_FQDN/rpc/api)。

一般的な使用例は、定期的な間隔でspacewalk-clone-by-dateを実行して、クローンされたチャネルを最新の状態に保つことです。 サンプル構成ファイルを生成するには、次のコマンドを使用します:

# spacewalk-clone-by-date --sample-config

詳細は、spacewalk-clone-by-date(8)マニュアル・ページを参照してください。

2.8  spacewalk-manage-channel-lifecycleコマンドを使用してチャネルのライフサイクルを管理

spacewalk-manage-channel-lifecycleコマンドを使用すると、開発からテストまで、ソフトウェア・チャネルのライフサイクルを管理するために、次のタスクを実行できます:

  • ol6-x86_64-appsvrの最新の利用可能なパッケージに基づいて開発チャネルdev-ol6-x86_64-appsvrを作成します。

    # spacewalk-manage-channel-lifecycle -c ol6-x86_64-appsvr --init
  • パッケージを開発チャネルからテスト・チャネルtest-ol6-x86_64-appsvrに昇格させます。

    # spacewalk-manage-channel-lifecycle -c dev-ol6-x86_64-appsvr --promote
  • パッケージをテスト・チャネルから本番チャネルprod-ol6-x86_64-appsvrに昇格させます。

    # spacewalk-manage-channel-lifecycle -c test-ol6-x86_64-appsvr --promote

アーカイブ・チャネルarchive-date-channelを作成して、チャネルの状態を保存することができます。

# spacewalk-manage-channel-lifecycle -c prod-ol6-x86_64-appsvr --archive

チャネルの状態をリストアする必要がある場合は、--rollbackオプションを使用して、リストアするチャネルのアーカイブ・バージョンを指定します:

# spacewalk-manage-channel-lifecycle -c archive-20110520-test-ol6-x86_64-appsvr --rollback

-lオプションを使用してチャネルを一覧表示します:

# spacewalk-manage-channel-lifecycle -l
Channel tree:

 1. archive-20160203-ol6-x86_64-appsvr
      \__ archive-20160203-prod-ol6-x86_64-appcmd
      \__ archive-20160203-prod-ol6-x86_64-applib

 2. dev-ol6-x86_64-appsvr
      \__ dev-ol6-x86_64-appcmd
      \__ dev-ol6-x86_64-applib
  
 3. ol6-x86_64-appsvr
      \__ ol6-x86_64-appcmd
      \__ ol6-x86_64-applib

 4. prod-ol6-x86_64-appsvr
      \__ prod-ol6-x86_64-appcmd
      \__ prod-ol6-x86_64-applib

 5. test-ol6-x86_64-appsvr
      \__ test-ol6-x86_64-appcmd
      \__ test-ol6-x86_64-applib