4.3 Serveur des Utilitaires Calculate

Introduction

Le Serveur des utilitaires Calculate Core sert à exécuter des méthodes d'utilitaires, notamment l'installation, la configuration système, etc. ; à donner l'accès réseau aux clients Calculate (cl-console и cl-console-gui) via le protocole https, pour qu'ils puissent appeler les fonctions des utilitaires. Calculate Core est fourni avec les Utilitaires Calculate 3. Pour intégrer le Serveur, il suffit d'installer le paquet sys-apps/calculate-core.

Débuter. Créer un certificat

Pour pouvoir lancer le Serveur, vous devez créer un certificat. Vous avez le choix entre :
  • générer une requête de signature de certificat et faire signer le certificat par un autre serveur ;
  • créer un certificat racine auto-signé pour l'utiliser comme certificat serveur par la suite.

En gros, il vous faut le certificat serveur pour faire démarrer le Serveur, et le certificat racine auto-signé pour pouvoir signer les certificats émanant d'autres serveurs.

Faire signer le certificat généré par un autre Serveur des utilitaires

Pour générer une clé privée et une requête, aussi bien que pour envoyer la requête au Serveur, utilisez la commande :

cl-core --gen-cert-by <hôte> --port <port>
où <hôte> est l'adresse réseau du Serveur des utilitaires et <port> est le port qui écoute le Serveur (8888 par défaut).
Par exemple :
cl-core --gen-cert-by 192.168.0.123 --port 4567

Une fois le certificat signé par le Serveur, vous devez le récupérer en exécutant :

cl-core --get-cert-from <hôte_root> --port <port>
où <hôte_root> est l'adresse réseau du Serveur, <port> est le port qui écoute le Serveur (8888 par défaut).

Par exemple :

cl-core --get-cert-from 192.168.0.123 --port 4567

Créer un certificat auto-signé

Pour créer un certificat racine auto-signé, utilisez la commande

cl-core --gen-root-cert

Pour utiliser ce certificat comme certificat serveur, exécutez :

cl-core --use-root-as-server

Lancer le Serveur des utilitaires

Une fois le certificat généré, vous pouvez lancer le Serveur en tapant

cl-core --start

Par défaut, le Serveur écoutera le port 8888. Utilisez l'option --port pour spécifier un autre port, comme suit :

cl-core --start --port 5648

Pour lancer le Serveur en mode débogage, utilisez l'option --debug.

Utiliser le Serveur

Gérer les requêtes et les certificats

Visualiser des requêtes et des certificats

Plusieurs actions peuvent être faites directement sur le Serveur, sans recourir aux clients ; par contre, vous allez devoir passer root avant de procéder.

Pour visualiser les requêtes clients, utilisez l'option --show-request en lui passant comme argument l'identifiant de la requête qui vous intéresse ou encore « all » pour voir toutes les requêtes soumises. Voici deux exemples :

cl-core --show-request all
cl-core --show-request 2

Pour visualiser les certificats clients signés, utilisez l'option --cert en lui passant comme argument le numéro de la requête ou « all », pour voir la liste complète :

cl-core --cert all
cl-core --cert 2

Vous pouvez également afficher tous les certificats en même temps, avec l'option --dump :

cl-core --cert all --dump

Cette même option permet d'afficher le contenu du fichier de certificat, la syntaxe est comme suit :
cl-core --cert 4 --dump

L'option --server-cert sert à visualiser les requêtes et les certificats serveur. Tout comme pour les clients, l'argument accepté est le numéro/identifiant sinon « all » :

cl-core --server-cert all
cl-core --server-cert 2

Signer et révoquer des requêtes clients

Pour signer une requête client, utilisez l'option --sign-client en spécifiant l'ID de la requête, comme suit :

cl-core --sign-client 4

Maintenant saisissez le groupe des droits applicables au nouveau certificat (attention, vous ne pourrez pas modifier les privilèges par la suite !) C'est le certificat serveur qui signe le certificat client.

Pour révoquer une requête client, utilisez l'option --del-client-req en spécifiant l'identifiant de la requête :

cl-core --del-client-req 4

Pour supprimer un certificat client déjà signé, utilisez l'option --remove avec --cert, par exemple :

cl-core --cert 4 --remove

Vous pouvez également générer un certificat avec les droits « all » pour un utilisateur, en exécutant :

cl-core --bootstrap <nom_d'utilisateur>

Ainsi, si vous exécutez :
cl-core --bootstrap dupont

un certificat avec les droits du groupe « all » sera généré pour l'utilisateur dupont et ajouté aux certificats de confiance du Serveur des utilitaires.

Pour supprimer tous les certificats, requêtes et fichiers de configuration sur le serveur, utilisez deux options ensemble, --bootstrap et --remove-certs :

cl-core --bootstrap dupont --remove-certs

