Ansible

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

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

Используя 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 запускается как root и обновляет sys
ням:
имя: mysql-server
состояние: последнее
- название:
услуга.услуга:
имя: mysqld
состояние: перезапущен

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

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

- хосты: все
стать: да
стать_пользователем: корень
задачи:
- имя: Ansible запускается как root и обновляет sys
ням:
имя: mysql-server
состояние: последнее
- имя: служба.услуга:
имя: mysqld
состояние: перезапущен

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

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

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

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

- name: запустить команду от имени другого пользователя (никто)
команда: ps aux
становятся истинными
стать_метод: su
стать_пользователем: никто
стать_флагами: '-s / bin / bash'

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

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

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

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

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

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

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

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

ansible-playbook стать_pass.yml -K

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

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

https: // linkfy.в / статьДокументация

Заключение

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

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

Левая кнопка мыши не работает в Windows 10
Если вы используете выделенную мышь со своим ноутбуком или настольным компьютером, но левая кнопка мыши не работает в Windows 10/8/7 по какой-то причи...
Курсор прыгает или перемещается случайным образом при наборе текста в Windows 10
Если вы обнаружите, что ваш курсор мыши прыгает или перемещается сам по себе, автоматически, случайным образом при вводе текста на ноутбуке или компью...
Как изменить направление прокрутки мыши и сенсорной панели в Windows 10
Мышь а также Сенсорная панельs не только упрощают вычисления, но и делают их более эффективными и требуют меньше времени. Мы не можем представить себе...