Выполнение заданий с привилегиями 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
директивы.