【问题标题】:Prevent ansible from using sudo防止 ansible 使用 sudo
【发布时间】:2016-04-18 17:00:07
【问题描述】:

我正在尝试运行 ansible playbook:

ansible-playbook -i myserver.com, ansible/playbooks/myplaybook.yml -vvv

但它会尝试在我没有 sudo 权限的远程服务器上执行 sudo 命令,并在提示输入密码时挂起:

<myserver.com> ESTABLISH CONNECTION FOR USER: my_username on PORT 22 TO myserver.com
<myserver.com> REMOTE_MODULE setup
<myserver.com> EXEC /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1460997867.84-241373750954463 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1460997867.84-241373750954463 && echo $HOME/.ansible/tmp/ansible-tmp-1460997867.84-241373750954463'
<myserver.com> PUT /var/folders/31/y5npmcgn7777f5063rgjf6_hc7rppt/T/tmptR7HbV TO /home/my_username/.ansible/tmp/ansible-tmp-14609823867.84-241373750954463/setup
<myserver.com> EXEC /bin/sh -c 'sudo -k && sudo -H -S -p "[sudo via ansible, key=afasdfakjdfasdgrefavf] password: " -u root /bin/sh -c '"'"'echo BECOME-SUCCESS-mwpxbbscfnbmmgqspgerjcwapghlvcbo; LANG=C LC_CTYPE=C /usr/bin/python /home/my_username/.ansible/tmp/ansible-tmp-14609823867.84-241373350954463/setup; rm -rf /home/my_username/.ansible/tmp/ansible-tmp-14609823867.84-241373350954463/ >/dev/null 2>&1'"'"''

failed: [myserver.com] => {"failed": true, "parsed": false}
[sudo via ansible, key=afasdfakjdfasdgrefavf] password: 

该剧本似乎适用于我团队中的其他人,所以我不确定发生了什么,这是我第一次使用 Ansible,所以如果我遗漏了一些明显的东西,我很抱歉。

---
- hosts: all

  vars_prompt:
  - name: "my_brancyh"
    prompt: "My branch:"
    default: "dev"
    private: no
  - name: "password"
    prompt: "Enter password"

  vars:
    proxy_url: "my_proxy"

  environment:
    PASSWORD: "{{password}}"
    HTTP_PROXY: http://{{ lookup('env', 'USER') }}:{{password}}@{{proxy_url}}:8099
    HTTPS_PROXY: http://{{ lookup('env', 'USER') }}:{{password}}@{{proxy_url}}:8099

  tasks:
  - name: create my environment
    shell: "{{item}}"
    with_items:
      - /opt/anaconda/anaconda/bin/conda create -y -p ~/envs/alvin --no-default-packages --no-pin python==2.7.9
      - mkdir ~/envs/my/src

【问题讨论】:

  • 请添加 ansible/playbooks/myplaybook.yml 的第一行以了解对您的帮助。
  • 抱歉,必须从那里清除一些专有的东西,如果缺少它需要的东西,请告诉我。
  • 我刚刚读到一篇文章,关于某个人在他的 ansible 网络上运行 rm -rf /,他在该网络上托管了 1500 个网站(并且备份也在网络上)......男孩本可以从中受益不作为 sudo 运行
  • @JoranBeasley It was a falsified story.

标签: python ansible sudo


【解决方案1】:

检查您的 /etc/ansible/ansible.conf 或 ~/.ansible.cfg 可能您的环境将 sudo 设置为全局参数。

【讨论】:

  • 这听起来像是在正确的轨道上,但是当我运行 ansible-playbook -i myserver.com, -u myuser ansible/playbooks/myplaybook.yml -vvv 它仍然尝试运行 sudo 命令并遇到同样的问题。用户在本地似乎很好,但在远程机器上看起来它仍在尝试使用 root。
  • 检查您的 /etc/ansible/ansible.conf 可能您的环境将 sudo 设置为全局参数。
  • 就是这样。我在另一个时间点使用了一个包,它修改了我的~/.ansible.cfg,并将用户设置为 root。如果你把它变成一个答案,我会接受它。
【解决方案2】:

Ansible 仅在您在 playbook 中指定所需的 sudo 时(通过 sudobecome 指令)或在命令行中指定时(--sudo--become )。我在您的示例中没有看到任何这些内容,但您说这是一个简化的剧本 - 您在删除内部信息时是否从任务中删除了其中一个?

【讨论】:

  • 我没有删除任何 sudo 命令,也没有在剧本中看到任何内容,但我将尝试一次运行几行,看看是否有什么导致它。我是唯一一个有这个问题的人,这让我想知道这是否与我的环境有关,所以我现在也在检查。
猜你喜欢
  • 2020-06-17
  • 1970-01-01
  • 1970-01-01
  • 2015-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-18
  • 1970-01-01
相关资源
最近更新 更多