certbot renewでのSSL/TLS証明書更新でrandom sleepを無効にする
|
certbot renew
コマンドを cron で自動実行されるよう設定していたのですが、うまく実行できていないようでした。
cron のログなど調べていたところ、random sleep なる機能が原因で実行されなかったことに気づきました。
Certbot の random sleep 機能について
最近の certbot は random sleep
という機能が実装されています。
コマンド実行後、ランダムで算出された時間分、処理を遅らせて実行する機能です。
これがそこそこ長く(100~500s くらい)、cron でタイムアウトしてしまったと推測しています(軽く調べたが cron のデフォルトのタイムアウト時間が分からず、別の原因の可能性もある)。
解決策
certbot の random sleep を無効にするか、cron の timeout を長めに設定すれば OK ですね。
# random sleepを無効にしてcertbot renewを実行
certbot renew --no-random-sleep-on-renew
# cronでtimeoutを設定(1000s)
30 * * * * timeout 1000 hogehoge.sh
まとめ
これで random sleep に悩まされずにすみそうです。やったぜ。