Какой ключ в Ansible используется для повышения привилегий при выполнении задачи?

«Какой ключ в Ansible используется для повышения привилегий при выполнении задачи?» — вопрос из категории Ansible, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для повышения привилегий используется директива become: yes. По умолчанию она использует sudo, но метод можно изменить с помощью become_method.

Пример задачи с установкой пакета:

- name: Install nginx package
  ansible.builtin.apt:
    name: nginx
    state: present
  become: yes
  become_user: root  # Опционально, указывает пользователя

Ключевые моменты:

  • Для работы become: yes на управляемых хостах должен быть настроен sudo (обычно через файл /etc/sudoers).
  • Пароль для повышения прав можно передать интерактивно с флагом --ask-become-pass или задать в переменных инвентаря как ansible_become_password.
  • Альтернативные методы повышения прав: become_method: su (требует пароль root) или pbrun для PowerBroker.