Signer des requêtes et révoquer des certificats émanant d'un autre serveur

Pour signer une requête générée par un autre serveur des utilitaires, utilisez l'option --sign-server en précisant le numéro de la requête, comme suit :

cl-core --sign-server 4

C'est le certificat racine qui signe.

Pour révoquer une requête générée par un autre serveur, utilisez l'option --del-server-req en précisant le numéro de la requête :

cl-core --del-server-req 4

Pour révoquer un certificat serveur déjà signé (le mettre sur la liste des révocations), utilisez l'option --revoke-cert en spécifiant le numéro du certificat, par exemple :

cl-core --revoke-cert 4

Pour supprimer la liste de révocations de certificats, utilisez la commande
cl-core --revoke-cert rm

Modifier les droits sur des certificats

Par défaut, les droits des certificats sont stockés par groupe, dans le fichier /var/calculate/server/conf/group_right.conf. La syntaxe est comme suit : groupe droits1[, droits2[,droits3...]], par exemple :

manager install, get-sessions, request
user get-sessions,request,view_cert

Pour modifier les droits d'un certificat spécifique, éditez le fichier /var/calculate/server/conf/right.conf en y portant les droits pertinents et les numéros des certificats, comme suit :

install 1 2 -3

Dans cet exemple, l'action install sera acceptée pour les certificats 1 et 2, mais refusée pour le certificat 3.

Les droits sur un certificat spécifique ont la priorité devant les droits de groupe.

Pour modifier les droits sur un certificat client spécifique, utilisez les options --right-add et --right-del avec --cert, par exemple :

cl-core -c 6 --right-del install_pxe,install
cl-core -c 7 --right-add install_pxe,install,configure_video

Dans cet exemple, les méthodes qui demandent les droits install_pxe et install seront refusées pour le certificat 6, les méthodes install_pxe, install et configure_video seront acceptées pour le certificat 7.

Lancer des processus localement

Lancer une méthode avec l'option --method

Toutes les actions sur le Serveur des utilitaires peuvent être lancées soit via les clients Calculate (cl-console-gui, cl-console), avec chiffrement des certificats et possibilité d'intervenir sur des serveurs des utilitaires distants, soit depuis les serveurs eux-mêmes. Dans ce dernier cas, l'intervention est locale et immédiate.

Pour visualiser toutes les actions disponibles sur le Serveur, utilisez la commande :

# cl-core --list-methods

Une liste va s'afficher :

install  -  Installation
setup_boot  -  Amorçage
core_setup  -  Configuration du paquet
...

Pour lancer une méthode, utilisez la commande :

cl-core --method <méthode>

Par exemple :
cl-core --method install --iso /path_to_image/cld-x86_64.iso -d /dev/sda1:swap -d /dev/sda2:/:ext4:on

Pour lire la page d'aide d'une action, utilisez la commande :

cl-core --method <méthode> --help

Ainsi pour l'installation :
cl-core --method install --help

L'option -f, --force active le mode non verbeux (brief) où aucune question n'est posée à l'utilisateur, aucune prévisualisation n'est faite.

L'option --no-progress désactive les barres de progression, qui permettent de visualiser le statut d'une tâche.

Liens vers les méthodes

Quand vous installez le système, des liens symboliques sont crées pour toutes les actions sur le Serveur, générant des alias de forme cl-_méthode_, où méthode est le nom de la méthode pertinente récupérable avec la commande cl-core --list-methods. Ainsi pour la méthode setup_network l'alias sera cl-setup-network (les caractères « _ » seront remplacés par « ‐ »).

Pour créer des liens absents ou supprimer les liens vers les actions absentes du Serveur, lancez

cl-core --create-symlink

Seul root est autorisé à lancer cl-core et tout lien qui y pointe.
Tous les liens ne sont utilisables que sur la machine locale, sans certification ni chiffrement.

Divers

Pour vérifier la configuration (si le certificat et la clé privée existent et se correspondent, si le certificat est bien valide), utilisez l'option --check.

L'option --log-path sert à indiquer le chemin vers les journaux, par exemple :

cl-core --log-path /var/log/calculate/mes_logs/

Il existe toutefoit un fichier par défaut qui recueille les logs, c'est /var/log/calculate/logging_cl_core.out.

Pour indiquer le chemin vers le fichier pid, utilisez l'option --pid-file <fichier_pid>.

Méthodes standard du Serveur

Toutes les méthodes du Serveur sont divisées en catégories, trois en tout depuis la version 3.0.0 : Configuration, Installation, Utilitaires.

Configuration

Elle inclut les méthodes utilisées pour configurer les réglages système et modifier les paramètres des paquets.

Installation

Elle regroupe les méthodes exécutées lors de l'installation du système.

Utilitaires

Cette catégorie comprend les méthodes de gestion des certificats, des requêtes, des groupes de droits applicables aux certificats.

Thank you!