it-swarm.com.ru

Разница между стать и стать_пользователем в Ansible

Недавно я начал копаться в Ansible и писать свои собственные пьесы. Однако у меня возникли проблемы с пониманием разницы между become и ​​become_user. Как я понимаю become_user это что-то похожее на su <username>, а become означает что-то вроде Sudo su или "выполнять все команды как пользователь Sudo". Но иногда эти две директивы смешаны.

Не могли бы вы объяснить их правильное значение?

38
Andrey Rusanov

become_user определяет пользователя, который используется для повышение привилегий .

become - это просто флаг, чтобы активировать или деактивировать его.

Вот три примера, которые должны прояснить это:

  1. Эта задача будет выполнена как root, потому что root является пользователем по умолчанию для повышения привилегий:

    - do: something
      become: yes
    
  2. Эта задача будет выполнена как пользователь someone, потому что пользователь явно установлен:

    - do: something
      become: yes
      become_user: someone
    
  3. Эта задача ничего не сделает с become_user, потому что become не установлено и по умолчанию false/no:

    - do: something
      become_user: someone
    

    ... если для параметра get не было установлено значение true на более высоком уровне, например блок, playbook, группа или Host-Vars и т. д.

    Вот пример с блок :

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

    Первый 1-й выполняется как пользователь someone, второй - как root.

Насколько я понимаю, становление становиться чем-то похожим на su, а становление означает что-то вроде Sudo su или "выполнять все команды как пользователь Sudo".

По умолчанию become_method это Sudo, поэтому Sudo do something или Sudo -u <become_user> do something

Fineprint: Конечно, " do: что-то " является псевдокодом. Поместите туда настоящий модуль Ansible.

76
udondan