Ansible

La directive Ansible Become pour exécuter des commandes en tant qu'utilisateur spécifié

La directive Ansible Become pour exécuter des commandes en tant qu'utilisateur spécifié

En utilisant Ansible, vous pouvez effectuer diverses opérations sur des machines distantes à l'aide de commandes brutes ou de playbooks Ansible. Par défaut, un playbook Ansible est exécuté sur l'hôte distant en tant que même utilisateur sur le contrôleur Ansible. Cela signifie que si vous devez exécuter une commande en tant qu'autre utilisateur sur la machine distante, vous devrez le spécifier explicitement dans votre playbook Ansible.

Pour implémenter la fonctionnalité d'exécution de commandes en tant qu'autre utilisateur, vous devrez utiliser la fonctionnalité sudo disponible dans les systèmes Linux. La directive Ansible devient vous permet d'exécuter des commandes en tant qu'utilisateur spécifié.

Les informations de l'utilisateur sont spécifiées dans un playbook Ansible à l'aide des variables de devenir, telles que devenir_pass, pour spécifier le mot de passe de l'utilisateur devenu_utilisateur, ainsi que quel utilisateur peut exécuter la commande.

Comment exécuter des tâches Ansible en tant que root

Pour exécuter une commande spécifique en tant qu'utilisateur root dans Ansible, vous pouvez implémenter la directive devenir et définir la valeur sur 'true.' Faire cela indique à Ansible d'implémenter sudo sans arguments lors de l'exécution de la commande.

Par exemple, considérons un playbook Ansible qui met à jour le package du serveur MySQL, puis le redémarre. Dans les opérations Linux normales, vous devez vous connecter en tant qu'utilisateur root pour effectuer de telles tâches. Dans Ansible, vous pouvez simplement appeler la directive devenir: oui, comme indiqué ci-dessous :

- hôtes : tous
devenir : oui
Tâches:
- nom: Ansible s'exécute en tant que root et met à jour le système
Miam:
nom : mysql-server
état : dernier
- Nom:
un service.un service:
nom : mysqld
état : redémarré

Dans le playbook ci-dessus, nous avons utilisé la directive devenir et n'avons pas spécifié l'utilisateur devenir_utilisateur, car toutes les commandes sous la directive devenir sont exécutées en tant que root par défaut.

Cela revient à le spécifier comme :

- hôtes : tous
devenir : oui
devenir_utilisateur : root
Tâches:
- nom: Ansible s'exécute en tant que root et met à jour le système
Miam:
nom : mysql-server
état : dernier
- nom:service.un service:
nom : mysqld
état : redémarré

Comment exécuter des tâches Ansible en tant que Sudo

Pour exécuter une tâche Ansible en tant qu'utilisateur spécifique, plutôt que l'utilisateur root normal, vous pouvez utiliser la directive devenir_utilisateur et transmettre le nom d'utilisateur de l'utilisateur pour exécuter la tâche. C'est un peu comme utiliser la commande sudo -u sous Unix.

Pour implémenter la directive devenir_utilisateur, vous devez d'abord activer la directive devenir, car le devenir_utilisateur est inutilisable sans cette directive activée.

Considérez le playbook suivant, dans lequel la commande est exécutée en tant qu'utilisateur personne.

- name : Exécuter une commande en tant qu'autre utilisateur (personne)
commande : ps aux
devenir vrai
devenir_méthode : su
devenir_utilisateur : personne
devenir_flags : '-s /bin/bash'

Dans l'extrait de playbook ci-dessus, nous avons implémenté les directives devenir, devenir_utilisateur et autres.

  1. devenir_méthode: Ceci définit la méthode d'escalade des privilèges, telle que su ou sudo.
  2. directive devenir_utilisateur: Ceci spécifie l'utilisateur sous lequel exécuter la commande ; cela n'implique pas de devenir : oui.
  3. devenir_drapeaux: Ceci définit les indicateurs à utiliser pour la tâche spécifiée.

Vous pouvez maintenant exécuter le playbook ci-dessus avec le nom de fichier ansible-playbook.yml et voyez le résultat par vous-même. Pour les tâches avec une sortie, vous devrez peut-être implémenter le module de débogage.

Comment exécuter Ansible avec mot de passe

Pour exécuter une directive de devenir qui nécessite un mot de passe, vous pouvez dire à Ansible de demander un mot de passe lors de l'appel du playbook spécifié.

Par exemple, pour exécuter un playbook avec un mot de passe, saisissez la commande ci-dessous :

ansible-playbook devenir_passe.yml --ask-become-pass

Vous pouvez également spécifier l'indicateur -K, qui effectue des opérations similaires à la commande ci-dessus. Par example:

ansible-playbook devenir_passe.yml -K

Une fois spécifié, un mot de passe vous sera demandé lors de l'exécution des tâches.

REMARQUE: Vous pouvez également utiliser la directive devenir dans les commandes brutes Ansible AD HOC à l'aide de l'indicateur -b. Pour en savoir plus, consultez la documentation fournie ci-dessous :

https://linkfy.à/devenirDocumentation

Conclusion

Après avoir lu cet article, vous devriez maintenant savoir comment utiliser la directive Ansible BECOME pour effectuer une élévation de privilèges pour diverses tâches.

Pour des raisons de sécurité, il est préférable d'implémenter des restrictions pour différents comptes et de spécifier explicitement quand ils sont utilisés. Ainsi, l'élévation des privilèges est un aspect important de l'utilisation de sudo et su dans Ansible.

Le bouton de clic gauche de la souris ne fonctionne pas sous Windows 10
Si vous utilisez une souris dédiée avec votre ordinateur portable ou de bureau mais que le le clic gauche de la souris ne fonctionne pas sur Windows 1...
Le curseur saute ou se déplace de manière aléatoire lors de la saisie dans Windows 10
Si vous constatez que le curseur de votre souris saute ou se déplace tout seul, automatiquement, au hasard lors de la saisie sur un ordinateur portabl...
Comment inverser le sens de défilement de la souris et des pavés tactiles dans Windows 10
Souris et Pavé tactiles rendent non seulement l'informatique facile, mais plus efficace et moins chronophage. Nous ne pouvons pas imaginer une vie san...