ansible sudo用户不是真的sudo

mon*_*lls 2 sudo ansible ansible-playbook

我想改变source.list.

主机有一个用户deploy密码deploy,我可以连接ssh并使用source.list进行任何操作sudo.然而ansible似乎并没有真正对这个用户做sudo.这种行为发生在所有需要sudo的任务和角色上.

库存:

machine ansible_ssh_host=172.23.0.43 ansible_connection=ssh ansible_ssh_user=deploy ansible_ssh_pass=deploy
Run Code Online (Sandbox Code Playgroud)

角色/公寓来源/任务/ main.yml

- name: Copy source list
  copy: src=sources.list dest=/etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)

playbook.yml

---
- name: apt and base system
  hosts: machine
  sudo_user: deploy
  sudo: True
  roles:
    - apt-sources
Run Code Online (Sandbox Code Playgroud)

安排输出

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 
Run Code Online (Sandbox Code Playgroud)

运用

  • ansible:v1.6.6

  • 主机操作系统:Ubuntu 14.04

ghl*_*ogh 7

不要混淆sudo_userremote_user

sudo_user - 是特权用户,您正在切换以执行常规用户不允许的某些命令(默认值,显然是 - root)

remote_user - 用于构建SSH连接

您已在库存中指定了remote_user,因此只需删除/注释sudo_user行并重试您的Playbook运行