仮想マシンのオペレーティング・システムの更新
Oracle Data Infrastructure Cloud@Customer上の仮想マシンには、Oracle OS Management Hubを介してdnfが構成されています。この記事では、dnfを使用してVM内からOracle Linuxパッケージ更新を適用する方法について説明します。この手順では、Oracle Grid InfrastructureまたはOracle AI Databaseソフトウェアは更新されません。これらの更新については、VMクラスタのGrid Infrastructureの更新およびデータベース・ホームの更新を参照してください。
Oracle Data Infrastructure Cloud@Customer上のVMには、VMを再起動せずに、サポートされているカーネルおよびユーザー領域のセキュリティ更新用のKspliceが含まれています。Kspliceはデフォルトで無効になっています。有効にするには、自動Ksplice更新の構成のスクリプトを使用します。
開始する前に
- メンテナンス・ウィンドウを計画します。一部のパッケージ更新では再起動が必要で、VMで実行されているアプリケーションまたはデータベースが中断される可能性があります。
- 2ノードのVMクラスタの場合は、一度に1つのVMを更新します。他のVMを更新する前に、クラスタおよびデータベースのヘルスを確認してください。
- VMは、システムおよびCPSネットワークを介してOracle OS Management Hub
yumリポジトリにアクセスするように構成されます。ネットワーク要件については、Network Setupを参照してください。これらのリポジトリにアクセスするために追加の構成は必要ありません。 - サード・パーティ・リポジトリを構成する場合は、VMがクライアント・ネットワークを介してそれにアクセスできることを確認します。
sudo権限を持つopcユーザーとしてVMに接続します。
オペレーティング・システム・パッケージ更新の適用
-
SSHを使用してVMに接続します。
-
利用可能な更新を確認する:
sudo dnf check-updatednfコマンドは、VMで有効になっているリポジトリから使用可能なパッケージ更新をリストします。リストを確認し、有効なリポジトリがこのVMに適していることを確認します。 -
更新が使用可能なすべてのインストール済パッケージを更新するには、次を実行します:
sudo dnf upgrade提案されたトランザクションをレビューし、続行することを確認します。
1つのパッケージと必要な依存関係を更新するには、パッケージ名を指定します。たとえば、
bashパッケージを更新するには、次を実行します:sudo dnf upgrade bashdnfコマンドの詳細は、DNFコマンド・リファレンスおよびOracle Linuxでのソフトウェアの更新を参照してください。 -
多くのパッケージが更新された場合、Oracleでは、更新されたバージョンでコア・パッケージが実行されるようにVMを再起動することをお薦めします。再起動が必要かどうかを確認するには、次を実行します。
sudo dnf needs-restarting -r -
再起動が必要な場合は、計画メンテナンス・ウィンドウ中にVMを再起動し、そのアプリケーションおよびデータベースが後から使用可能であることを確認します。
追加のOracle Linuxリポジトリの構成
Oracle OS Management Hub (OSMH)は、/etc/yum.repos.d/osmh.repoのリポジトリ構成を管理します。このファイルにリポジトリを追加しないでください。別のリポジトリ・ファイルにリポジトリを追加します。
-
Oracle Linux Yum Serverで、VMのOracle LinuxリリースのリポジトリURLを取得します。
-
VMで使用するURLを変換します。
yum.oracle.comを、VMで提供されているdnf変数${oci_osmh_yum}に置き換えます。- URLの末尾から
index.htmlを削除します。 - リポジトリ・パスのリストアは変更しません。
たとえば、次の形式のURL:
https://yum.oracle.com/repo/OracleLinux/OL8/<repository>/x86_64/index.html次のようになります。
https://${oci_osmh_yum}/repo/OracleLinux/OL8/<repository>/x86_64/ -
/etc/yum.repos.d/additional.repoなどの個別のリポジトリ・ファイルを作成または編集し、一意の名前のリポジトリ・エントリを追加します。たとえば:[additional_repo] name=<repository_name> baseurl=https://${oci_osmh_yum}/repo/OracleLinux/OL8/<repository>/x86_64/ sslverify=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle gpgcheck=1 enabled=1 -
リポジトリ・メタデータをリフレッシュし、リポジトリを確認します。
sudo dnf --refresh repoinfo additional_repo
サード・パーティ・リポジトリの構成
サード・パーティのソフトウェア・ベンダーが提供するリポジトリURLおよびGPGキーを使用します。一部のベンダーは、リポジトリ・ファイルを構成し、GPGキーをインストールまたは構成するRPMを提供します。ベンダーが提供する場合は、ベンダーのドキュメントに従ってインストールし、構成します。それ以外の場合は、リポジトリを別の.repoファイルに追加し、/etc/yum.repos.d/osmh.repoに追加しないでください。次のサンプルURLを、ベンダーの実際のリポジトリおよびキーURLに置き換えます。
ネットワーク・アクセス:サード・パーティのリポジトリには、VMのクライアント・ネットワークを介してアクセスする必要があります。サード・パーティのリポジトリ・ホストがそのネットワークを介してアクセス可能であり、必要なルート、DNSおよびファイアウォール・アクセスが構成されていることを確認します。クライアントネットワークにプロキシが必要な場合は、リポジトリの proxyオプションを承認済みのクライアントネットワークプロキシに設定します。直接アクセスするには、リポジトリ・エントリでproxy=を設定して、Oracle OS Management Hub統合のために/etc/dnf/dnf.confから継承されたプロキシを無効にします。詳細は、DNF Configuration Referenceを参照してください。
-
/etc/yum.repos.d/third-party.repoなどのリポジトリ・ファイルを作成し、一意の名前のリポジトリ・エントリを追加します。[third_party_example] name=Example third-party repository baseurl=https://repo.example.com/oraclelinux/8/$basearch/ proxy= enabled=1 gpgcheck=1 gpgkey=https://repo.example.com/keys/RPM-GPG-KEY-example sslverify=1パッケージ署名チェックを有効のままにし、ベンダーによって公開されたGPGキーを使用します。
-
リポジトリ・メタデータをリフレッシュし、リポジトリを確認します。
sudo dnf --refresh repoinfo third_party_example
詳細については、Managing custom software repositoriesを参照してください。
自動Ksplice更新の構成
Kspliceでは、再起動せずに、サポートされているカーネルおよびユーザー領域のセキュリティ更新を適用できます。次のスクリプトは、VMでの自動Ksplice更新を有効または無効にします。適切なスクリプトを実行し、プロンプトが表示されたらkernel、userspaceまたはallを入力します。デフォルトの選択はkernelです。
有効にすると、自動Ksplice更新によって、VMの起動時およびその後毎日1回、選択したコンポーネントの使用可能な更新がチェックされ、適用されます。これにより、再起動しなくても、サポートされているカーネルおよびユーザー空間のパッケージが最新の状態に保たれます。
ノート: Kspliceユーザー領域の更新が正常に適用されるようにするには、まずKsplice対応のglibcおよびopensslパッケージをインストールします。次のコマンドを実行して、有効なリポジトリからシステム・パッケージを更新します:
sudo dnf update glibc openssl
自動アップデートを有効にする:
sudo /opt/oracle/datainfracc/utils/enable_automatic_ksplice_updates.sh
自動更新を無効にする:
sudo /opt/oracle/datainfracc/utils/disable_automatic_ksplice_updates.sh
詳細は、オフライン・モード用のKsplice拡張クライアントの構成およびオフライン・モード用のKsplice Uptrackサーバーの構成を参照してください。