9 yum-cronインタフェースの使用によるシステムの最新状態の自動維持

yum updateコマンドを手動で実行して最新のセキュリティ・パッチおよび不具合修正でシステムを最新状態に保つかわりに、Oracle Linuxで追加パッケージとして提供されるyum-cronインタフェースを使用できます。このインタフェースを使用して、更新の自動通知を提供し、更新をダウンロードします。更新は、crontabを使用して自動的にインストールできます。

使用を開始するには、ol7_latestリポジトリからyum-cronパッケージをインストールします。次に、サービスを有効にして開始し、更新を毎日チェックするようにします。

sudo yum install yum-cron
sudo systemctl enable --now yum-cron.service            

yum-cronインタフェースの動作をカスタマイズするには、/etc/yum/yum-cron.confを編集します。必要に応じて、様々なスケジュールで起動可能な代替構成ファイルを作成できます。Oracle Linuxでは、/etc/yum/yum-cron-hourly.confに代替構成ファイルも含まれています。デフォルトでは、yum-cronを実行すると、その構成が/etc/yum/yum-cron.confからロードされます。その実行時に代替構成が引数として提供された場合は例外です。

Oracle Linuxでは、yum-cronのインストール時に、デフォルトで2つのcrontabエントリが作成されます。これらは、/etc/cron.daily/0yum-daily.cronおよび/etc/cron.hourly/0yum-hourly.cronにあります。日次のcrontabエントリでは、/etc/yum/yum-cron.confにあるデフォルト構成を使用してyum-cronが実行されます。毎時のcrontabエントリでは、/etc/yum/yum-cron-hourly.confにある代替構成を使用してyum-cronが実行されます。複数の構成エントリとcrontabエントリを作成することで、様々なyum更新操作が実行される頻度を制御できます。たとえば、yumリポジトリ・メタデータを毎時間更新し、重要なセキュリティ更新を毎日適用できます。残りすべての更新を毎週または毎月適用するように構成を作成することもできます。

構成ファイルでは、yum-cronで管理する更新の種類、更新を適用するかダウンロードのみにするか、および更新の通知方法を制御するために、様々なパラメータを構成できます。デフォルトの構成ファイルには、各設定の説明を提供するコメントが付けられています。次の設定は重要です。

  • update_cmd

    このオプションは、yum- cronでダウンロードまたは適用される更新のタイプを制御します。次のオプションを使用できます。

    default

    すべての更新をフェッチします。

    security

    セキュリティ更新のみをフェッチします。

    security-severity:Critical

    重大度がCriticalのセキュリティ更新のみをフェッチします。

    minimal

    パッケージ更新情報バージョンの更新のみをフェッチします。

    minimal-security

    セキュリティ更新のみとしてマークされたパッケージ更新情報バージョンをフェッチします。

    minimal-security-severity:Critical

    重大度がCriticalのセキュリティ更新としてマークされたパッケージ更新情報バージョンをフェッチします。

    更新を適用するための停止時間をスケジュールする必要がある基幹システムの場合、重大度Criticalを指定することで、最小限のセキュリティ更新のみをインストールするようにyum-cronに指示できます。次に例を示します。

    update_cmd = minimal-security-severity:Critical
                      

    カーネル・パッチおよび更新のための予定停止時間を最小限に抑える場合は、Oracle Kspliceの使用も検討してください。詳細は、Oracle Linux: Kspliceユーザーズ・ガイドの「Kspliceについて」を参照してください。

  • apply_updates

    デフォルトでは、yum-cronインタフェースはdownload_updates設定が指定されている場合、更新をダウンロードします。ただし、それらは適用されません。この動作を変更するには、次のようにapply_updates設定を変更します。

    apply_updates = yes                
  • exclude

    特定のパッケージの更新を回避するには、exclude設定でワイルドカードを使用します。たとえば、カーネル更新を除外するには、この値を次のように設定します。

    exclude = kernel*               
  • update_messages

    新しい更新の通知を受信するかどうかを制御するには、この値を次のように設定できます。

    update_messages = yes               
  • emit_via

    デフォルトでは、yum-cronstdioに通知を出力するように構成されています。これは、メッセージが/var/log/cronに出力されることを意味します。この値をNoneに設定するか、空のままにすると、通知を無効にできます。電子メール通知を受信する場合は、この値をemailに設定できますが、後でこの構成内で[email]設定も構成する必要があります。

  • [email]

    yum-cronで、SMTPを使用してソフトウェア更新に関する電子メール通知を提供できます。これを有効にするには、emit_via構成値を設定します。この構成には、電子メール通知で使用する送信者アドレスと宛先アドレス、およびyum-cronでメールの送信に使用するSMTPサーバーなどの電子メール・パラメータを指定できるセクションが含まれています。たとえば、次のようにこれを構成できます。

    [email]
    email_from = server@example.com
    email_to = admin@example.com
    email_host = smtp.example.com

yum-cronの詳細は、yum-cron(8)マニュアル・ページ、およびデフォルト構成ファイル内のコメントを参照してください。