Разница между 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