第4章 Puppet のアップグレード
Red Hat Satellite 6.4 は Puppet 5 のみをサポートします。Puppet 5 は、Puppet 4 から Puppet 5 への移行しかサポートしません。そのため、3 以前のバージョンを使用している場合は、Satellite 6.4 にアップグレードする前に、Puppet 4 にアップグレードする必要があります。Satellite 6.3 には Puppet 4 へのアップグレードパスが含まれています。詳細は、Satellite 6.3 『Red Hat Satellite のアップグレードおよびアップデート』ガイドの「Puppet のアップグレード」セクションを参照してください。
Satellite のアップグレードプロセス時に、アップグレードプロセスの一部として、Puppet は 4 から 5 にアップグレードされます。本章では、Puppet 4 から Puppet 5 へのアップグレードの準備プロセスについて説明します。
4.1. アップグレードパス リンクのコピーリンクがクリップボードにコピーされました!
Satellite 6.4 にアップグレードする前に、Puppet モジュールを確認し、変更を加えて Puppet 5 との互換性を確保する必要があります。Puppet 5 での変更に関する情報は、Puppet のウェブサイトの Puppet 5.0 Release Notes を参照してください。
Red Hat Satellite と Capsule を、同時にアップグレードする必要はありません。Puppet モジュールのアップグレードおよびテストに伴い、Capsules をアップグレードすることができます。もしくは、新しい Capsule をインストールして、テストしてからホストを移動することもできます。Satellite web UI、Hammer CLI、または bootstrap スクリプトを使用して、Puppet 4 Capsule から Puppet 5 Capsule へホストを移動できます。
また、アップグレードした Puppet モジュールの最終テストに使用するために、既存の Capsule のクローンを作成することが推奨されます。リポジトリーのサイズによっては、既存の Capsule のクローンを作成するのに時間がかかります。
Puppet バージョンを判断するためのパラメーターの使用
デフォルトでは、Satellite 6.4 はグローバルパラメーター enable-puppet5 を設定します。キックスタートファイルなどのプロビジョニングファイルは、enable-puppet5 を使用して Puppet 5 エージェントがある場合は、新規ホストをプロビジョニングして Puppet 5 エージェントを使用します。ただし、Puppet 4 エージェントがコンテンツビューで、ホストにアタッチされている場合には、Puppet 5 の代わりにこれが使用されます。ホストで Puppet 5 を使用する場合には、このホストに関連付けられているコンテンツビューを Puppet 5 エージェントが含まれるように更新する必要があります。
Puppet 4 を使用するために新規ホストをプロビジョニングする必要がある場合には、ホストのグループレベルでグローバルパラメーターを上書きできます。
- Web UI で、設定 > ホストグループ に移動し、設定するホストグループ名を選択します。
- パラメーター タブをクリックして、ホストのグループパラメーター のエリアで、パラメーターの追加 をクリックします。
-
名前 フィールドで、
enable-puppet4と入力し、値 フィールドで、trueと入力します。 - 送信 をクリックして変更を保存します。
Satellite 6.3 で enable-puppet4 のパラメーターを設定した場合には、これで安全に削除できます。
- Web UI で、設定 > ホストグループ に移動し、設定するホストグループ名を選択します。
-
パラメーター タブをクリックして、ホストのグループパラメーター のエリアで、
enable-puppet4を特定します。 - アクション コラムで、削除 をクリックします。
- 送信 をクリックして変更を保存します。
Hammer コマンドを使用して削除することもできます。以下に例を示します。
hammer hostgroup delete-parameter --hostgroup my_hostgroup --name enable-puppet4
# hammer hostgroup delete-parameter --hostgroup my_hostgroup --name enable-puppet4
4.2. Puppet モジュールのテスト リンクのコピーリンクがクリップボードにコピーされました!
Puppet ウェブサイトの Puppet 5.0 Release Notes と以下のガイドラインを使用して、アップグレードを開始する前に Puppet モジュールをテストしてください。
- Puppet モジュールは、最初に、Satellite に接続していないワークステーションでテストします。
-
puppet parser validateコマンドを実行して、コマンドの構文を確認します。 -
サポートされなくなっているので、クラス参照名に大文字がないかを確認してください。
Class[MyClass]からClass[myclass]に変更するなど、クラス名を小文字に変更します。 -
Ruby 形式のカスタムのバージョン比較コードがある場合は、SemVer の範囲の一致を処理する
Range#intersectionコードは削除されている点に注意してください。 -
カスタムの Ruby コードで、文字列のフォーマット方法として、非推奨の
TypeCalculatorクラスが使用されている場合には、TypeCalculatorの文字列フォーマット方法が削除されたため、TypeFormatterクラスが使用されるように、コードを変更してください。詳細は、Puppet ウェブサイトで Type mismatch describer should expand aliases の問題を参照してください。 -
以前のバージョンでは、クラスが複数回定義されている場合には、ボディーがマージされていました。
--strictフラグの状態によって、警告またはエラーが表示されていましたが、‘’で指定されている上位のスコープクラス以外は、エラーが常に表示されるようになりました (‘main’とも呼ばれる)。
4.3. アップグレードの準備 リンクのコピーリンクがクリップボードにコピーされました!
このセクションを使用して、Puppet 5 にアップグレードするためにホストを準備してください。Satellite Server と Capsule Server は、適切なアップグレード手順の一部として Puppet 5 にアップグレードされます。
作業を開始する前に
- Satellite Server は Satellite 6.4 へのアップグレードを済ませておくようにしてください。
- アタッチされているホストで、アップグレードするホストで、Capsule Server のアップグレードを完了してください。
- Puppet モジュールをレビューし、Puppet 5 にアップグレードする必要がある箇所でアップグレードが行われていることを確認します。
- 関連のあるコンテンツビュー が更新され、Puppet 5 エージェントが含まれていることを確認します。
-
グローバルの
enable-puppet5パラメーターを上書きするenable-puppet4パラメーターがホストとホストグループに設定されていないことを確認してください。
Puppet 5 用のホストの準備
Puppet 4 リポジトリーを無効にします。
Puppet 4 リポジトリーは、デスクトップ、サーバー、およびワークステーションから以下を取得します。
rhel-X-platform-satellite-tools-6.3-puppet4-rpms
rhel-X-platform-satellite-tools-6.3-puppet4-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、X は使用してるメジャーリリースのバージョンで、platform は
desktop、server、またはworkstationになります。Puppet 4 リポジトリーは、選択したアーキテクチャーから以下を取得します。
rhel-X-for-architecture-satellite-tools-6.3-puppet4-rpms
rhel-X-for-architecture-satellite-tools-6.3-puppet4-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、X はメジャーリリースのバージョン、architecture は
arm、power、hpc-node、またはsystem-zなどです。リポジトリーの中には、延長サポートが含まれているサブスクリプション向けのものもあります。たとえば、延長アップデートサポート (EUS) の場合は、アーキテクチャーの後にeusと続きます。延長サポートの種類については、Red Hat ナレッジベースの記事「Red Hat Enterprise Linux のサポートポリシーについてよく利用されるナレッジ」を参照してください。
コンテンツホストで、Puppet 4 RPM リポジトリーを検索します。
subscription-manager repos --list-enabled |grep puppet4
# subscription-manager repos --list-enabled |grep puppet4Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のように、ホストで見つかった Puppet 4 リポジトリーを無効にします。
subscription-manager repos \ --disable=rhel-7-server-satellite-tools-6.3-puppet4-rpms
# subscription-manager repos \ --disable=rhel-7-server-satellite-tools-6.3-puppet4-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow すべてのパッケージをアップデートします。
yum update
# yum updateCopy to Clipboard Copied! Toggle word wrap Toggle overflow