OMS エージェントが原因でCent OSのyum updateが失敗する
ある日からCent OS 7のAzure VMのyum updateがエラーになるようになってしまいました。
原因を調べてみると、OMSエージェント関連のパッケージの影響でエラーになっていたようです。
実際に発生した事象と対応した内容を残しておきます。
ある日突然Azure VMでyum updateが失敗するようになる
定期的にyum updateを実施していたのですが、ある日から失敗し続けていました。
実際に手動でアップデートを実施した所、以下のメッセージが表示されました。
[ユーザー名@host名 ]$ yum -y update Downloading packages: 提案: 「yum –enablerepo=packages-microsoft-com-prod clean metadata」の実行 Error downloading packages: |
最初にエラーメッセージ内で提案された、yum –enablerepo=packages-microsoft-com-prod clean metadataを実行してみたのですが、事象は改善しませんでした。
パッケージ名がscxであり、かつMSのサイトからのダウンロード失敗なので、OMSエージェント関連のアップデート方法が間違っているかと考えました。
Azure VM(Cent OS)でOMSエージェントの手動アップデートをしてみる
次に手動でOMSエージェントのアップデート試してみました。
まず、マイクロソフト公式GithubでOMSエージェントの最新Verを確認します。
2020年4月23日現在の最新Verは、omsagent-1.12.15-0.universal.x64.shでしたので、これをWgetでダウンロードし、アップデートを行います。
なお、root権限を持たないユーザーの場合はsudoで実行して下さい。また今回は/tmpで作業を実施しています。
#wgetコマンドでパッケージをダウンロードします。 [ユーザー名@host名 tmp]$ wget https://github.com/microsoft/OMS-Agent-for-Linux/releases/download/OMSAgent_v1.12.15-0/omsagent-1.12.15-0.universal.x64.sh #以下のようにアップグレードコマンドを実行します。 [ユーザー名@host名 tmp]$ sh omsagent-1.12.15-0.universal.x64.sh –upgrade #成功すると最後に以下のメッセージが表示されます。エラーの場合はCodeが0以外になります。 Shell bundle exiting with code 0 #omsエージェントのサービスを再起動します。 [ユーザー名@host名 tmp]$ /opt/microsoft/omsagent/bin/service_control restart #omsエージェントのステータスを確認します。 [ユーザー名@host名 tmp]$ /opt/microsoft/omsagent/bin/omsadmin.sh -l #正常動作している場合は、Status: Onboarded(OMSAgent Running)と表示されます。 Primary Workspace: ワークスペースID Status: Onboarded(OMSAgent Running) |
これでOMSエージェントのアップデートが無事終わりました。
しかし、再度yum -y updateを行っても、最初と同じくscxのパッケージでエラーになりました。
scxパッケージをrpmコマンドで個別アップデートをしてみた
やはり個別でアップデートが必要そうという事でエラーとなっている、scxのパッケージを個別でアップデートしてみました。
まず、以下のサイトでscxのパッケージの最新Verを確認します。
2020年4月23日現在の最新Verは、scx-1.6.4-7.universal.x64.rpmでしたので、これをWgetでダウンロードし、rpmコマンドでアップデートを行います。
yumコマンド実行時のエラーメッセージで表示されているVerと同じだったのですが、yumコマンドでダウウンロードできない理由は不明です。
先ほどと同様で、root権限を持たないユーザーの場合はsudoで実行して下さい。また今回は/tmpで作業を実施しています。
#wgetコマンドでパッケージをダウンロードします。 [ユーザー名@host名 tmp]$ wget https://packages.microsoft.com/rhel/7/prod/scx-1.6.4-7.universal.x64.rpm #rpmコマンドでscxパッケージをアップグレードします。 [ユーザー名@host名 tmp]$ rpm -Uvh scx-1.6.4-7.universal.x64.rpm #omsエージェントのステータスを確認します。 [ユーザー名@host名 tmp]$ /opt/microsoft/omsagent/bin/omsadmin.sh -l #正常動作している場合は、Status: Onboarded(OMSAgent Running)と表示されます。 Primary Workspace: ワークスペースID Status: Onboarded(OMSAgent Running) |
これでSCXパッケージのアップデートが無事終わりました。
これで再度yum -y updateを行ったところ、無事出来ました。
yum.confの除外設定に入れた方が良いのかも
今回は、パッケージ自体のアップデートをを実施しましたが、yum.confに、exclude=パッケージ名と記載する事で、yum対象外にする事が可能です。
環境の状況次第ですが、場合によっては対象外としておき、個別でアップデートを実施するようにした方が良いのかもしれません。