Comment configurer les nœuds gérés anibles et exécuter les commandes ad hoc - partie 3
- 4864
- 1218
- Jade Muller
Dans les deux précédents articles de cette série ANSIBLE, nous avons expliqué les composants centraux d'ANSIBL et la configuration du nœud de contrôle anible. Dans cette partie 3, nous montrerons comment vous pouvez configurer des nœuds gérés anibles pour exécuter des commandes ad hoc sur les hôtes distants.
Configurer l'authentification SSH sans mot de passe aux nœuds gérés anibles
En tant que récapitulatif sur notre dernier sujet, la gestion des hôtes distants avec ANSIBLE nécessite la configuration de l'authentification SSH sans mot de passe entre le nœud de contrôle Ansible et les hôtes gérés. Cela implique la génération d'une paire de clés (paire de clés SSH publique et privée) sur le nœud de contrôle ANSIBLE et copiant la clé publique de tous les hôtes éloignés. Ce sera une étape cruciale à l'avenir et rendra votre travail beaucoup plus facile.
Configurer l'escalade des privilèges sur les nœuds gérés
Lorsqu'il est connecté en tant qu'utilisateur régulier, vous devrez peut-être effectuer certaines tâches sur les nœuds gérés qui nécessitent des privilèges élevés ou des privilèges racine. Ces tâches incluent la gestion des packages, l'ajout de nouveaux utilisateurs et groupes et de la modification des configurations du système pour mentionner juste mais quelques-uns. Pour y parvenir, vous devez invoquer certaines directives dans le Playbook pour exécuter les tâches en tant qu'utilisateur privilégié sur les hôtes distants.
devenir
Anible vous permet de 'devenir' Un autre utilisateur sur le nœud géré différent de celui actuellement connecté. Le devenir: oui
La directive augmente vos privilèges et vous permet d'effectuer des tâches qui nécessitent des privilèges racinaires tels que l'installation et la mise à jour des packages et le redémarrage du système.
Considérez un livre de jeu httpd.YML
qui installe et démarre Apache Webserver comme indiqué:
--- - Nom: Installer et démarrer Apache Webserver Hosts: tâches de serveurs Web: - Nom: Installer httpd yum: name = httpd state = dernier devenir: oui - Nom: Vérifiez le service d'état HTTPD: name = httpd state = démarré
Le devenir: oui
La directive vous permet d'exécuter des commandes en tant qu'utilisateur racine sur l'hôte distant.
devenir_user
Une autre directive que vous pouvez utiliser pour devenir un autre utilisateur est le devenir_user. Cela vous permet de passer à un utilisateur sudo sur l'hôte distant lors de la connexion et non à l'utilisateur que vous vous connectez en tant que.
Par exemple, pour exécuter une commande comme Tecmint L'utilisateur sur la télécommande utilise la directive comme indiqué.
- Nom: Exécutez une commande comme la commande utilisateur Apache: SomeMand devient: Oui devenu_user: Tecmint
devenir_method
Cette directive remplacera la méthode par défaut définie dans anable.CFG fichier qui est généralement défini sur sudo.
devenu_flags
Ceux-ci sont utilisés au niveau de la pièce ou de la tâche, par exemple lorsque vous devez passer à un utilisateur lorsque le shell est réglé sur Nologine.
Par exemple,
- Nom: Exécutez une commande comme personne de commande: SomeMand Devenez: VRAI CETTE_METHOD: SU CELD_USER: PERSONNE CETTE_FLAGS: '-s / bin / sh'
Options de ligne de commande dans l'escalade des privilèges
Jetons un coup d'œil à certaines des options de ligne de commande que vous pouvez utiliser pour élever vos privilèges lors de l'exécution des commandes:
--demander-becol
,-K
- Cela vous invite au mot de passe de l'utilisateur sudo sur le système distant que vous essayez de connecter.
$ anible-playbook myplaybook.yml --ask-become-passANIBLE deviendrez
--devenir
,-b
- Cela vous permet d'exécuter la tâche en tant qu'utilisateur racine sans inciter à un mot de passe.
$ anible-playbook myplaybook.YML - Become
--devenir utilisateur = devenir_user
- Il vous permet d'exécuter des tâches en tant qu'un autre utilisateur.
$ anible-playbook myplaybook.yml --become-user = tecmintANNIBLE DEVEZ UTILISATION
Valider une configuration de travail à l'aide de commandes ANSIBLE ad hoc
Parfois, vous voudrez peut-être effectuer des tâches rapides et simples sur des hôtes ou des serveurs distants dans ANSIBLE sans nécessairement avoir à créer un livre de jeu. Dans ce cas, vous devrez exécuter un ad hoc commande.
Qu'est-ce qu'une commande adhoc?
Un anible commande ad hoc est une commande en ligne qui vous aide à exécuter des tâches simples de manière simple mais efficace sans avoir besoin de créer des manuels. Ces tâches incluent la copie de fichiers entre les hôtes, le redémarrage des serveurs, l'ajout et la suppression des utilisateurs et l'installation d'un seul package.
Dans ce tutoriel, nous explorons diverses applications des commandes ad hoc ANSIBL. Nous allons utiliser le fichier d'inventaire Ci-dessous pour une démonstration.
[Webservers] 173.82.115.165 [Database_Servers] 173.82.202.239
Utilisation de base des commandes ADHOC
L'utilisation la plus élémentaire des commandes ANSIBL-ADHOC est un ping à un hôte ou un groupe d'hôtes.
# anible -m ping tout
Dans la commande ci-dessus, le -m
Le paramètre est l'option de module. Ping est la commande ADHOC et le deuxième paramètre représente tous tous les hôtes du fichier d'inventaire. La sortie de la commande est illustrée ci-dessous:
Pour ping, un groupe particulier d'hôtes, remplacer 'tous' paramètre avec le nom du groupe. Dans l'exemple ci-dessous, nous testons la connectivité avec des hôtes dans le groupe de serveurs Web.
# anible -m ping webserVersGroupe de ping anable des hôtes
De plus, vous pouvez utiliser le -un
Attribut pour spécifier les commandes Linux régulières en double guillemets. Par exemple, pour vérifier la disponibilité du système des systèmes distants, exécutez:
# ANSIBLE -A "Up-temps"ANNESCIBLE Vérifier la disponibilité de l'hôte distant
Pour vérifier l'utilisation du disque des hôtes distants.
# anible -a "df -th" toutUtilisation du disque de contrôle des hôtes éloignés
Il y a des centaines et des centaines de modules que vous pouvez utiliser avec la commande ADHOC. Pour afficher toute la liste des modules avec leurs descriptions, exécutez la commande ci-dessous.
# anible-doc -l
Pour afficher des informations détaillées sur un module particulier, exécutez la commande.
# anible-doc module_name
Par exemple, pour rechercher plus de détails sur le module miam courir:
# yum anable-docModule de chèque anable
Gérer les forfaits / services avec ANMIBLE
Les commandes ADHOC ANSIBL peuvent être utilisées pour l'installation et la suppression des packages en utilisant Miam et apte Gestionnaires de package.
Pour installer le serveur Web Apache sur le Centos 7 Hôte sous le groupe Webservers dans le fichier d'inventaire Exécutez la commande:
# ANSIBLE Webservers -m yum -a "name = httpd state = présent"ANSIBLE installer Apache sur les hôtes distants
Pour vérifier l'installation du serveur Web Apache, connectez-vous au client distant et exécutez.
# RPM -QA | grep httpdConfirmer l'installation d'Apache
Pour désinstaller Apache, changez simple à l'état de cadeau pour absent.
# ANSIBLE Webservers -m yum -a "name = httpd state = absent"ANNIBLE supprimer Apache
Encore une fois, pour confirmer la suppression de la course HTTPD.
# RPM -QA | grep httpdConfirmer la suppression d'Apache
Comme observé, les packages de serveurs Web Apache ont été purgés.
Création d'utilisateurs et de groupes à l'aide d'Anible
Lors de la création d'utilisateurs, le 'utilisateur'Le module est utile. Pour créer un nouvel utilisateur James avec mot de passe chapeau rouge sur le système de données du système client_server, émettez la commande.
# ANSIBLE DATABASE_SERVER -M USER -A "NAME = JAMES PASSOTS = REDHAT"ANNIBLE Créer un utilisateur sur des hôtes distants
Pour confirmer la création du nouvel utilisateur, exécutez la commande:
# ANSIBLE DATABASE_SERVERS -A "ID James"ANNIBLE Confirmer la création d'utilisateurs
Pour supprimer l'utilisateur, exécutez la commande:
# ANSIBLE DATABASE_SERVERS -M User -A "Name = James State = Absente"ANSIBLE Supprimer l'utilisateur
Escalade des privilèges
Si vous utilisez ANSIBLE en tant qu'utilisateur régulier, ANIBLE fournit une escalade de privilèges chez les hôtes distants --devenir
option pour acquérir des privilèges racinaires et -k
Pour inviter le mot de passe.
Par exemple, pour exécuter la commande ADHOC ANSIBLE 'netstat -pnltu'Avec l'option privilégiée --devenir
et option -K
Pour inciter le mot de passe de l'utilisateur racine à exécuter la commande.
$ anible webservers -m shell -a 'netstat -pnltu' --become -kEscalade des privilèges et
Pour devenir un autre utilisateur autre que root, utilisez le --devenir utilisateur
attribut.
Par exemple pour courir 'df -th' comme Tecmint Utilisateur sur les hôtes distants et invite à l'exécution du mot de passe:
$ anible all -m shell -a 'df -th' --become-user tecmint -kAnable devient un autre utilisateur
Rassembler des faits sur les systèmes hôtes
Faits Reportez-vous à des informations détaillées sur un système. Cela comprend des informations sur l'adresse IP, l'architecture système, la mémoire et le processeur pour en mentionner quelques-uns.
Pour récupérer des informations sur les hôtes distants, exécutez la commande:
$ anible all -m configurationANIBLE Rasseoir les faits du système
Fichiers de transfert / copie de fichiers
Anible utilise le module copie Pour copier en toute sécurité les fichiers du contrôle ANSIBL à plusieurs hôtes distants.
Vous trouverez ci-dessous un exemple d'opération de copie:
# ANSIBLE Webservers -m copie -a "src = / var / log / sécurisé dest = / tmp /"ANNIBLE Copier les fichiers à l'hôte distant
La commande copie le / var / log / sécurisé fichier dans le nœud de contrôle anable aux hôtes distants du groupe de serveurs Web dans le / tmp destination.
Vous pouvez utiliser le module de fichier pour modifier les autorisations et déposer la propriété.
# Fichier de serveurs de webServers -M -a "dest = / tmp / mode sécurisé = 600"Autorisations de fichiers de modification anibles
De plus, vous pouvez ajouter les arguments du propriétaire et du groupe comme indiqué:
# anable webservers -m fichier -a "dest = / tmp / sécurisé mode = 600 propriétaire = Tecmint Group = Tecmint"Attributs d'utilisateur et de groupe anneibles
Vous pouvez également créer des répertoires, de manière similaire à mkdir -p
comme montré.
$ anible webservers -m fichier -a "dest = / path / to / directory mode = 755 propriétaire = Tecmint Group = Tecmint State = Directory"
Par exemple,
$ anible webservers -m fichier -a "dest = / home / tecmint / data mode = 755 propriétaire = Tecmint Group = Tecmint State = répertoire"Anible crée un répertoire
Conclusion
Dans cet article, nous avons mis en lumière la façon dont vous pouvez configurer les nœuds gérés pour exécuter des commandes ad hoc anibles pour gérer. Nous espérons que vous l'avez trouvé utile. Donnez-nous un coup de feu et dites-nous comment ça s'est passé.
- « Comment installer et utiliser MS SQL Server sur Linux
- Comment installer la console Web du cockpit dans Rhel 8 »