2014-10-01 104 views
2

我想改變source.list。ansible sudo用戶不是真sudo

主持人有一個用戶deploy與密碼deploy哪一個我可以連接ssh和使用sudo source.list做任何事情。然而,anaru似乎並沒有真正對這個用戶進行sudo操作。這種行爲發生在所有需要sudo的任務和角色上。

庫存:

machine ansible_ssh_host=172.23.0.43 ansible_connection=ssh ansible_ssh_user=deploy ansible_ssh_pass=deploy 

角色/公寓來源/任務/ main.yml

- name: Copy source list 
    copy: src=sources.list dest=/etc/apt/sources.list 

playbook.yml

--- 
- name: apt and base system 
    hosts: machine 
    sudo_user: deploy 
    sudo: True 
    roles: 
    - apt-sources 

ansible輸出

failed: [machine] => {"failed": true, "md5sum": "74b6936296cdd0c94ef9b1f848bf2dab"} 
msg: Destination /etc/apt not writable 

FATAL: all hosts have already failed -- aborting 

PLAY RECAP ******************************************************************** 
      to retry, use: --limit @/home/montells/provision.retry 

machine    : ok=1 changed=0 unreachable=0 failed=1 

使用

  • ansible:v1.6.6

  • 主機操作系統:Ubuntu的14.04

+0

嘗試刪除'sudo_user'並查看是否有幫助。 – 2014-10-01 14:06:12

+0

當刪除'sudo_user'然後無法掛起 – montells 2014-10-01 14:13:37

+0

掛起在從未完成一些特定的任務?通常這表示某些軟件正在等待用戶交互(從鍵盤輸入內容),而且任務非常艱鉅。 – 2014-10-01 14:42:53

回答

7

不要混淆sudo_userREMOTE_USER

sudo_user - 是特權用戶您切換執行不允許普通用戶(默認值,很明顯 - 根)一些命令

REMOTE_USER - 用於構建SSH連接

你已經在你的庫存指定REMOTE_USER,所以才刪除/評論sudo_user線,然後重試運行劇本

+0

@ mikko-ohtamaa推薦我說,但是當刪除sudo_user時,然後ansible掛出 – montells 2014-10-01 16:35:38

+0

@ ghloogh的回答是正確的關於「不要使用sudo_user」。你的角色有問題。請發佈apt-sources任務源,或者(更好地)創建一個關於該問題的新問題。 – tedder42 2014-10-01 17:12:12

+1

現在已經發布了'apt-sources'任務,這很明顯。 sudo_user不應該在那裏。/etc/apt/*由root擁有,所以通過ssh'ing作爲'deploy',然後sudoing到'deploy'用戶,你不能寫這個文件。 – tedder42 2014-10-01 18:52:51