web-dev-qa-db-fra.com

Différence entre devenir et devenir_user dans Ansible

Récemment, j'ai commencé à fouiller dans Ansible et à écrire mes propres cahiers. Cependant, j'ai du mal à comprendre la différence entre become et become_user. Si je comprends bien become_user est quelque chose de similaire à su <username> et become signifie quelque chose comme Sudo su ou "exécuter toutes les commandes en tant qu'utilisateur Sudo". Mais parfois, ces deux directives sont mélangées.

Pourriez-vous expliquer leur signification?

38
Andrey Rusanov

become_user définit l'utilisateur qui est utilisé pour élévation de privilèges .

become est simplement un drapeau pour activer ou désactiver le même.

Voici trois exemples qui devraient clarifier les choses:

  1. Cette tâche sera exécutée en tant que root, car root est l'utilisateur par défaut pour l'élévation des privilèges:

    - do: something
      become: yes
    
  2. Cette tâche sera exécutée en tant qu'utilisateur someone, car l'utilisateur est défini de manière explicite:

    - do: something
      become: yes
      become_user: someone
    
  3. Cette tâche ne fera rien avec become_user, parce que become n'est pas défini et que sa valeur par défaut est false/no:

    - do: something
      become_user: someone
    

    ... à moins que devienne devienne true à un niveau supérieur, par ex. un bloc, le playbook, le groupe ou host-vars etc.

    Voici un exemple avec un bloc :

    - become: yes
      block:
        - do: something
          become_user: someone
        - do: something
    

    Le premier 1er est exécuté en tant qu'utilisateur someone, le deuxième en tant que root.

Si j'ai bien compris, le fait de devenir utilisateur est quelque chose de similaire à su et que cela signifie quelque chose comme Sudo su ou "exécuter toutes les commandes en tant qu'utilisateur Sudo".

Le défaut become_method est Sudo, donc Sudo do something ou Sudo -u <become_user> do something

Fineprint: Bien sûr, " do: quelque chose " est un pseudocode. Mettez-y le module Ansible actuel.

76
udondan