Contents
概要
dnf-automaticを使用して日次で自動アップデートを行います。アップデートが発生した場合はメールで通知します。
前提条件
OS
CentOS Stream 8を使用します。
SELinux
有効です。無効にする場合はこちらを参照して下さい。
Firewalld
無効です。有効化する場合はこちらを参照して必要な許可設定をして下さい。
設定
インストール
dnf-automaticをインストールします。
[root@centos ~]# dnf install dnf-automatic
/etc/dnf/automatic.conf
/etc/dnf/automatic.confのデフォルト値
コメント行等を削除したautomatic.confは下記の通りです。
[commands] upgrade_type = default random_sleep = 0 network_online_timeout = 60 download_updates = yes apply_updates = no [emitters] emit_via = stdio [email] email_from = root@example.com email_to = root email_host = localhost [command] [command_email] email_from = root@example.com email_to = root [base] debuglevel = 1
/etc/dnf/automatic.confの設定
automatic.confを下記のように編集します。[command]セクションは空の為、削除しています。[command_email]セクションはメール通知のコマンドラインをある程度指定できるようですが、[email]セクションと重複する設定値が存在する意味が良く分からないので削除しています。
[root@centos ~]# vi /etc/dnf/automatic.conf [commands] upgrade_type = default random_sleep = 0 network_online_timeout = 60 download_updates = yes apply_updates = yes [emitters] emit_via = email [email] email_from = root@myhost.si1230.com email_to = myadmin@si1230.com email_host = smtp.si1230.com [base] debuglevel = 1
[commands]セクション
- apply_updates
- アップデートの反映有無を設定します。デフォルトはnoでアップデートの確認までとなっている為、反映まで行いたい場合はyesに変更します。
[emitters]セクション
- emit_via
- アップデートの通知方法を設定します。デフォルトではstdioとなっており、stdioは標準出力です。emailに変更するとメール通知となります。
[email]セクション
- email_from
- 送信元のメールアドレスを設定します。@以降はFQDNとしたほうがどのホストからの通知か分かりやすいですね。
- email_to
- 宛先メールアドレスを設定します。
- email_host
- SMTPサーバーを設定します。
サービス起動設定
dnf-automaticはデフォルトで起動していません。下記のコマンドでdnf-automaticを起動します。
[root@centos ~]# systemctl enable --now dnf-automatic.timer [root@centos ~]# systemctl status dnf-automatic.timer
その他
dnf-automaticはsystemdのtimerで制御されていますので、実行時間はsystemdの設定ファイルで確認できます。下記の通り毎日6時に実行されます。
[root@centos ~]# cat /etc/systemd/system/timers.target.wants/dnf-automatic.timer
[Unit]
Description=dnf-automatic timer
# See comment in dnf-makecache.service
ConditionPathExists=!/run/ostree-booted
Wants=network-online.target
[Timer]
OnCalendar=*-*-* 6:00
RandomizedDelaySec=60m
Persistent=true
[Install]
WantedBy=timers.target
CentOS 8 dnf-automatic を使用した自動更新