Archives du mot-clé Systemd

Systemd : mise en veille des VM de libvirtd à la mise en veille de la machine hôte

Lors d’une mise en veille d’une machine Debian utili­sant systemd et héber­geant des machines virtuelles créés avec libvirtd, les machines virtuelles empêchent la mise en veille. Résul­tat, une coupure franche de la machine. Ce qui n’est pas bon.

Pour y remé­dier, c’est fort simple.

mkdir /etc/systemd/system-sleep

Dans ce réper­toire, créer le script suivant (appe­lons-le virsh.sh par exemple) :

#!/bin/bash
# vim:set sw=4 ts=4 sts=4 ft=sh expandtab:

case "$1" in
    pre)
        for i in $(virsh list | grep running | awk '{print $2}')
        do
            virsh suspend $i
        done
        ;;
    post)
        for i in $(virsh list | grep paused | awk '{print $2}')
        do
            virsh resume $i
        done
        ;;
    *) exit $NA
        ;;
esac

On le rend exécu­table :

chmod 755 /etc/systemd/system-sleep/virsh.sh

Je pense qu’il est bon de reloa­der le dæmon systemd :

systemctl daemon-reload

Et c’est bon ! La mise en veille fonc­tionne tout à fait norma­le­ment main­te­nant.

Expli­ca­tion : avant de mettre en veille, on suspend toutes les machines virtuelles qui sont en train de tour­ner, et après on les rallume (ce qui rallu­mera aussi celles que vous aviez vous-même mises en veille, mais bon).

Me soutenir sur Tipeee Me soutenir sur Liberapay

Gitlab et systemd sont sur un bateau

Systemd fait tanguer la barque. Gitlab ne tombe pas !

Tant qu’à passer à Jessie (et systemd pour le coup), autant suppri­mer le script d’init de gitlab et créer des services systemd.

La procé­dure se trouve là : https://github.com/gitlabhq/gitlab-recipes/tree/master/init/systemd mais elle néces­site un chouilla de modi­fi­ca­tion pour que ça fonc­tionne comme il faut sur Debian Jessie.

sudo su
cd /etc/systemd/system/
wget -O gitlab-sidekiq.service https://gitlab.com/gitlab-org/gitlab-recipes/raw/master/init/systemd/gitlab-sidekiq.service
wget -O gitlab-unicorn.service https://gitlab.com/gitlab-org/gitlab-recipes/raw/master/init/systemd/gitlab-unicorn.service

Modi­fi­ca­tion des services sed -e "s@mysqld.service @@" -e "s@redis.service@redis-server.service@" -i gitlab-sidekiq.service
sed -e "s@mysqld.service @@" -e "s@redis.service@redis-server.service@" -i gitlab-unicorn.service

(Bien sûr, je supprime la dépen­dance à mysql parce que j’uti­lise post­gresql)

Prise en compte des nouveaux services

systemctl daemon-reload

Lance­ment des nouveaux services

sudo systemctl start gitlab-sidekiq.service gitlab-unicorn.service

Lance­ment des nouveaux services au démar­rage

sudo systemctl enable gitlab-sidekiq.service gitlab-unicorn.service

Je ne suis pas un fana­tique de systemd (je trouve qu’il veut gérer bien trop de truc), mais j’ap­pré­cie vrai­ment l’écri­ture simple et rapide des services, à 100 lieues des script shell souvent incom­pré­hen­sibles et touf­fus de SysVi­nit.

Me soutenir sur Tipeee Me soutenir sur Liberapay