首页 文章

防止ansible使用sudo

提问于
浏览
1

我正在尝试运行一个ansible剧本:

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

但它尝试在 I don't have sudo rights 的远程服务器上执行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

2 回答

  • 1

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

  • 1

    当你在playbook中指定你想要它时(通过 sudobecome 指令),或者在命令行( --sudo--become )上指定时,Ansible只会尝试使用 sudo . 我在你的例子中没有看到这些东西,但是你说这是一个简化的剧本 - 你在删除内部信息时是否从任务中删除了其中一个?

相关问题