debian.ansible.autoupdate/autoupdate.yml

91 lines
3.3 KiB
YAML
Raw Normal View History

2022-07-10 10:48:13 +02:00
---
- name: Autoupdate
hosts: all
tasks:
- name: Create updates dir /usr/local/sbin/autoupdate.d
ansible.builtin.file:
path: /usr/local/sbin/autoupdate.d
owner: root
group: root
state: directory
mode: "0700"
- name: /usr/local/sbin/autoupdate.sh
blockinfile:
path: /usr/local/sbin/autoupdate.sh
mode: "0500"
owner: root
group: root
create: yes
marker: "# {mark} ANSIBLE MANAGED BLOCK"
block: |
. /etc/bash/gaboshlib.include
g_nice
g_lockfile
g_all-to-syslog
set -o pipefail
find /usr/local/sbin/autoupdate.d -name "*.update" -type f | sort | while read update
do
g_echo "Running: $update"
. "$update"
sleep 60
done
backup: yes
validate: /bin/bash -n %s
- name: /usr/local/sbin/autoupdate.sh shebang
lineinfile:
path: /usr/local/sbin/autoupdate.sh
insertbefore: BOF
line: "#!/bin/bash"
- name: /usr/local/sbin/autoupdate.d/debian.update
blockinfile:
path: /usr/local/sbin/autoupdate.d/debian.update
mode: "0400"
owner: root
group: root
create: yes
marker: "# {mark} ANSIBLE MANAGED BLOCK"
block: |
g_echo_ok "Prüfe auf Systemupdates"
apt-get update || g_echo_error "apt-get update fehlgeschlagen"
if ! apt-get -s dist-upgrade 2>&1 | sed -e "s/'/'\\\\''/g; 1s/^/'/; \$s/\$/'/" | tee $g_tmp/sys-updatelist | egrep "^0.+, 0 .+, 0 .+ 0 .+\."
then
g_echo_warn "Systemupdate wird eingespielt: $(cat $g_tmp/sys-updatelist)"
DEBIAN_FRONTEND=noninteractive apt-get -yy dist-upgrade | sed -e "s/'/'\\\\''/g; 1s/^/'/; \$s/\$/'/" | tee $g_tmp/sys-update || g_echo_error "apt-get -yy dist-upgrade failed $($g_tmp/sys-update)"
DEBIAN_FRONTEND=noninteractive needrestart -b -r a | egrep -q "^NEEDRESTART-KSTA: [2|3]" && g_echo_warn "Server Reboot benötigt"
fi
2022-09-21 17:41:33 +02:00
[ -x /usr/bin/flatpak ] && flatpak update --system --noninteractive --force-remove
2022-07-10 10:48:13 +02:00
backup: yes
validate: /bin/bash -n %s
- name: /usr/local/sbin/autoupdate.d/server.update
blockinfile:
path: /usr/local/sbin/autoupdate.d/server.update
mode: "0400"
owner: root
group: root
create: yes
marker: "# {mark} ANSIBLE MANAGED BLOCK"
block: |
[ -e /root/server-$(hostname -s)/$(hostname -s).sh ] && bash -ex /root/server-$(hostname -s)/$(hostname -s).sh >/var/log/server-$(hostname -s)-update.log 2>&1
2022-09-28 14:37:13 +02:00
g_echo_warn "$(egrep -B1 "^changed" /var/log/server-$($(hostname -s)-update.log"
2022-09-28 14:25:25 +02:00
g_echo_error "$(egrep -q -B1 -i "^error|^fatal" /var/log/server-$(hostname -s)-update.log && cat /var/log/server-$(hostname -s)-update.log)"
backup: yes
validate: /bin/bash -n %s
2022-07-10 10:48:13 +02:00
- name: /etc/cron.d/autoupdate_local
blockinfile:
path: /etc/cron.d/autoupdate_local
mode: "0400"
owner: root
group: root
create: yes
marker: "# {mark} ANSIBLE MANAGED BLOCK"
block: |
## Auto-Update
5 6 * * * root /usr/local/sbin/autoupdate.sh
backup: yes