本文へ移動
vast-cowのブログ
前のページへ戻る

`dnf-automatic` を使用して Rocky Linux 9 を最新の状態に保つ

この記事を編集

システムを最新の状態に維持することは、セキュリティ、安定性、およびパフォーマンスを確保するために最も重要な作業の一つです。Rocky Linux 9.6 では、dnf-automatic パッケージを使用することで、利用可能な更新を定期的に確認し、管理者への通知、パッケージのダウンロード、または更新の自動インストールを実行できます。

このガイドでは、インストール、設定、自動更新の構成、およびパッケージのダウンロードやインストールを行わずに MOTD を使用して通知のみを行う構成について説明します。


1. dnf-automatic をインストールする

dnf-automatic はデフォルトではインストールされていません。次のコマンドでインストールします。

sudo dnf install -y dnf-automatic

2. dnf-automatic を設定する

メインの設定ファイルは次の場所にあります。

/etc/dnf/automatic.conf

お好みのテキストエディタで開きます。

sudo nano /etc/dnf/automatic.conf

主な設定項目

更新の種類

upgrade_type は、どの種類の更新を検出するかを指定します。

[commands]
upgrade_type = security

指定できる値は次のとおりです。

更新パッケージのダウンロード

パッケージを自動的にダウンロードする場合は、次のように設定します。

download_updates = yes

自動ダウンロードを無効にする場合は、次のように設定します。

download_updates = no

更新の自動適用

利用可能な更新を自動的にインストールする場合は、次のように設定します。

apply_updates = yes

自動インストールを無効にする場合は、次のように設定します。

apply_updates = no

apply_updates = yes を設定する場合は、パッケージのダウンロードも有効になっている必要があります。

Emitters(通知方法)

[emitters] セクションでは、結果の通知方法を指定します。利用できる通知方法には、標準出力、メール、カスタムコマンド、および MOTD があります。

たとえば、MOTD を使用して通知する場合は次のように設定します。

[emitters]
emit_via = motd

MOTD エミッターは更新結果を /etc/motd に書き込み、SSH やローカルコンソールでログインした際に管理者が確認できるようにします。


3. 自動更新を有効にする

汎用の dnf-automatic.timer は、/etc/dnf/automatic.conf に設定された内容に従って動作します。

たとえば、セキュリティ更新を自動的にダウンロードしてインストールする場合は、次のように設定します。

[commands]
upgrade_type = security
download_updates = yes
apply_updates = yes

その後、タイマーを有効化して起動します。

sudo systemctl enable --now dnf-automatic.timer

これにより、dnf-automatic は設定ファイルに従って更新を確認し、必要な処理を実行します。


4. MOTD を使用した通知のみの構成

パッケージをダウンロードまたはインストールせず、利用可能な更新だけを管理者へ通知する場合は、dnf-automatic を MOTD エミッターで構成します。

/etc/dnf/automatic.conf を編集します。

sudo nano /etc/dnf/automatic.conf

次のように設定します。

[commands]
upgrade_type = security
download_updates = no
apply_updates = no

[emitters]
emit_via = motd

この構成では次の動作を行います。

通知専用タイマーを有効にします。

sudo systemctl enable --now dnf-automatic-notifyonly.timer

dnf-automatic-notifyonly.timer は、ダウンロードおよびインストール動作を上書きし、通知のみを実行します。download_updates = no および apply_updates = no を設定ファイルに明示的に記述しておくことで、設定内容が分かりやすくなり、汎用タイマーを使用した場合でも安全なデフォルトとして機能します。

ダウンロードおよびインストール用タイマーを無効にする

他の dnf-automatic タイマーによってパッケージがダウンロードまたはインストールされないようにするため、汎用タイマー、ダウンロードタイマー、およびインストールタイマーを無効にします。

sudo systemctl disable --now dnf-automatic.timer
sudo systemctl disable --now dnf-automatic-download.timer
sudo systemctl disable --now dnf-automatic-install.timer

その後、通知専用タイマーのみを有効にします。

sudo systemctl enable --now dnf-automatic-notifyonly.timer

有効になっているタイマーを確認します。

systemctl list-timers --all | grep dnf-automatic

通知専用構成では、dnf-automatic-notifyonly.timer のみが有効になっていることを確認してください。

MOTD の出力を確認する

設定をテストするためにサービスを手動で実行します。

sudo systemctl start dnf-automatic-notifyonly.service

生成された MOTD を表示します。

cat /etc/motd

システムのログイン設定で /etc/motd が表示されるようになっていれば、次回 SSH またはローカルコンソールでログインした際にも同じ内容が表示されます。

注: 更新の確認では、リポジトリメタデータの更新または読み込みが必要です。通知専用構成では RPM パッケージのダウンロードは行われませんが、リポジトリメタデータの通信自体は発生します。


5. その他のタイマーモード

dnf-automatic には、用途に応じた複数の systemd タイマーが用意されています。

/etc/dnf/automatic.conf の設定に従う

sudo systemctl enable --now dnf-automatic.timer

通知のみ

更新を確認し、ダウンロードやインストールを行わずに結果だけを通知します。

sudo systemctl enable --now dnf-automatic-notifyonly.timer

ダウンロードのみ

利用可能な更新パッケージをダウンロードしますが、インストールは行いません。

sudo systemctl enable --now dnf-automatic-download.timer

ダウンロードとインストール

更新パッケージをダウンロードし、そのままインストールします。

sudo systemctl enable --now dnf-automatic-install.timer

これらの専用タイマーは、/etc/dnf/automatic.conf に設定されたダウンロードおよびインストールに関する項目を必要に応じて上書きして動作します。


6. 動作確認とトラブルシューティング

通知専用タイマーの状態を確認します。

systemctl status dnf-automatic-notifyonly.timer

次回の実行予定を確認します。

systemctl list-timers --all | grep dnf-automatic

サービスログを確認します。

journalctl -u dnf-automatic-notifyonly.service

dnf-automatic に関連するすべてのログを確認します。

journalctl -u 'dnf-automatic*'

各タイマーが有効かどうかを確認します。

systemctl is-enabled dnf-automatic.timer
systemctl is-enabled dnf-automatic-notifyonly.timer
systemctl is-enabled dnf-automatic-download.timer
systemctl is-enabled dnf-automatic-install.timer

通知専用構成では、期待される結果は次のとおりです。

disabled
enabled
disabled
disabled

まとめ

Rocky Linux 9.6 では、dnf-automatic を次のような用途に応じて利用できます。

パッケージをダウンロードせず、通知のみを行う構成は次のとおりです。

[commands]
upgrade_type = security
download_updates = no
apply_updates = no

[emitters]
emit_via = motd

有効にするタイマーは次のものだけです。

sudo systemctl enable --now dnf-automatic-notifyonly.timer

この構成では、利用可能なセキュリティ更新が MOTD を通じて通知され、パッケージのダウンロードおよびインストールは手動管理のまま維持されます。


この記事を編集
この記事を共有:

コメント


前の記事
Rocky Linux 9へUEKを導入する手順(Oracleリポジトリ最小利用)
次の記事
Rocky Linux 9 で FFmpeg + Intel QSV を使うためのセットアップとトラブルシューティング