Выполнение заданий с привилегиями sudo в ANSIBLE PlayBook

У меня есть простой сборник пьес

- hosts: all
  remote_user: myusername
  become: yes
  become_user: myusername
  become_method: sudo
  tasks:
    - name: Install tmux
      apt: name=tmux state=present

Я получаю приведенную ниже ошибку при запуске playbook.

TASK: [Install tmux] ********************************************************** 
failed: [104.239.140.237] => {"failed": true}
stderr: E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

Я ссылался на http://docs.ansible.com/ansible/become.html чтобы повысить привилегии пользователя.

Пользователь 'myusername' принадлежит группе sudo.

$ sudo -l -U myusername
User myusername may run the following commands on this host:
    (ALL : ALL) ALL

Я могу успешно установить tmux, используя приведенную ниже команду на консоли. Не совсем уверен, чего мне не хватает, делая то же самое внутри книги.

$ sudo apt-get install tmux
Reading package lists... Done
Building dependency tree       
Reading state information... Done

1 ответ

Решение

Я хотел бы проверить или изменить файл sudoers для NOPASSWDВаша пьеса работает для меня, и я вижу только одно отличие:

User myusername may run the following commands on this host:
    (ALL : ALL) ALL
    (ALL) NOPASSWD: ALL

Это подтверждается документами Ansible, в которых говорится:

–become,-b
run operations with become (no password implied)

Если вы не можете изменить конфигурацию на стороне сервера для этого, вы все равно можете использовать sudo директивы.

http://docs.ansible.com/ansible/become.html

Другие вопросы по тегам