annotate etc/periodic/weekly/800.local-certbot-post-deploy @ 387:9921352225a9

Weekly periodic script to execute an action when any of given files are readable. Intended to trigger host-level actions after certbot actions in jails.
author Franz Glasner <fzglas.hg@dom66.de>
date Thu, 23 Feb 2023 09:08:20 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
387
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
1 #!/bin/sh
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
2 # -*- indent-tabs-mode: nil; -*-
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
3 #
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
4 # @(#)@@SIMPLEVERSIONTAG@@
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
5 #
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
6 # Weekly script to indirectly trigger post deploy actions
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
7 #
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
8 # Must be executed **after** 500.certbot.
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
9 # Otherwise an extra week of delay is encountered.
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
10 #
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
11
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
12 # If there is a global system configuration file, suck it in.
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
13 if [ -r /etc/defaults/periodic.conf ]
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
14 then
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
15 . /etc/defaults/periodic.conf
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
16 source_periodic_confs
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
17 fi
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
18
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
19 : ${weekly_local_certbot_post_deploy_enable:=NO}
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
20 : ${weekly_local_certbot_post_deploy_files:=}
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
21 # e.g. "service nginx onestatus"
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
22 : ${weekly_local_certbot_post_deploy_condition:=}
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
23 # e.g. "service nginx reload"
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
24 : ${weekly_local_certbot_post_deploy_action:=}
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
25 : ${weekly_local_certbot_post_deploy_files_remove:=YES}
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
26
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
27 case "${weekly_local_certbot_post_deploy_enable}" in
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
28 [Yy][Ee][Ss])
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
29 echo
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
30 echo "Testing for newly renewed Let's Encrypt certificates"
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
31
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
32 rc=0
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
33
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
34 _do_action=""
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
35 _remove_files=""
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
36
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
37 for _f in ${weekly_local_certbot_post_deploy_files}; do
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
38 if [ -r "${_f}" ]; then
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
39 _do_action="yes"
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
40 case "${weekly_local_certbot_post_deploy_files_remove}" in
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
41 [Yy][Ee][Ss])
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
42 _remove_files="${_remove_files} ${_f}"
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
43 ;;
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
44 esac
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
45 fi
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
46 done
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
47
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
48 if [ "${_do_action}" = "yes" ]; then
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
49 if [ -z "${weekly_local_certbot_post_deploy_action}" ]; then
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
50 echo "ERROR: no deploy action defined" 1>&2
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
51 exit 2
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
52 fi
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
53
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
54 echo "Deploying newly renewed Let's Encrypt certificates"
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
55 if [ -n "${weekly_local_certbot_post_deploy_condition}" ]; then
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
56 if ${weekly_local_certbot_post_deploy_condition} ; then
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
57 ${weekly_local_certbot_post_deploy_action}
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
58 rc=$?
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
59 else
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
60 rc=1
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
61 fi
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
62 else
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
63 ${weekly_local_certbot_post_deploy_action}
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
64 rc=$?
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
65 fi
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
66
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
67 # Remove trigger files if configured to do so
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
68 if [ ${rc} -eq 0 ]; then
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
69 echo "Removing trigger files..."
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
70 for _rf in ${_remove_files}; do
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
71 rm -fv "${_rf}"
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
72 done
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
73 fi
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
74 else
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
75 echo "No newly renewed Let's Encrypt certificates found"
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
76 fi
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
77 ;;
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
78
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
79 *)
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
80 rc=0
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
81 ;;
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
82 esac
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
83
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
84 exit ${rc}