Разница между become и become user в Ansible
недавно я начал копаться в Ansible и писать свои собственные playbooks. Тем не менее, у меня есть проблемы с пониманием разницы между become и become_user.
Как я понимаю это become_user что-то похожее на su <username> и become означает что-то вроде sudo su или "выполнять все команды как пользователь sudo". Но иногда эти две директивы смешиваются.
не могли бы вы объяснить правильное значение их?
1 ответов
become_user определяет пользователя, который используется для привилегий.
become просто флаг, чтобы либо активировать или деактивировать то же самое.
вот три примера, которые должны внести ясность:
-
эта задача будет выполнена как
root, потому чтоrootявляется пользователем по умолчанию для эскалации привилегий:- do: something become: yes -
эта задача будет выполнена как user
someone, потому что пользователь explciitly установил:- do: something become: yes become_user: someone -
эта задача ничего не будет делать с
become_user, потому чтоbecomeне установлен и по умолчаниюfalse/no:- do: something become_user: someone...если только become не был установлен в
trueна более высоком уровне, например, блок, playbook, group или host-vars и т. д.вот пример блок:
- become: yes block: - do: something become_user: someone - do: somethingпервый 1-й запускается как пользователь
someone, 2-й asroot.
как я понимаю, become_user-это что-то похожее на su , а become означает что-то вроде sudo su или "выполнять все команды как пользователь sudo".
по умолчанию become_method is sudo, так что sudo do something или sudo -u <become_user> do something