1 votes

Escalade des privilèges d'Ansible une fois par jeu

J'utilise l'Ansible become pour exécuter des jeux avec un utilisateur différent. Voici un exemple de mon site.yml :

- hosts: webserver
  remote_user: ansible_user
  become: true
  roles:
    - role_a
    - role_b

Cela fonctionne comme prévu : Ansible utilise ansible_user pour se connecter à webserver y sudo ensuite pour exécuter les tâches dans les rôles définis en tant que root . Cependant, il fonctionne sudo une fois par tâche dans chacun des rôles, ce qui entraîne un surcoût important puisque l'exécution sudo est plutôt lent.

Comment puis-je configurer Ansible pour qu'il applique ses règles de sécurité ? become -configuration une fois par jeu au lieu d'une fois par tâche ?

1 votes

L'exécution de sudo ne devrait pas être lente. Cela indique un problème sérieux que vous devez trouver et corriger dès que possible.

0 votes

Lent comme dans une fraction de seconde. Cela ajoute un certain retard dont j'aimerais me débarrasser lors de l'exécution de centaines de tâches. Il n'y a pas de problème avec la configuration sudo.

1 votes

Je ne suis pas sûr que vous puissiez le faire, simplement parce que chaque tâche est téléchargée et exécutée séparément. Mais je suis curieux de voir ce que chacun peut inventer.

1voto

Dunedan Points 131

L'escalade de privilèges n'est possible qu'une seule fois par jeu en utilisant les éléments suivants Mitogen pour Ansible .

De leur documentation :

Une connexion est utilisée par cible, en plus d'une invocation sudo par compte utilisateur. C'est beaucoup mieux que le multiplexage SSH combiné au pipelining, car un état significatif peut être maintenu en RAM entre les étapes, et les journaux système ne sont pas spammés avec des événements d'authentification répétés.

Mitogen offre également d'autres avantages en termes de performances pour les jeux en cours, comme la réutilisation des interprètes Python.

Il n'est cependant pas compatible avec toutes les configurations Ansible car il remplace des parties importantes d'Ansible ! Leur documentation liste Différences notables par rapport à la version classique d'Ansible Certains d'entre eux pourraient nécessiter des changements dans les manuels de jeu ou rendre leur utilisation complètement irréalisable.

0 votes

Mitogen est un fork d'Ansible qui modifie de manière significative le fonctionnement des plugins de connexion, et dispose d'un sous-ensemble de fonctionnalités. mitogen.networkgenomics.com/ Personnellement, je ne considère pas qu'un nombre de secondes à un chiffre vaille la peine d'être converti en Mitogen.

0 votes

Dans mon cas d'utilisation, avec toutes ses autres améliorations de performances, Mitogen réduit le temps nécessaire à l'application des tâches à un tiers du temps précédent. C'est assez impressionnant, surtout que je n'ai pas eu à changer quoi que ce soit dans mes playbooks pour que cela fonctionne.Vous avez raison cependant, je devrais mentionner dans l'anwser que Mitogen n'est pas compatible avec toutes les configurations Ansible.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X