ansible sudo用户不是真sudo

问题描述:

我想改变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

不要混淆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