我正在尝试更改source.list。
主机有一个用户deploy
,密码为deploy
,我可以使用sudo
连接ssh并使用source.list创建任何内容。然而ansible似乎并没有真正对这个用户做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
安全输出
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 :(得分:7)
请勿混淆 sudo_user 和 remote_user
sudo_user - 是您正在切换以执行常规用户不允许的某些命令的特权用户(默认值,显然是 - root)
remote_user - 用于构建SSH连接
您已在广告资源中指定了remote_user,因此只需删除/评论sudo_user行并重试您的Playbook运行