【问题标题】:ansible sudo user not really sudoansible sudo 用户不是真正的 sudo
【发布时间】: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


【解决方案1】:

不要混淆 sudo_userremote_user

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

remote_user - 用于建立 SSH 连接

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

【讨论】:

  • @mikko-ohtamaa 建议我这样做,但是当删除 sudo_user 然后 ansible 挂出
  • @ghloogh 关于“不要使用 sudo_user”的回答是正确的。你的角色有问题。请发布 apt-sources 任务源或(更好地)创建一个新问题。
  • 现在已经发布了“apt-sources”任务,很明显。 sudo_user 不应该在那里。 /etc/apt/* 由 root 拥有,因此通过 ssh'ing 作为“deploy”,然后 sudo 到“deploy”用户,您无法写入该文件。
  • @montells 是否允许您的“部署”用户在不输入 sudo 密码 (NOPASSWD) 的情况下运行命令?如果没有,请尝试使用--ask-sudo-pass 参数运行您的剧本
猜你喜欢
  • 2018-06-09
  • 2015-01-12
  • 1970-01-01
  • 2016-11-11
  • 2020-06-17
  • 1970-01-01
  • 1970-01-01
  • 2019-01-18
  • 1970-01-01
相关资源
最近更新 更多