Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

【Rocky Linux】「どうせ全適用するし…」と腹をくくって dnf-automatic でアップデートから再起動まで自動化した話

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

こんにちは!個人サイトのサーバー構築や保守、日々楽しんでいますか?

Linuxサーバーを運用していると、避けて通れないのが定期的なOSパッケージのアップデート(dnf update)。

「本番サーバーのアップデートを自動化して、勝手に再起動までさせるなんて怖すぎる……」

最初は誰もがそう思うはずです。筆者もずっとそう考えて、手動でコマンドを叩いていました。しかしある日、ふと気づいてしまったのです。

「……いや待てよ。手動でやってはいるけれど、毎回大して中身を検証もせず、画面に出てきた更新を『y(Yes)』で全部適用して、そのまま流れで再起動してるな。これ、自動化してもやってること同じでは?」

そう思い至り、個人運用のサイトということもあって、思い切って dnf-automatic を使った「完全自動アップデート&自動再起動」の設定を導入してみました!

スポンサーリンク
バッチ処理の自動化スキルは市場価値が高いです。今の自分の単価を調べてみませんか?
顧客常駐はもう嫌だ!社内SEへ転職するなら【社内SE転職ナビ】
Cursor・Claude Code・Codex AIスキルを学ぶなら
環境構築不要!AIエージェント開発を非エンジニアでも即実践【AI Agent Camp】

1. 自動化にあたって考えた「本当のリスク」

もちろん、完全なノー検証で自動化することへの不安がゼロだったわけではありません。ただ、自分の中でリスクを以下のように整理しました。

➔ OS(Rocky Linux)側の検証は信頼できる

Rocky Linuxのようなエンタープライズ向けのOSであれば、配布されるアップデート用パッケージは大元で厳しい検証をクリアしているはずです。そのため、OSのピュアなソフトウェアのバグでシステムが全壊する確率はかなり低いと考えられます。

➔ 本当に怖いのは「VPS基盤のハード・ソフトとの相性」

もし自動アップデート後にサーバーが立ち上がらなくなるような障害が起きるとしたら、原因はOSそのものよりも、「各社VPS(仮想サーバー)の基盤ハードウェアや、ハイパーバイザー(仮想化ソフト)との相性問題」ではないでしょうか。

特定のカーネルアップデートが、VPS側のネットワークドライバやストレージ制御とバッティングして不穏な動きをする……。こればかりは環境依存なので、手動でやっても自動でやっても、起きるときは起きます。

「個人サイトだし、万が一のときはバックアップから戻せばいいか!」と割り切り、利便性とセキュリティを最優先して自動化に踏み切りました。

2. dnf-automatic で自動更新&再起動を設定する手順

ここからは、実際にRocky Linuxに dnf-automatic を導入し、必要に応じて自動再起動まで行うための基本設定の手順です。

ステップ①:インストール

まずはパッケージをインストールします。

Bash

$ sudo dnf install dnf-automatic

ステップ②:設定ファイルの編集(自動適用と再起動)

設定ファイル /etc/dnf/automatic.conf をテキストエディタで開き、以下のように編集します。

Ini, TOML

[commands]
# アップグレードをダウンロードするだけでなく、自動で適用(インストール)する
apply_updates = yes

[reboot]
# アップデート適用後、システムに再起動が必要な場合は自動で再起動する
reboot = when-needed

reboot = when-needed にしておくことで、カーネル(kernel)の更新など「再起動しないと有効にならない致命的なアップデート」があったときだけ、賢く再起動をかけてくれます。

ステップ③:タイマーの有効化と起動

systemdのタイマー機能を使って、自動実行スケジュールを有効化します。

Bash

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

これで、毎日裏で自動的にチェックと更新が走るようになります。

3. 自動化してみて変わったこと

導入してしばらく経ちますが、結論から言うと「めちゃくちゃ快適で、もっと早くやればよかった」と感じています。

  • 「放置していても常に最新」という圧倒的な安心感

  • 定期的に手動でログインしてコマンドを叩く手間の解消

  • 夜間のアクセスが少ない時間帯に自動で再起動してくれるスマートさ

もちろん、企業の実務(商用環境)では一発アウトになりかねない運用ですが、ステージング環境や個人開発のWebサーバー、個人のテックブログ用サーバーであれば、費用対効果(手間の削減)は抜群に高いです。

まとめ

