Директива Ansible Become для выполнения команд от имени указанного пользователя

Ansible Become Directive Run Commands



Используя Ansible, вы можете выполнять различные операции на удаленных машинах, используя необработанные команды или сценарии воспроизведения Ansible. По умолчанию плейбук Ansible выполняется на удаленном хосте от имени того же пользователя на контроллере Ansible. Это означает, что если вам нужно запустить команду от имени другого пользователя на удаленном компьютере, вам нужно будет явно указать ее в своей книге воспроизведения Ansible.

Чтобы реализовать функциональность запуска команд от имени другого пользователя, вам нужно будет использовать функцию sudo, доступную в системах Linux. Директива Ansible стала позволяет запускать команды от имени указанного пользователя.







Информация о пользователе указывается в плейбуке Ansible с использованием переменных стать, таких как стать_пасс, для указания пароля пользователя стать_пользователем, а также того, какой пользователь может запускать команду.



Как запустить Ansible Tasks от имени пользователя root

Чтобы запустить определенную команду от имени пользователя root в Ansible, вы можете реализовать директиву становиться и установить значение «true». Это указывает Ansible реализовать sudo без аргументов при запуске команды.



Например, рассмотрим Ansible playbook, который обновляет пакет MySQL-server, а затем перезапускает его. В обычных операциях Linux вам нужно будет войти в систему как пользователь root для выполнения таких задач. В Ansible вы можете просто вызвать директиву begin: yes, как показано ниже:





- хосты: все

стали:да

задания:

- имя: Ansible runв качествеroot и обновить sys

ням:

имя: mysql-server

состояние: последнее

- имя:

service.service:
имя: mysqld

состояние: перезапущен

В приведенном выше сборнике сценариев мы использовали директиву стать и не указали пользователя begin_user, поскольку любые команды в соответствии с директивой стали по умолчанию запускаются от имени пользователя root.

Это похоже на указание его как:



- хосты: все

стали:да

стать_пользователем: корень

задания:

- имя: Ansible runв качествеroot и обновить sys

ням:
имя: mysql-server

состояние: последнее

- имя: service.service:

имя: mysqld

состояние: перезапущен

Как запускать Ansible Tasks от имени Sudo

Чтобы запустить задачу Ansible от имени конкретного пользователя, а не обычного пользователя root, вы можете использовать директиву begin_user и передать имя пользователя для выполнения задачи. Это очень похоже на использование команды sudo -u в Unix.

Чтобы реализовать директиву стать_пользователем, вы должны сначала активировать директиву стала, так как стать_пользователем нельзя использовать без активированной этой директивы.

Рассмотрим следующую книгу, в которой команда запускается от имени пользователя nobody.

- имя: Запуститькоманда в качестведругой пользователь(никто)
команда:псиз

стали:правда

стать_метод:это

стать_пользователем: никто

стать_flags:'-s / bin / bash'

В приведенном выше фрагменте сценария мы реализовали директивы стать, стать_user и другие стали.

  1. стать_методом : Устанавливает метод повышения привилегий, например su или sudo.
  2. директива стать_user : Указывает пользователя, который будет запускать команду; это не означает стать: да.
  3. стать_флагами : Устанавливает флаги, которые будут использоваться для указанной задачи.

Теперь вы можете запустить вышеуказанный playbook с помощью ansible-playbook filename.yml и увидеть результат самостоятельно. Для задач с выводом может потребоваться реализация модуля отладки.

Как запустить Ansible с паролем

Чтобы запустить директиву стать, для которой требуется пароль, вы можете указать Ansible запрашивать пароль при вызове указанной книги воспроизведения.

Например, чтобы запустить playbook с паролем, введите команду ниже:

ansible-playbook стать_pass.yml--ask-стать-пройти

Вы также можете указать флаг -K, который выполняет операции, аналогичные приведенной выше команде. Например:

ansible-playbook стать_pass.yml

После указания вам будет предложено ввести пароль при выполнении задач.

ПРИМЕЧАНИЕ : Вы также можете использовать директиву стать в необработанных командах Ansible AD HOC с помощью флага -b. Чтобы узнать больше, ознакомьтесь с документацией, представленной ниже:

https://linkfy.to/becomeDocumentation

Заключение

После прочтения этой статьи вы теперь должны знать, как использовать директиву Ansible BECOME для повышения привилегий для различных задач.

В целях безопасности лучше ввести ограничения для различных учетных записей и явно указать, когда они используются. Итак, повышение привилегий - важный аспект использования sudo и su в Ansible.