第3章 Puppet のアップグレード
Red Hat Satellite 6.3 はデフォルトで Puppet 3 を使用しますが、Puppet 4 にアップグレードすることもできます。Satellite 6.4 では Puppet 5 だけがサポートされます。Puppet 5 へのマイグレーションパスは、Puppet 4 から Puppet 5 へのマイグレーションだけがサポートされます。したがって、バージョン 4 以前の Puppet を使用している場合は、Puppet 4 にアップグレードしてから Satellite 6.4 にアップグレードする必要があります。Satellite 6.3 には、Puppet 4 へのアップグレードパスが含まれているため、Satellite 6.3 で Puppet 4 を行ってから次のステップに進むことを Red Hat は推奨しています。本章では、Puppet 4 へのアップグレードプロセスを説明します。
3.1. アップグレードパス
Puppet をアップグレードする前に、Puppet モジュールが Puppet 4 と互換性があるのを確認してから、Puppet モジュールを変更します。たとえば、Puppet エージェントを実行した後に、クライアントに空白の設定があると、Puppet モジュールのアップデートが指定されます。
Red Hat Satellite と Capsule を、同時に Puppet 4 にアップグレードする必要はありません。Puppet モジュールのアップグレードおよびテストに伴い、Capsules をアップグレードすることができます。もしくは、新しい Capsule をインストールして、テストをしてからホストを移動することもできます。Satellite web UI、Hammer CLI、または bootstrap スクリプトを使用して、Puppet 3 Capsule から Puppet 4 Capsule へホストを移動できます。
また、アップグレードした Puppet モジュールの最終テストに使用するために、既存の Capsule のクローンを作成することが推奨されます。リポジトリーのサイズによっては、既存の Capsule のクローンを作成するのに時間がかかります。
完全に機能させるには、ホストに Puppet 4 エージェントを使用する必要がありますが、Capsule を Puppet 4 にアップグレードしてから、ホストを Puppet 4 エージェントにアップデートする必要があります。
ホストのプロビジョニング時に、Puppet 3 エージェントの代わりに Puppet 4 エージェントをインストールするように Satellite を設定できます。キックスタートのテンプレートファイルに enable-puppet4 パラメーターを追加します。true に設定すると、プロビジョニングテンプレートが Puppet 4 エージェントをインストールして、/etc/puppetlabs/puppet/ に puppet.conf を設定します。パラメーターを定義しないと、Puppet 3 エージェントがインストールされます。
ホストで強制的に Puppet 4 を使用するには、ホストグループレベルで enable-puppet4 パラメーターを作成し、値を true に設定します。
3.2. Puppet モジュールのテスト
アップグレードを行う前に、以下のガイドラインに沿って Puppet モジュールをテストします。
- Puppet モジュールは、最初に、Satellite に接続していないワークステーションでテストします。
-
puppet parser validateコマンドを実行して、コマンドの構文を確認します。 -
Puppet 3 を実行している Satellite Capsule で、将来のパーサーを使用するように設定し、再度テストします。この機能を有効にするには、
--puppet-server-parser futureオプションで Satellite インストーラーを実行します。
Puppet 3.8 における将来のパーサーは、Puppet 4.0 で使用している Puppet 言語と同一の機能を有効にします。それを有効にしたあと、/var/log/puppet/ ログでエラーを確認します。エラーを見つけたら修正して、再度テストします。将来のパーサーの情報は「Puppet 3.8 Reference Manual」を参照してください。
3.3. アップグレードの実行
ここでは、Satellite または Capsule を Puppet 4 にアップグレードする方法を説明します。新規にインストールする場合は『Red Hat Satellite インストールガイド』を参照してください。
作業を行う前に
- Satellite 6.3 へのアップグレードが完了したことを確認します。
- Puppet モジュールを確認して、必要に応じて Puppet 4 にアップグレードします。
- バージョン 4 ではなく、最新の Puppet 3 エージェントにアップグレードするシステムにすべてのホストを接続していることを確認します。ホストを Puppet 4 エージェントにアップグレードしてから、Capsule をアップグレードしてください。Satellite Tools リポジトリーは Puppet パッケージを提供します。詳細は「Satellite クライアントのアップグレード」を参照してください。
- システムのバックアップ、またはスナップショットを作成します。詳細は『Red Hat Satellite の管理』の「Satellite Server および Capsule Server のバックアップと復元」を作成します。
Satellite または Capsule の Puppet 4 へのアップデート
Puppet 4 リポジトリーを有効にします。
Satellite で、以下のコマンドを使用します。
# subscription-manager repos \ --enable=rhel-7-server-satellite-6.3-puppet4-rpms
Capsule で、以下のコマンドを使用します。
# subscription-manager repos \ --enable=rhel-7-server-satellite-capsule-6.3-puppet4-rpms
Puppet をアップグレードします。
# satellite-installer --upgrade-puppet
ホストの Puppet 4 へのアップグレード
ホストをアップグレードする Puppet リポジトリーは、Red Hat リリースまたはプラットフォームによって異なります。アーキテクチャーによって異なる場合もあります。
Puppet 4 リポジトリーは、デスクトップ、サーバー、およびワークステーションから以下を取得します。
rhel-X-platform-satellite-tools-6.3-puppet4-rpms
ここで、X は使用してるメジャーリリースのバージョンで、platform は
desktop、server、またはworkstationになります。Puppet 4 リポジトリーは、選択したアーキテクチャーから以下を取得します。
rhel-X-for-architecture-satellite-tools-6.3-puppet4-rpms
ここで、X はメジャーリリースのバージョン、architecture はたとえば
arm、power、hpc-node、またはsystem-zになります。リポジトリーの中には、延長サポートが含まれているサブスクリプション向けのものもあります。たとえば、延長アップデートサポート (EUS) の場合は、アーキテクチャーの後にeusと続きます。延長サポートの種類については、Red Hat ナレッジベースの記事「Red Hat Enterprise Linux のサポートポリシーについてよく利用されるナレッジ」を参照してください。
コンテンツホストで、Puppet 4 RPM リポジトリーを検索します。
# subscription-manager repos |grep puppet4
以下のように、ホストに適切な Puppet 4 リポジトリーを有効にします。
# subscription-manager repos \ --enable=rhel-7-server-satellite-tools-6.3-puppet4-rpms
すべてのパッケージをアップデートします。
# yum update
Red Hat Bugzilla 1517624 が解決するまでは、以下を実行してください。
# cp -rp /var/lib/puppet/ssl /etc/puppetlabs/puppet/ # cp /etc/puppet/puppet.conf.rpmsave /etc/puppetlabs/puppet/puppet.conf # sed -i 's|/var/lib/puppet|/opt/puppetlabs/puppet/cache|' /etc/puppetlabs/puppet/puppet.conf # sed -i 's|/var/log/puppet|/var/log/puppetlabs/puppet|' /etc/puppetlabs/puppet/puppet.conf # sed -i 's|/var/run/puppet|/var/run/puppetlabs|' /etc/puppetlabs/puppet/puppet.conf # sed -i 's|$vardir/ssl|/etc/puppetlabs/puppet/ssl|' /etc/puppetlabs/puppet/puppet.conf

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.