我正在尝试运行 ansible 剧本:
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
最佳答案
检查您的/etc/ansible/ansible.conf 或 ~/.ansible.cfg ,也许您的环境正在将 sudo 设置为全局参数。
关于python - 防止 ansible 使用 sudo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36700034/