我已經設置了一個用戶david
誰擁有sudo權限。我可以ssh進入箱子並執行sudo操作,如apt-get install
。當我嘗試使用Ansible的「成爲特權升級」來做同樣的事情時,我得到一個permission denied
錯誤。因此,一個簡單的劇本可能是這樣的:Ansible非root sudo用戶和「成爲」特權升級
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", ...}
爲什麼我收到PERMIS錫永否認?
信息
我運行Ansible 2.1.1.0和我針對Ubuntu的16.04盒。如果我使用remote_user
和sudo
選項按Ansible < V1.9,它工作得很好,就像這樣: remote_user: david sudo: yes
更新
本地和遠程用戶名是相同的。爲了得到這個工作,我只需要指定become: yes
(參見@ techraf的回答):
什麼是用戶名,您在使用執行第一ssh連接遠程用戶? –
我認爲成爲用戶是root,改爲root大衛,它會起作用。 –
@helloV - 我也嘗試添加'成爲真正的'任務,結果是一樣的。 – DavB