Comment contrôler Systemd avec Ansible

Comment contrôler Systemd avec Ansible
La gestion des services est l'une des exigences fondamentales pour tout utilisateur. Avec des outils tels que SystemD propulse toutes les grandes distributions Linux, il est essentiel de comprendre comment gérer les services.

Ce tutoriel vous apprendra à utiliser le module Systemd Ansible pour démarrer, arrêter et gérer les services sur n'importe quel hôte en utilisant le service Systemd init.

Configuration ANSIBLE

La première étape consiste à installer et à configurer Ansible sur votre système. Dans cet exemple, nous exécutons ANSIBLE sur le système Debian 11.

Commencez par mettre à jour les référentiels logiciels et installer ANSIBLE:

Mise à jour Sudo apt-get
sudo apt-get install anible -y

Une fois installé, nous pouvons configurer les hôtes distants pour être gérés à l'aide du nœud de contrôle Ansible.

Configurer l'inventaire ANSIBLE

Ouvrez le terminal et modifiez le fichier d'inventaire comme indiqué dans la commande ci-dessous:

sudo vim / etc / anible / hôtes

Dans le fichier d'inventaire de l'hôte, ajoutez l'adresse IP des hôtes distants que vous souhaitez gérer en utilisant Ansible.

Configuration de la clé SSH

L'étape suivante consiste à créer une paire de clés SSH. Cela vous permet de vous connecter à l'hôte distant à partir de votre nœud de contrôle anible sans avoir besoin de taper un mot de passe.

Commencez par générer une clé SSH à l'aide de la commande:

$ ssh-keygen

Suivez les invites de la commande SSH-Keygen pour générer une paire de clés publiques et privées.

Une fois terminé, utilisez la commande SSH-Copy-ID pour copier votre clé publique SSH à l'hôte distant.

Un exemple de commande est comme indiqué:

ssh-copy-id -i ~ /.ssh / id_rsa.pub ubuntu @ 192.168.100.17

Remplacez le nom d'utilisateur et le mot de passe par l'utilisateur distant de votre hôte distant et l'adresse IP de votre hôte distant.

Ensuite, entrez le mot de passe pour vous connecter à l'hôte distant et télécharger votre paire de clés SSH.

Une fois terminé, SSH dans l'hôte distant, et vous serez connecté sans invite de mot de passe.

Gestion des services avec Systemd

Pour gérer les services sur un hôte distant à l'aide du module SystemD, assurez-vous que le service SystemD et le gestionnaire de système gérent l'hôte distant.

Le module SystemD fait partie du noyau ANSIBLE et est disponible dans toutes les installations anibles par défaut.

Examinons quelques exemples d'utilisation du module SystemD pour gérer les services sur les hôtes distants.

Services de départ

Le module SystemD dans ANSIBLE est simple à utiliser. Par exemple, pour démarrer un service, passez le nom du service et l'état que vous voulez qu'il soit, dans ce cas, commencé.

L'exemple de playbook suivant montre comment démarrer un service à l'aide du module SystemD.

---
- Nom: Service de démarrage Ansible
hôtes: tout
rassemble_facts: vrai
Tâches:
- Nom: Démarrez un service avec Systemd
systemd:
Nom: apache2
État: commencé

L'exemple de playbook ci-dessus démarrera le serveur HTTP Apache2 à l'aide de SystemD.

S'assurer que le service cible est installé et géré par Systemd sur l'hôte distant est bon pour éviter les erreurs.

Si le service n'existe pas, ANSIBLE lancera une erreur comme indiqué dans l'exemple de capture d'écran ci-dessous:

Services d'arrêt

Lors de l'arrêt des services, modifiez le paramètre d'état pour arrêter comme indiqué dans l'exemple de playbook ci-dessous:

---
- Nom: ANSIBLE STOP SERVICES
hôtes: tout
rassemble_facts: vrai
Tâches:
- Nom: Arrêtez un service avec Systemd
systemd:
Nom: apache2
État: arrêté

Une fois exécuté avec succès, le service cible de l'hôte distant sera arrêté.

Recharger les services

Pour recharger un service à l'aide de SystemD, définissez l'état pour recharger. Il est bon de savoir que vous pouvez utiliser le nom complet du service ou court comme nous l'avons fait dans les livres de jeu précédents.

Par exemple:

---
- Nom: Anible Recharger un service
hôtes: tout
rassemble_facts: vrai
Tâches:
- Nom: Recharger les services avec Systemd
systemd:
Nom: nginx.service
État: rechargé

L'exemple ci-dessus rechargera le service Nginx tel qu'il est passé dans le livre de jeu.

Activer les services

Dans les cas où vous avez besoin d'un service pour être démarré à mesure que le système est en augmentation, vous devez vous assurer que le service est activé.

Le module SystemD AnSible vous fournit le paramètre activé, que vous pouvez utiliser pour permettre à un service de démarrer au démarrage du système.

Considérez l'exemple de playbook ci-dessous:

---
- Nom: ANSIBLE Activer le service
hôtes: tout
rassemble_facts: vrai
Tâches:
- Nom: Activer le service Nginx
systemd:
Nom: nginx.service
Activé: vrai
Massé: Non

Le playbook ci-dessus permet le service Nginx et garantit qu'il n'est pas masqué.

Gérer plusieurs services

Vous pouvez également utiliser le paramètre avec_items pour gérer plusieurs services. Par exemple, pour démarrer divers services à la fois, nous pouvons créer un livre de jeu en tant que:

---
- Nom: Services de démarrage ANSIBLE
hôtes: tout
rassemble_facts: vrai
Tâches:
- Nom: Démarrez ces services
systemd:
Nom: "item"
État: commencé
avec_items:
- apache2
- mysql
- redis-serveur

L'exemple de playbook ci-dessus doit redémarrer les services dans le bloc avec_items.

Fermeture

Ce guide vous montre comment gérer les services sur des hôtes distants à l'aide du module SystemD dans ANSIBLE.

Merci pour la lecture!