Configurer des services avec des modèles

Note Cet outil est en chantier.

Introduction

Dans ce manuel, nous expliquons comment configurer les services à l'aide de modèles. Il suffit d'utiliser les modèles pour créer des profils de configuration à usage multiple pour cl-setup.

Conventions :

  • Les Services sont les paramètres d'un ou de plusieurs paquets, combinés dans une solution logique.
  • Les Profiles sont des ensembles de modèles utilisés pour configurer un service.

Supposons que vous souhaitiez créer un profil kernel, contenant vos paramètres de noyau personnalisés. Il suffit ensuite de faire trois manipulations, l'une après l'autre :

1) Créez un fichier nommé /var/calculate/ini.env et ajoutez-y la ligne suivante :

[setup-kernel]
setup.name = Kernel settings

Maintenant cl-setup reconnaîtra le profil d'installation que vous avez soumis et pourra le gérer :

# cl-setup list
...
kernel - Kernel settings

2) Vous pouvez maintenant créer un modèle pour les paramètres du noyau. Utilisez ce même outil pour définir le chemin d'accès à vos modèles :

# cl-setup setup kernel

Le chemin et les modèles de base seront créés.

3) Vous pouvez maintenant créer le modèle :

vi /var/calculate/templates/setup/kernel/sysctl.conf
# Calculate format=procmail path=/etc mergepkg(sys-apps/baselayout)!=
net.ipv4.ip_forward = 1

où :

  • # Calculate est l'en-tête du modèle ;
  • format=procmail est un format de fichier de configuration. Sa valeur doit être bien dessinée pour que votre modèle mette à jour les paramètres sans écraser tout le fichier ;
  • path=/etc est le chemin d'accès au fichier de configuration ;
  • mergepkg(sys-apps/baselayout)!= est une fonction de vérification parallèle du paquet pour lequel les paramètres sont mis en œuvre et les corrections des fichiers qui sont créés. Elle est ancrée au niveau du gestionnaire de paquets, de sorte que les fichiers que vous avez créés peuvent être supprimés si le paquet est retiré.

C'est fait ! Il ne vous reste plus qu'à exécuter la commande suivante pour lancer la configuration du noyau :

cl-setup kernel

Une fois que cette opération est terminée, la variable de configuration "package forwarding" dans /etc/sysctl.conf reçoit une nouvelle valeur, tandis que l'en-tête du fichier est modifié pour contenir le chemin d'accès à votre modèle :

#------------------------------------------------------------------------------
# Modified Calculate Utilities 3.5.9
# Processed template files:
# /var/calculate/templates/setup/kernel/sysctl.conf
# For modify this file, create /etc/sysctl.conf.clt template.
#------------------------------------------------------------------------------
...
net.ipv4.ip_forward = 1

En outre, une entrée sera ajoutée à /etc/calulate/ini.env au moment de l'exécution, contenant l'horodatage de cette dernière :

[setup-kernel]
run = Mon, 08 Jan 2018 02:14:36 +0300

Cette entrée indiquera aux outils que le service kernel a été configuré et utilisera votre modèle pour générer sysctl.conf lors de la réinstallation du logiciel.

Cet exemple illustre une manière simple d'utiliser les modèles. Ci-dessous, nous expliquons comment passer des paramètres à vos modèles en utilisant l'outil cl-setup, pour vérifier les valeurs d'entrée ou pour effectuer des ajustements encore plus complexes. Ajoutez vos modèles à un LiveUSB ou à votre profil pour avoir toujours accès à vos outils de gestion préférés.

Profil modèle

La syntaxe de cl-setup est comme suit :