アップデートの自動化は確かに最初は怖いですが、「手動のときも、結局何も見ずに全適用して再起動していた」という自覚があるなら、dnf-automaticにその作業を丸投げしてしまうのは大いにアリな選択肢です。

VPS基盤との相性リスクに備えて、「VPS側での自動バックアップ(スナップショット)※追加のお金かかるけど」さえ定期的にセットしておけば、怖いものは何もありません。

サーバー保守の手間を少しでも減らして、コンテンツ作成や開発の時間を増やしたい方は、ぜひ “自動化の沼” に一歩踏み出してみてはいかがでしょうか?

RockyLinux9.6

# Whether updates should be downloaded when they are available, by
# dnf-automatic.timer. notifyonly.timer, download.timer and
# install.timer override this setting.
download_updates = yes

# Whether updates should be applied when they are available, by
# dnf-automatic.timer. notifyonly.timer, download.timer and
# install.timer override this setting.
#apply_updates = no
apply_updates = yes

# When the system should reboot following upgrades:
# never                              = don't reboot after upgrades
# when-changed                       = reboot after any changes
# when-needed                        = reboot when necessary to apply changes
#reboot = never
reboot = when-needed

# The command that is run to trigger a system reboot.
reboot_command = "shutdown -r +5 'Rebooting after applying package updates'"

RockyLinux8.10だとrebootに関する記述がないが、書けば動作するのか?ちなみにそれぞれのバージョンは以下の通り

# dnf info dnf-automatic
Last metadata expiration check: 2:51:45 ago on Tue 19 Aug 2025 02:11:30 PM JST.
Installed Packages
Name         : dnf-automatic
Version      : 4.7.0
Release      : 21.el8_10
Architecture : noarch
Size         : 53 k
Source       : dnf-4.7.0-21.el8_10.src.rpm
Repository   : @System
From repo    : baseos
Summary      : Package manager - automated upgrades
URL          : https://github.com/rpm-software-management/dnf
License      : GPLv2+
Description  : Systemd units that can periodically download package upgrades and
             : apply them.

# dnf info dnf-automatic
Last metadata expiration check: 2:38:05 ago on Tue 19 Aug 2025 03:00:37 PM JST.
Installed Packages
Name         : dnf-automatic
Version      : 4.14.0
Release      : 25.el9
Architecture : noarch
Size         : 57 k
Source       : dnf-4.14.0-25.el9.src.rpm
Repository   : @System
From repo    : baseos
Summary      : Package manager - automated upgrades
URL          : https://github.com/rpm-software-management/dnf
License      : GPLv2+
Description  : Systemd units that can periodically download package upgrades and
             : apply them.

Rocky Linux release 8.10 dnf-automatic – Rocky Linux Help & Support – Rocky Linux Forum

によると、Rocky Linux8のdnfではだめっぽい。

dnf-automatic on Rocky Linux 8 does not reboot a system after applying updates as it does not support this feature. There’s no configuration changes you’ll need to make.

updateが適用された時の通知メール

The following updates have been applied on 'XXXXXX':
================================================================================
 Package                Arch      Version                    Repository    Size
================================================================================
Installing:
 kernel                 x86_64    5.14.0-570.33.2.el9_6      baseos       1.8 M
 kernel-core            x86_64    5.14.0-570.33.2.el9_6      baseos        18 M
 kernel-modules         x86_64    5.14.0-570.33.2.el9_6      baseos        39 M
 kernel-modules-core    x86_64    5.14.0-570.33.2.el9_6      baseos        31 M
Upgrading:
 kernel-headers         x86_64    5.14.0-570.33.2.el9_6      appstream    3.3 M
 kernel-tools           x86_64    5.14.0-570.33.2.el9_6      baseos       2.1 M
 kernel-tools-libs      x86_64    5.14.0-570.33.2.el9_6      baseos       1.8 M
 libarchive             x86_64    3.5.3-6.el9_6              baseos       387 k
Removing:
 kernel                 x86_64    5.14.0-570.28.1.el9_6      @baseos        0 
 kernel-core            x86_64    5.14.0-570.28.1.el9_6      @baseos       68 M
 kernel-modules         x86_64    5.14.0-570.28.1.el9_6      @baseos       36 M
 kernel-modules-core    x86_64    5.14.0-570.28.1.el9_6      @baseos       28 M

Transaction Summary
================================================================================
Install  4 Packages
Upgrade  4 Packages
Remove   4 Packages

Updates completed at Mon 25 Aug 2025 09:14:06 AM JST

 

 

タイトルとURLをコピーしました