Я установил ящик с пользователем david
, у которого есть привилегии sudo. Я могу отправить ssh в поле и выполнить операции sudo, такие как apt-get install
. Когда я пытаюсь сделать то же самое, используя Ansible's «стать привилегией эскалации», я получаю ошибку permission denied
. Так простой Playbook может выглядеть следующим образом:Наблюдаемый пользователь root-пользователя, не являющийся пользователем root, и эскалация привилегий «стать»
simple_playbook.yml:
---
- name: Testing...
hosts: all
become: true
become_user: david
become_method: sudo
tasks:
- name: Just want to install sqlite3 for example...
apt: name=sqlite3 state=present
я запускаю этот сборник пьес с помощью следующей команды:
ansible-playbook -i inventory simple_playbook.yml --ask-become-pass
Это дает мне подсказку для пароля, который я даю, и я получаю следующую ошибку (сокращенно):
fatal: [123.45.67.89]: FAILED! => {...
failed: E: Could not open lock file /var/lib/dpkg/lock - open (13:
Permission denied)\nE: Unable to lock the administration directory
(/var/lib/dpkg/), are you root?\n", ...}
Почему я получаю ng разрешено?
Дополнительная информация
Я бегу анзибль 2.1.1.0 и Таргетинг коробку Ubuntu 16.04. Если я использую remote_user
и sudo
варианты согласно анзибль < v1.9, он отлично работает, как это: remote_user: david sudo: yes
Update
Локальные и удаленные имена пользователей одинаковы. Чтобы получить эту работу, мне просто нужно было указать become: yes
(см. Ответ @ techraf):
Что такое имя пользователя, удаленный пользователь, который вы используете, чтобы выполнить первое соединение SSH? –
Я думаю, что теперь пользователь станет root, замените корень вместо david, и он будет работать. –
@helloV - Я также попытался добавить «стать истинным» к задаче, и результат будет таким же. – DavB