編集者注:この記事は、JamesBrigmanがRedHatAcceleratorプログラムのメンバーであったときに作成されました。
Red Hat Satelliteは、RedHatLinuxシステムを新しいRPMまたは更新されたRPMで更新する手段を提供します。サテライトはリポジトリをローカルでホストするため、これらの更新をより迅速に、より多くのクライアントに対して取得できます。この機能は、ソフトウェア開発プロセスにとって重要になります。これは、開発プロセスにサービスを提供している仮想マシンをすばやく作成して破棄する必要があるためです。
私たちのSatelliteサーバーは開発サイクル中によく使用されるため、正しく機能していることを確認する必要があります。問題が発生した場合は、開発者が中断することなく作業を継続できるように、問題をすばやく見つけて解決する必要があります。
この記事では、プロセスの要点を説明し、RedHatSatelliteサーバーの更新とアップグレードから学んだ教訓を紹介します。
(使用するVMシステムで)仮想マシンとしてSatelliteを実行する場合は、バックアップまたはスナップショットを作成します。ベアメタルを実行しているRedHatEnterprise LinuxでSatelliteを実行している場合は、完全バックアップを取ります。問題が発生した場合に元の状態に戻れるようにする必要があります。
[Red Hat Enterprise Linuxを試してみませんか?今すぐ無料でダウンロードしてください。]
時間は進みます。この事実は、システム管理の専門家にとって、ソフトウェアのアップグレードは絶え間ない活動であることを意味します。実行している製品のサポートを受けることができるか、必要な機能を取得する(そして維持する)か、パフォーマンスを向上させるかなど、さまざまな理由でアップグレードします。
サテライトの場合、更新という用語 およびアップグレード 非常に具体的な意味があります。 更新 ドット更新を行うときです 既存のソフトウェアに。このディスカッションでは、更新 Red HatSatellite6.4.2から6.4.4に移動しました。どちらもまだSatellite6.4(メジャーバージョン)ですが、2番目は.2から.4(マイナーバージョン)に変更されています。
アップグレード これは、Satelliteサーバーを以前のメジャーバージョンから最新のメジャーバージョンに移行する場合です。更新後、サーバーを6.4メジャーバージョンから6.5メジャーバージョンにアップグレードする作業を行いました。
プロセスの終わりまでに、サテライトサーバーは6.4.2から6.5.2.1に移行しました。
アップグレードまたは更新のプロセスには、4つの主要なステップが含まれます。それぞれを見てみましょう。
更新またはアップグレードする前に、衛星の現在の状態を確認し、更新またはアップグレードを実行する準備ができているかどうかをアドバイスできるユーティリティがあります。そのユーティリティはforeman-maintain
衛星のドキュメントで説明されています。
「upgradesatellite6.5」という用語を使用してaccess.redhat.comを検索すると、このリンクが見つかります。 コンテンツタイプフィルターの下 、ドキュメントを選択します 検索を制限します。このURLには、重要な定義、前提条件、およびアップグレードパスがあります。
このドキュメントに記載されている手順は、foreman-maintain
を実行することで終わります。 アップグレードモードのコマンド。このコマンドはSatelliteサーバーを通過し、前に更新される適合性を確認します。 実際の更新を行います。両方の更新に使用したコマンド およびアップグレード 同じで、ターゲットバージョンが異なります:
# /usr/bin/foreman-maintain upgrade check --target-version 6.4.z
もちろん、衛星の正しい構文は異なります。
アップグレードチェックが数回失敗しました。最も重要な理由は、私が使用していたバージョンでは、必要な状態で完了していなかったタスクがずっと前から残っていたということです。 foreman-rake
を使用してこれらのタスクをクリアすることができました コマンド:
# /usr/bin/foreman-rake foreman_tasks:cleanup TASK_SEARCH='label = Actions::Katello::Repository::MetadataGenerate' STATES='running,pending,stopped' VERBOSE=true
foreman-maintain
のように 上記のコマンド、foreman-rake
コマンドは、アップグレードチェックの出力によって異なる場合があります。
最終的に、アップグレード自体を実行する準備が整うようになりました。賢明な方法として、同じコマンドを使用して実際のアップグレードを実行しますが、変更が1つあります。 check
という単語 run
になります :
# /usr/bin/foreman-maintain upgrade run --target-version 6.4.z
アップグレードは成功しました。この結果は、システム管理者が利用できるアップグレード前のテストとチェックに少なからず起因していました。このステップは、衛星などのミッションクリティカルなシステムにとって重要な考慮事項です。
upgrade
コマンド自体が有用な出力を提供します。この出力は、foreman-maintain
によって生成されたログにあります。 :
=============================================
Upgrade Step 3/10: katello:clean_backend_objects. This may take a long while.
0 orphaned consumer id(s) found in candlepin.
Candlepin orphaned consumers: []
0 orphaned consumer id(s) found in pulp.
.....
=============================================
Upgrade Step 10/10: katello:upgrades:3.11:clear_checksum_type.
foreman-rake upgrade:run finished successfully!
Upgrade completed!
ログは重要で便利ですが、Satelliteサーバーの状態を確認するために実行できる他のチェックがあります。たとえば、次のとおりです。
# /usr/bin/foreman-maintain health check
このコマンドの出力は次のようになります(収まるように編集):
Running ForemanMaintain::Scenario::FilteredScenario
Check for verifying syntax for ISP DHCP configurations: [SKIPPED]
DHCP feature is not enabled
----------------------------------------------------------------
Check whether all services are running: [OK]
----------------------------------------------------------------
Check whether all services are running using hammer ping: [OK]
----------------------------------------------------------------
Check for paused tasks: [OK]
----------------------------------------------------------------
アップグレード後のSatelliteサーバーの状態を確認するための追加のチェックをさらに3つ示します。最初に、Satellite APIが利用可能で応答しているかどうかを確認します:
# /usr/bin/hammer ping
candlepin:
Status: ok
Server Response: Duration: 19ms
candlepin_auth:
Status: ok
Server Response: Duration: 21ms
pulp:
Status: ok
Server Response: Duration: 72ms
pulp_auth:
Status: ok
Server Response: Duration: 36ms
foreman_tasks:
Status: ok
Server Response: Duration: 5ms
2つ目は、foreman-maintain
を使用してサービスステータスを確認します systemctl
を使用してメインサービスをチェックするコマンド コマンド:
# /usr/bin/foreman-maintain service status
出力は冗長すぎてここに含めることはできませんが、systemctl
を使用するとわかります。 。
3番目のコマンドは、リポジトリを同期できることを確認します。
Content --> Product --> Repository --> <choose repo to sync>
Red Hat Satelliteサーバーのアップグレードは、ビジネスのミッションクリティカルなコンポーネントである場合、十分に困難です。サーバーが更新できる状態にあることを確認できるすべての機会を利用し、必要に応じてロールバックできるようにバックアップを作成します。私の場合、事前チェックと事後チェックの出力について話し合うために、サポート付きのケースを開いて、大きな助けを得ました。
私のアップグレードは役に立ちました。私のSatelliteサーバーの負荷はわずかに減少し、パフォーマンスはわずかに改善され、多くの古いスタックタスクがクリアされました。おそらく最も重要な利点は、衛星とタスクを実行するために必要な重要なコマンドについての知識を深めることでした。