Comment utiliser des modules anibles pour les tâches d'administration du système - Partie 6
- 4474
- 975
- Thomas Richard
Dans ce Partie 6 De la série ANSIBLE, nous avons couvert quelques modules anibles dans les sujets passés, nous allons maintenant aller plus loin et découvrir des modules supplémentaires qui sont utiles pour effectuer un certain nombre de tâches d'administration du système.
Vous aurez une idée de base de chaque module et regardez les options disponibles pour accomplir certaines tâches.
Sur cette page:
- Gestion des packages de logiciels et des référentiels dans ANIBLE
- Gestion des services utilisant ANSIBLE
- Gérer le pare-feu avec ANSIBLE
- Archivage des fichiers ou des dossiers avec ANMIBLE
- Planifiez les tâches avec ANSIBLE
- Gérer les utilisateurs et les groupes avec ANSIBLE
- Créer des fichiers et des répertoires avec ANSIBLE
- Gérer le stockage avec Ansible
- Gérer les systèmes de fichiers avec ANSIBLE
1. Gestion des packages de logiciels et des référentiels dans ANIBLE
Lors de l'installation de packages sur les systèmes Linux, différentes distributions sont livrées avec différents gestionnaires de packages. Pour Chapeau rouge Distributions, nous avons yum & dnf tandis que pour Debian saveurs, il y a de.
Anible est livré avec un module appelé emballer, ce qui élimine le besoin d'utiliser différents gestionnaires de packages pour différents systèmes. Il utilise automatiquement le gestionnaire de packages correspondant du système hôte, facilitant ainsi le travail.
Installer des packages de logiciels
Par exemple, pour installer htop dans un groupe de hôtes comprenant les deux Debian & Chapeau rouge les distrotes utilisent le emballer module comme indiqué dans le install_htop.YML Playbook ci-dessous.
--- - Nom: Installer HTOP sur les hôtes Ubuntu et Centos: toutes les tâches: - Package: Nom: HTOP État: installéInstaller un logiciel à l'aide du module de package ANSIBLE
NOTE: Les noms de packages peuvent différer d'un système d'exploitation à un autre. Par exemple, nous avons httpd dans Chapeau rouge distributions et Apache2 pour Debian / Ubuntu Systèmes qui désignent tous le serveur Web Apache. Par conséquent, une prudence supplémentaire doit être prise lors de la réussite de ces forfaits. Habituellement, il est préférable d'utiliser des variables ou des déclarations conditionnelles.
2. Gestion des services utilisant ANSIBLE
Ensuite, nous avons un service Module, qui est utilisé pour gérer les services sur les systèmes Linux. Il est utilisé pour démarrer, arrêter ou redémarrer un service. Vous pouvez également l'utiliser pour activer un service de sorte que lorsqu'un système botte, il démarre automatiquement le service.
Démarrer et activer un service
Par exemple, pour démarrer et activer Apache Webserver sur Rhel 8, Utilisez le service comme indiqué.
--- - Nom: Démarrer et activer HTTPD Service Hosts: Tâches WebserVers: - Service: Nom: Httpd État: Démarré Activé: OuiGérer les services avec ANSIBLE
Arrêter un service
Arrêter httpd service, passer le arrêté attribut.
--- - Nom: Stop Httpd Service Hosts: Tâches de serveurs: - Service: Nom: Httpd État: arrêtéArrêter le service avec ANIBLE
Redémarrer un service
Recommencer httpd service, passer le redémarré attribut.
--- - Nom: Redémarrer HTTPD Service Hosts: Tâches de serveurs Web: - Service: Nom: Httpd État: redémarréRedémarrer le service avec ANIBLE
3. Gérer le pare-feu avec ANSIBLE
Un autre système de tâches important entreprend est la gestion du pare-feu. Dans les livres de jeu anibles, cela a été rendu beaucoup plus facile avec pare-feu et ufw modules. Vous pouvez configurer le pare-feu pour autoriser ou bloquer un port ou un service ou même une adresse source.
Sautons et jetons un coup d'œil à quelques exemples:
Port ouvert / bloc 80 en pare-feu
--- - Nom: Autoriser le port 80 hôtes: Tâches de serveurs: -Firewalld: Port: 80 / TCP Permanent: oui État: activé
Dans le livre de jeu ci-dessus, le port 80 est autorisé à travers le pare-feu.
L'option Permanent: oui
applique la règle du pare-feu et la rend persistent à travers les redémarrages. Cependant, cette règle ne s'applique pas immédiatement. Il n'entre en vigueur qu'après un redémarrage. Pour appliquer la règle immédiatement, utilisez l'option immédiat: oui
.
Pour spécifier les adresses autorisées, utilisez le Source: 0.0.0.0/0 déclaration.
- Firewalld: Source: 192.168.0.0/24 Zone: État public: activé
Pour spécifier une gamme de ports à utiliser l'option de port comme suit:
- Firewalld: Port: 213-567 / UDP Permanent: Oui État: Activé
Pour bloquer le port, modifiez l'option d'état vers désactivé comme montré:
-Firewalld: Port: 80 / TCP Permanent: Oui État: Désactivé
Ajouter / bloquer un service dans Firewalld
En plus d'ajouter / bloquer un port, vous pouvez également appliquer les mêmes règles à un service. Et c'est assez simple. Utilisez simplement le service module et ajoutez le service à ajouter et assurez-vous que l'option d'état est définie sur activé.
- Firewalld: Service: HTTPS Permanent: True État: activé
Pour bloquer le service Définissez le État option de désactivé.
- Firewalld: Service: HTTPS Permanent: True État: handicapé
4. Archivage des fichiers ou des dossiers avec ANMIBLE
Archiving fait référence à la compression d'un fichier ou d'un dossier à un format facilement portable et de plus petite taille. ANSIBLE ENTRAIT avec un module appelé archive. La compression d'un fichier est à peu près aussi simple que possible. Tout ce qui est requis est de spécifier le chemin source du fichier et la destination du fichier compressé.
Comprimer un répertoire
Considérez un livre de jeu compresse.YML dessous.
--- - Hôtes: Tâches de serveurs Web: • Nom: Compress a un dossier Archive: chemin: / opt / data / web dest: / tmp / web.gz
Le livre de jeu ci-dessus compresse le / opt / data / web répertoire et l'enregistre à / tmp / web.gz.
Créer des archives avec AnibleComprimer un répertoire avec format
Le format de compression par défaut est .gz
, Cependant, cela peut être spécifié en utilisant l'attribut de format. Goûter le prochain livre de jeu.
--- - Hôtes: Tâches de serveurs Web: - Nom: Créez une archive d'archive zip: path: / opt / data / web dest: / tmp / web format: zip
Le livre de jeu ci-dessus compresse / opt / data / web répertoire de / tmp / web.zipper.
Débordant un fichier
Vous pouvez également débarrasser un fichier compressé en utilisant le non archisif attribut. Considérez le livre de jeu ci-dessous.
--- - Hôtes: Tâches de serveurs: - Nom: Uncompressive / TMP / Web.Répertoire GZ à / Opt sur ANSIBLE Controller Unarchive: SRC: / TMP / Web.bz2 dest: / opt /
Le playbook ci-dessus incompte le fichier / opt / data / web.gz pour /opter sur le contrôleur anible.
Débrochez un fichier sur le nœud distant
Pour spécifier le système source distant, utilisez le distote_src = oui
option.
--- - Hôtes: Tâches de serveurs: - Nom: Uncompressive / TMP / Web.bz2 à / opt sur l'hôte distant Unarchive: src: / tmp / web.bz2 dest: / opt / distote_src = oui
Le playbook ci-dessus incompte le fichier / tmp / web.bz2 sur le nœud distant au /opter/ annuaire.
5. Planifiez les tâches avec ANSIBLE
Le cron module Aide à planifier des travaux dans des manuels ANSIBL.
Créer une tâche planifiée
Considérez le livre de jeu ci-dessous.
--- - Hôtes: Tâches de serveurs Web: - Nom: Créer une tâche planifiée Cron: Nom: Exécuter le travail de fréquentation des employés: SH / OPT / SCRIPTS / ASSISTACE.SH Mois: 4 jours: 5 heures: 17 minutes: 00
Le Playbook exécute le script de présence le 5 avril à 17h00.
Planifiez un script à la date spécifique
Si vous souhaitez planifier ce script pour fonctionner uniquement si le 5 avril est un lundi, utilisez le jour de la semaine: 1 attribut. 0 indique que le dimanche et 6 dénote samedi selon Cron Notation.
Mois: 4 jours: 5 heures: 17 minutes: 00 en semaine: 1
Un astérisque (*) Dans l'un de ces champs, indique toute valeur.
Exécutez un emploi à une date
Pour exécuter le travail le 5 avril à 17h00, peu importe le jour de la semaine, utilisez les paramètres de temps comme indiqué.
Mois: 4 jours: 5 heures: 17 minutes: 00 en semaine: *
Exécutez un emploi un jour spécifique chaque mois
Pour exécuter le travail cron le 5ème jour de chaque mois à 17h00, utilisez les paramètres ci-dessous.
Mois: * Jour: 5 heures: 17 minutes: 00 en semaine: *
Exécuter un emploi sur quotidiennement
Pour exécuter le travail Cron tous les jours à 17h00, définissez les paramètres d'heure comme indiqué:
Mois: * Jour: * Hour: 17 minutes: 00 en semaine: *
Exécuter un emploi toutes les 5 heures
Pour exécuter le travail cron toutes les 5 heures, utilisez la valeur de pas * / 5
comme montré.
Mois: * Jour: * Hour: * / 5 minutes: * Dayday: *
6. Gérer les utilisateurs et les groupes avec ANSIBLE
Vous pouvez également gérer les utilisateurs et les groupes à l'intérieur des manuels ANSIBL.
Créer un nouvel utilisateur
Pour créer un nouvel utilisateur, utilisez le utilisateur module comme indiqué.
--- - Hôtes: Tâches de serveurs Web: - Nom: Créez un nouvel utilisateur utilisateur: Nom: Jack
Vous pouvez également ajouter des options supplémentaires telles que l'UID, les groupes.
- Nom: Créer un nouvel utilisateur utilisateur: Nom: Jack Commentaire: Jack Peters UID: 1002 Groupe: Administrateurs Shell: / bin / bash
Supprimer un utilisateur
Pour supprimer l'utilisateur, utilisez le Supprimer: oui
déclaration.
- Nom: Supprimer l'utilisateur «Jack» de l'utilisateur: Nom: Jack État: absent Supprimer: oui
Créer un nouveau groupe
Pour créer un nouveau groupe, utilisez le groupe module.
- Nom: Créer un groupe de groupe: Nom: Développeurs
7. Créer des fichiers et des répertoires avec ANSIBLE
Pour créer des fichiers de répertoires, utilisez le déposer module.
Créer un nouveau répertoire
Par exemple, pour créer un nouveau répertoire.
--- - Hôtes: Tâches de serveurs Web: - Nom: Créez un nouveau fichier de répertoire: Path: / Opt / App State: répertoire
Vous pouvez ajouter d'autres attributs tels que les autorisations de propriétaire, de groupe et de fichiers.
- Hôtes: Tâches de serveurs Web: - Nom: Créez un nouveau fichier de répertoire: Chemin: / OPT / Web État: Répertoire Propriétaire: WWW-DATA GROUP: WWW-DATA MODE: 0644
De plus, vous pouvez créer des répertoires récursivement à l'aide du Recurse: Oui déclaration.
--- - Hôtes: tâches de serveurs Web: - Nom: Créer des répertoires Fichier récursivement: Path: / opt / web / app State: répertoire Propriétaire: WWW-Data Group: WWW-Data Mode: 0644 Recurse: Oui
Créer un fichier
Pour créer un fichier, utilisez le État: toucher
option.
--- - Hôtes: Tâches de serveurs Web: - Nom: Créez un nouveau fichier Fichier: Path: / Opt / Web / Index.html État: toucher Propriétaire: WWW-Data Group: Mode www-data: 0644
8. Gérer le stockage avec Ansible
Le LVG Le module est utilisé pour configurer les volumes et groupes LVM.
Créer un groupe de volume LVM
Considérez le livre de jeu ci-dessous:
--- - Hôtes: Tâches de serveurs Web: • Nom: Créer un groupe de volume LVM LVG: VG: VG1 PVS: / dev / sda1 Pesize: 32
Cela crée un groupe de volumes au-dessus de / dev / sda1
partition avec une mesure physique de la taille de 32 MB.
Une fois créé, utilisez le lvol module pour créer un volume logique comme indiqué
Créer un volume logique
--- - Hôtes: Tâches de serveurs Web: - Nom: Créer un volume LVM LVOL: VG: VG1 LV: LVOL1 PVS: / DEV / SDA1
9. Gérer les systèmes de fichiers avec ANSIBLE
Pour créer un système de fichiers sur un périphérique de bloc, utilisez le système de fichiers module.
Créer un système de fichiers
Le playbook ci-dessous crée le type de système de fichiers de XFS sur le volume de bloc.
--- - Hôtes: Tâches de serveurs Web: - Nom: Créez un système de fichiers Système: FSTYPE: XFS DEV: / DEV / VG1 / LVOL1
Monter un système de fichiers
Vous pouvez ensuite procéder pour monter le volume de bloc en utilisant le monter Module comme indiqué dans le manuel ci-dessous:
--- - Hôtes: Tâches de serveurs Web: - Nom: Mont a un système de fichiers Mount: FSTYPE: XFS SRC: / DEV / VG1 / LVOL1 PATH: / OPT / WEB STAT: Monté
Conclusion
Cela conclut le sujet. Nous avons couvert diverses tâches d'administration du système qui peuvent être accomplies par des modules intégrés spécifiques dans les manuels anibles.
- « Comment créer des modèles dans ANSIBLE de créer des configurations sur les nœuds gérés - partie 7
- Polo - Un gestionnaire de fichiers moderne de poids léger pour Linux »