Compare commits
12 commits
Author | SHA1 | Date | |
---|---|---|---|
Benoît S. | a66f736cfe | ||
Benoît S. | bebfd11917 | ||
Benoît S. | bb2bf2f453 | ||
Benoît S. | 8dc8cbe432 | ||
Benoît S. | f93c7bb1c0 | ||
Benoît S. | a155bac12c | ||
Benoît S. | c4ae3afa89 | ||
Benoît S. | b80801b1e3 | ||
Benoît S. | d8dd5a2847 | ||
Benoît S. | 4b5801c5f1 | ||
Benoît S. | 28e5b95be3 | ||
Benoît S. | 59995ca92e |
8
newkernel/README.md
Normal file
8
newkernel/README.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
# newkernel
|
||||
|
||||
Installs and configures a script to help manages to reboot on a new kernel.
|
||||
This script will send an mail when a new kernel is available to plan a reboot.
|
||||
|
||||
## Tasks
|
||||
|
||||
Installation and configuration are performed via `tasks/main.yml`.
|
3
newkernel/defaults/main.yml
Normal file
3
newkernel/defaults/main.yml
Normal file
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
general_alert_email: "root@localhost"
|
||||
listupgrade_alert_email: Null
|
28
newkernel/meta/main.yml
Normal file
28
newkernel/meta/main.yml
Normal file
|
@ -0,0 +1,28 @@
|
|||
galaxy_info:
|
||||
author: Evolix
|
||||
description: Installation and configuration of the listupgrade script
|
||||
|
||||
issue_tracker_url: https://gitea.evolix.org/evolix/ansible-roles/issues
|
||||
|
||||
license: GPLv2
|
||||
|
||||
min_ansible_version: 2.2
|
||||
|
||||
platforms:
|
||||
- name: Debian
|
||||
versions:
|
||||
- jessie
|
||||
|
||||
galaxy_tags: []
|
||||
# List tags for your role here, one per line. A tag is
|
||||
# a keyword that describes and categorizes the role.
|
||||
# Users find roles by searching for tags. Be sure to
|
||||
# remove the '[]' above if you add tags to this list.
|
||||
#
|
||||
# NOTE: A tag is limited to a single word comprised of
|
||||
# alphanumeric characters. Maximum 20 tags per role.
|
||||
|
||||
dependencies: []
|
||||
# List your role dependencies here, one per line.
|
||||
# Be sure to remove the '[]' above if you add dependencies
|
||||
# to this list.
|
54
newkernel/tasks/main.yml
Normal file
54
newkernel/tasks/main.yml
Normal file
|
@ -0,0 +1,54 @@
|
|||
---
|
||||
|
||||
- include_role:
|
||||
name: remount-usr
|
||||
|
||||
- name: Scripts dir is present
|
||||
file:
|
||||
path: "/usr/share/scripts"
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0700"
|
||||
|
||||
- name: Copy newkernel script
|
||||
template:
|
||||
src: newkernel.sh.j2
|
||||
dest: "/usr/share/scripts/newkernel.sh"
|
||||
mode: "0700"
|
||||
owner: root
|
||||
group: root
|
||||
force: yes
|
||||
|
||||
- name: Create /etc/evolinux
|
||||
file:
|
||||
path: /etc/evolinux
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: "0700"
|
||||
|
||||
- name: Copy newkernel config
|
||||
template:
|
||||
src: newkernel.cnf.j2
|
||||
dest: /etc/evolinux/newkernel.cnf
|
||||
mode: "0600"
|
||||
owner: root
|
||||
group: root
|
||||
force: no
|
||||
|
||||
- name: Cron.d is present
|
||||
file:
|
||||
path: "/etc/cron.d"
|
||||
state: directory
|
||||
mode: "0755"
|
||||
owner: root
|
||||
group: root
|
||||
|
||||
- name: Enable newkernel cron
|
||||
template:
|
||||
src: newkernel_cron.j2
|
||||
dest: /etc/cron.d/newkernel
|
||||
mode: "0600"
|
||||
owner: root
|
||||
group: root
|
4
newkernel/templates/newkernel.cnf.j2
Normal file
4
newkernel/templates/newkernel.cnf.j2
Normal file
|
@ -0,0 +1,4 @@
|
|||
#date="entre 18h00 et 23h00"
|
||||
#clientmail="client@evolix.net"
|
||||
#mailto="{{ listupgrade_alert_email or general_alert_email | mandatory }}"
|
||||
#hostname=""
|
68
newkernel/templates/newkernel.sh.j2
Normal file
68
newkernel/templates/newkernel.sh.j2
Normal file
|
@ -0,0 +1,68 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
configFile="/etc/evolinux/newkernel.cnf"
|
||||
|
||||
template=$(mktemp --tmpdir=/tmp evoupdate.XXX)
|
||||
clientmail=$(grep EVOMAINTMAIL /etc/evomaintenance.cf | cut -d'=' -f2)
|
||||
mailto=$clientmail
|
||||
# By default, plan the reboot next month thursday
|
||||
date="$(date --date="next thursday + 3 weeks" +%A\ %d\ %B)"
|
||||
hour="entre 18h00 et 23h00"
|
||||
hostname=$(grep HOSTNAME /etc/evomaintenance.cf | cut -d'=' -f2)
|
||||
hostname=${hostname%%.evolix.net}
|
||||
# If hostname is composed with -, remove the first part.
|
||||
if [[ $hostname =~ "-" ]]; then
|
||||
hostname=$(echo $hostname | cut -d'-' -f2-)
|
||||
fi
|
||||
# Edit $configFile to override some variables.
|
||||
[ -r $configFile ] && . $configFile
|
||||
|
||||
# Remove temporary files on exit.
|
||||
trap "rm $template" EXIT
|
||||
|
||||
# No updates? Exit!
|
||||
nextKernel=$(grep -m1 -aEo "#1 SMP Debian .* \([0-9]{4}-[0-9]{2}-[0-9]{2}\)" /vmlinuz)
|
||||
currentKernel=$(uname -v)
|
||||
if [ "$nextKernel" = "$currentKernel" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#To: ${clientmail}
|
||||
cat << EOT > $template
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
Reply-To: equipe@evolix.fr
|
||||
From: equipe@evolix.net
|
||||
To: $clientmail
|
||||
Subject: Prochain creneau pour redemarrage de votre serveur $hostname
|
||||
X-Date: $date
|
||||
|
||||
Bonjour,
|
||||
|
||||
Le noyau de votre serveur doit être mis à jour. Pour cela nous devons
|
||||
redémarrer votre machine ${hostname}.
|
||||
|
||||
Sauf indication contraire de votre part, le prochain créneau prévu pour
|
||||
mettre à jour le noyau de votre serveur est :
|
||||
Le ${date}, ${hour}.
|
||||
|
||||
Si nous intervenons, un redémarrage complet du serveur sera réalisé, entraînant
|
||||
plusieurs minutes de coupures. Nous nous assurerons de vérifier le bon
|
||||
démarrage de la machine ainsi que de ses services. Si nous ne sommes pas
|
||||
intervenus sur ce créneau, vous recevrez une nouvelle notification le mois
|
||||
prochain.
|
||||
|
||||
Votre version actuelle du noyau : $currentKernel
|
||||
Après redémarrage votre version sera : $nextKernel
|
||||
|
||||
N'hésitez pas à nous faire toute remarque sur ce créneau d'intervention le plus
|
||||
tôt possible.
|
||||
|
||||
Cordialement,
|
||||
--
|
||||
Équipe Evolix <equipe@evolix.fr>
|
||||
Evolix - Hébergement et Infogérance Open Source http://www.evolix.fr/
|
||||
EOT
|
||||
|
||||
<$template /usr/sbin/sendmail $mailto
|
1
newkernel/templates/newkernel_cron.j2
Normal file
1
newkernel/templates/newkernel_cron.j2
Normal file
|
@ -0,0 +1 @@
|
|||
42 9 1 * * root /usr/share/scripts/newkernel.sh
|
Loading…
Reference in a new issue