.. | ||
certificate.md | ||
file.md | ||
ip.md | ||
override.md | ||
README.md |
La gestion d'un service
La base service
Un service est inclut dans un conteneur services.
Cette balise permet de définir tous les éléments (fichier, certificat, IP et réécriture) liés à un service ou à démon.
Il faut, à la création du service, préciser son nom :
<?xml version='1.0' encoding='UTF-8'?>
<rougail version="0.10">
<services>
<service name="squid"/>
</services>
</rougail>
En YAML :
version: '0.10'
services:
- service:
- name: squid
Les types de service
Les services peuvent être de plusieurs type :
- service (valeur par défaut) : cela signifie que c'est un service systemd qui est activer au démarrage de la machine
- mount : fichier utilisé par systemd-mount
- swap : fichier utilisé par systemd-swap
- timer : tâche planifié pour systemd
<service name="dev-disk-by\x2dpartlabel-swap" type="swap"/>
En YAML :
- service:
- name: dev-disk-by\x2dpartlabel-swap
type: swap
Les targets de service
Active le service systemd pour une target systemd déterminé. Par défaut, l'activation du service n'est pas gérer par rougail.
<service name="squid" target="multi-user"/>
En YAML :
- service:
- name: squid
target: multi-user
La génération du fichier service
Le fichier de description du service peut être fourni directement par la distribution GNU/Linux utilisé, mais il peut également être fournit par l'administrateur. Dans ce cas, il est possible de créé un template, dont le nom est obligatoirement la valeur de la balise "name" + "." + la valeur de la base "type".
Deux types de template sont aujourd'hui disponible :
- cheetah
- jinja
<service name="dev-disk-by\x2dpartlabel-swap" type="swap" engine="cheetah"/>
En YAML :
- service:
- name: dev-disk-by\x2dpartlabel-swap
type: swap
engine: cheetah
Dans ce cas, rougail utilisera le template "dev-disk-by\x2dpartlabel-swap.swap" pour générer le fichier systemd de gestion de ce service.
Le service factice
Un service peut être factice, donc non géré par le système de service du système :
<service name="ldap_client" manage="False"/>
En YAML :
- service:
- name: ldap_client
manage: false
Un service factice est généralement une service qui n'existe pas réellement (par exemple si on configure un client). Il n'est là que pour contenir des fichiers.
Désactiver le service
Il est possible de désactiver un service. Pour cela il faut rajouter l'attribut "disabled" à True :
<service name="test" disabled="True"/>
En YAML :
- service:
- name: test
disabled: true
Dans ce cas, le service et les éléments qu'il compose (fichier, certificat, IP et réécriture seront désactivés.
Il est possible de définir une condition de type "disabled_if_in" ou "disabled_if_not_in" sur une balise service :
<services>
<service name="test" servicelist="test">
</service>
</services>
<variables>
<variable name="condition" type="boolean"/>
</variables>
<constraints>
<condition name="disabled_if_in" source="condition">
<param>False</param>
<target type="servicelist">test</target>
</condition>
</constraints>
En YAML :
services:
- service:
- name: test
servicelist: test
variables:
- variable:
- name: condition
type: boolean
constraints:
- condition:
- name: disabled_if_in
source: condition
param:
- text: false
target:
- type: servicelist
text: test
Dans ce cas, tous les services et les éléments qu'il compose avec un attribut servicelist à "test" seront désactivés si la variable "condition" est False.
Ne pas désactiver le service dans systemd
La désactivation du service va créé un lien symbolique vers /dev/null.
Si vous ne voulez juste pas créer le fichier de service et ne pas faire de lien symbolique, il faut utiliser l'attribut undisable :
<service name="test" disabled="True" undisable="True"/>
En YAML :
- service:
- name: test
disabled: true
undisable: true