cl_setup [profil] [option ou option=valeur (séparés par des espaces s'il y en a plusieurs)].

Pour obtenir la liste des profils disponibles, exécutez la commande suivante :

# cl-setup list
openvpn - Настройка OpenVPN

Les profils de modèles, les paramètres copiés et les conditionnels sont décrits dans le fichier ini.env.. Vous pouvez choisir n'importe quel chemin d'accès au fichier de configuration personnalisé : dans /var/calculate/ini.env, /var/calculate/remote/ini.env, /etc/calculate/ini.env, ou encore dans votre profil.

Pour ajouter un profil, créez une section "setup-service_name" dans le fichier ini.env, par exemple :

[setup-openvpn]

Options apportées par les paramètres copiés

Dans la section Paramètres du service, spécifiez tous les paramètres disponibles, en énumérant leurs propriétés dans l'ordre dans lequel elles seront affichées lors de l'appel de la page d'aide :

cl-setup help service_name

Les propriétés sont séparées par des virgules et suivies de leurs valeurs respectives. Par exemple :

dns.name = DNS

Propriétés disponibles :

available

Ici, vous pouvez décrire les valeurs attendues pour le paramètre. Les valeurs autorisées sont énumérées entre crochets. Utilisez le format avec les valeurs séparées par des virgules entre crochets ronds pour les choix multiples et entre crochets tout court pour un type de valeur spécifique, tel qu'une adresse IP. Par exemple :

remote.available = [a-zA-Z0-9_-\.]

Quand vous choisissez entre activer et désactiver, le champ "case à cocher" s'affiche dans la fenêtre du client de l'interface graphique. Par exemple :

gateway.available = (on, off)

block

Cette fonction permet d'éviter l'utilisation de paramètres qui se bloquent mutuellement, tout en rendant impossible la sélection d'un paramètre pour une valeur spécifique d'un autre paramètre. Dans ce cas, la valeur doit être mise entre accolades. Plusieurs conditions peuvent être indiquées, séparées par des virgules. Par exemple :

dns.block = type(client)

default

C'est la valeur par défaut de ce champ. Si l'utilisateur n'indique pas de paramètre, celui-ci sera mis à cette valeur par défaut.

type.default = client

description

Résumé des paramètres Ce résumé est proposé lorsque l'aide est affichée pour le profil de configuration. Pour localiser, mettez la locale nécessaire entre parenthèses à la fin de la ligne.

name

Nom du paramètre, en anglais Pour localiser, mettez la locale nécessaire entre parenthèses à la fin de la ligne. Si vous optez pour une localisation, le paramètre local anglais est également obligatoire. Par exemple :

name.name[fr] = Option

separate

Description du bloc de paramètres commençant par cet élément. Tout comme le nom du paramètre, il peut être localisé. Par exemple :

type.separate[fr] = Options générales

Exemple : Profil des paramètres OpenVPN

Voir ci-dessous un exemple de service de configuration OpenVPN :

[setup-openvpn]
setup.name = OpenVPN settings
setup.description = ...
setup.description[ru] = ...
setup.name[ru] = Настройка OpenVPN
type.available = (client, server)
type.default = client
type.name = Type
type.name[ru] = Тип
type.separate = Default options
type.separate[ru] = Общие настройки
name.available = [a-zA-Z0-9_-]
name.name = Key name
name.name[ru] = Имя ключа
easy-rsa.name = path to directory easy-rsa
easy-rsa.name[ru] = путь к директории easy-rsa
easy-rsa.default = /usr/share/easy-rsa
gateway.available = (on, off)
gateway.block = type(client)
gateway.name = Default gateway
gateway.name[ru] = Маршрут по умолчанию
gateway.separate = Server setup
gateway.separate[ru] = Настройки сервера
dns.available = {ip}
dns.block = type(client)
dns.name = DNS
remote.available = [a-zA-Z0-9_-\.]
remote.block = type(server)
remote.name = Server address
remote.name[ru] = Адрес сервера
remote.separate = Client settings
remote.separate[ru] = Настройки клиента
port.available = [0-9]{4,5}
port.block = type(server)
port.default = 1194
port.name = Port
port.name[ru] = Порт