DNFの自動アップデートを設定する(dnf-automatic)

dnf-automatic でdnf アップデートを自動実行する

CentOS 7 では、yum-cron で、パッケージのアップデートを自動実行できていましたが、CentOS 8 では「dnf-automatic」で、パッケージのダウンロードしてインストールまで自動で行ってくれます。また、更新作業の実行結果をメールで通知できる事もできます

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

dnf で「dnf-automatic」をインストールします

$ sudo dnf install dnf-automatic

/etc/dnf/automatic.conf」の設定ファイルを変更して、自動でダウンロードしてインストールするようにしまう。また、更新作業の結果はメールで送信するように設定します。

$ sudo vim /etc/dnf/automatic.conf

[commands]
upgrade_type = default
random_sleep = 0
network_online_timeout = 60
download_updates = yes
# 「no」から「yes」に変更
apply_updates = yes

[emitters]
# 「stdio」から「command_email」に変更します
emit_via = command_email 

[command_email] # dnf-automatic の結果をメール通知します設定

# コメントアウトを外す
command_format = "mail -Ssendwait -s {subject} -r {email_from} {email_to}"

# コメントアウトを外す
stdin_format = "{body}"

# 送信元のメールアドレスを設定
email_from = info@example.com

# 送信先のメールアドレスを設定
email_to = admin@example.jp

[base]
debuglevel = 1

設定内容の詳細は、以下になります

[commands]
  • upgrade_type = default アップデートするパッケージの種類を指定します。「default」では全てのパッケージで「security」の場合は、セキュリティ関連のみとなります
  • apply_updates = yes アップデート後にパッケージを適用するかの設定です。「yes」だとパッケージの反映までおこないます「no」だと反映をおこなわずにダウンロードのみとなります

[emitters]

  • emit_via アップデートの通知方法を設定します。デフォルトではstdioで、stdioは標準出力です。command_email でメールコマンドを利用して通知する方法に変更します。

[command_email]

  • command_format = “mail -Ssendwait -s {subject} -r {email_from} {email_to}" メール送信する際のメールコマンドとオプションを指定します
  • stdin_format = “{body}" メール本文のフォーマット
  • email_from 送信元のメールアドレス
  • email_to 送信先のメールアドレス

「dnf-automatic」の自動起動の設定と、サービスの起動

# 自動起動に登録
$ sudo systemctl enable --now dnf-automatic.timer

# サービスの起動
$ sudo systemctl status dnf-automatic.timer

「dnf-automatic」で実行されるタイミングは「/etc/systemd/system/timers.target.wants/dnf-automatic.timer」で設定されています。下記の設定では毎日6時に実行されます

$ 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

 

スポンサーリンク

0
0

LinuxCentOS 8

Posted by admin