【发布时间】:2014-10-01 13:58:24
【问题描述】:
我正在尝试更改 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
roles/apt-sources/tasks/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
【问题讨论】:
-
尝试删除
sudo_user看看是否有帮助。 -
当删除
sudo_user然后 ansible 挂掉 -
挂起,因为从未完成某些特定任务?通常这表明某些软件正在等待用户交互(从键盘输入内容)并且 ansible 任务被执行。
-
@montells 你不想 sudo to
deploy,你想从那里以 deploy 和 sudo 身份登录。这就是人们(正确地)告诉你删除 sudo_user 的原因。 -
@montells 你想以 deploy 和 sudo to root 从 deploy 登录。 sudo_user 用于“sudoing to deploy from deploy”,这没有多大意义。您指定 sudo_user 的唯一情况是您的系统不使用“root”作为 root 帐户。
标签: sudo ansible ansible-playbook