gpt4 book ai didi

pip - 为什么 Ansible 不尊重我的系统代理设置?

转载 作者:行者123 更新时间:2023-12-04 21:35:46 27 4
gpt4 key购买 nike

我是那些幸运地拥有破坏 SSL 的公司代理的人之一!/s

我的环境已正确配置了 http_proxy、https_proxy、HTTP_PROXY 和 HTTPS_PROXY。我通过/etc/profile.d 中的 shell 脚本进行配置,该脚本为我设置了所有 4 个环境变量。

我正在尝试使用 Ansible 从 pip 安装包。这是我的问题。

我可以登录系统,输入以下命令:

pip install --trusted-host pypi.python.org robotframework

... 它会起作用。我尝试使用 commandpip 模块从 Ansible 内部做同样的事情。没有快乐。

使用 pip 模块:

- name: install robotframework
pip: name=robotframework extra_args='--trusted-host pypi.python.org'
become: true

结果:

fatal: [localhost]: FAILED! => {"changed": false, "cmd": "/bin/pip install --trusted-host pypi.python.org robotframework", "failed": true, "
invocation": {"module_args": {"chdir": null, "editable": true, "executable": null, "extra_args": "--trusted-host pypi.python.org", "name": "
robotframework", "requirements": null, "state": "present", "umask": null, "use_mirrors": true, "version": null, "virtualenv": null, "virtual
env_command": "virtualenv", "virtualenv_python": null, "virtualenv_site_packages": false}, "module_name": "pip"}, "msg": "stdout: Collecting
robotframework\n\n:stderr: You are using pip version 7.1.0, however version 9.0.1 is available.\nYou should consider upgrading via the 'pip
install --upgrade pip' command.\n Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ProtocolEr
ror('Connection aborted.', error(101, 'Network is unreachable'))': /simple/robotframework/\n Retrying (Retry(total=3, connect=None, read=No
ne, redirect=None)) after connection broken by 'ProtocolError('Connection aborted.', error(101, 'Network is unreachable'))': /simple/robotfr
amework/\n Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by 'ProtocolError('Connection aborted.
', error(101, 'Network is unreachable'))': /simple/robotframework/\n Retrying (Retry(total=1, connect=None, read=None, redirect=None)) afte
r connection broken by 'ProtocolError('Connection aborted.', error(101, 'Network is unreachable'))': /simple/robotframework/\n Retrying (Re
try(total=0, connect=None, read=None, redirect=None)) after connection broken by 'ProtocolError('Connection aborted.', error(101, 'Network i
s unreachable'))': /simple/robotframework/\n Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by '
ProtocolError('Connection aborted.', error(101, 'Network is unreachable'))': /simple/robotframework/\n Retrying (Retry(total=3, connect=Non
e, read=None, redirect=None)) after connection broken by 'ProtocolError('Connection aborted.', error(101, 'Network is unreachable'))': /simp
le/robotframework/\n Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by 'ProtocolError('Connectio
n aborted.', error(101, 'Network is unreachable'))': /simple/robotframework/\n Retrying (Retry(total=1, connect=None, read=None, redirect=N
one)) after connection broken by 'ProtocolError('Connection aborted.', error(101, 'Network is unreachable'))': /simple/robotframework/\n Re
trying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken by 'ProtocolError('Connection aborted.', error(101,
'Network is unreachable'))': /simple/robotframework/\n Could not find a version that satisfies the requirement robotframework (from version
s: )\nNo matching distribution found for robotframework\n"}

使用命令模块:

- name: install robotframework
command: "pip install --trusted-host pypi.python.org robotframework"
become: true

结果:

fatal: [localhost]: FAILED! => {"changed": true, "cmd": ["pip", "install", "--trusted-host", "pypi.python.org", "robotframework"], "delta":
"0:03:16.916685", "end": "2016-11-10 13:26:12.486105", "failed": true, "invocation": {"module_args": {"_raw_params": "pip install --trusted-
host pypi.python.org robotframework", "_uses_shell": false, "chdir": null, "creates": null, "executable": null, "removes": null, "warn": tru
e}, "module_name": "command"}, "rc": 1, "start": "2016-11-10 13:22:55.569420", "stderr": "You are using pip version 7.1.0, however version 9
.0.1 is available.\nYou should consider upgrading via the 'pip install --upgrade pip' command.\n Retrying (Retry(total=4, connect=None, rea
d=None, redirect=None)) after connection broken by 'ProtocolError('Connection aborted.', error(101, 'Network is unreachable'))': /simple/rob
otframework/\n Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connection broken by 'ProtocolError('Connection abor
ted.', error(101, 'Network is unreachable'))': /simple/robotframework/\n Retrying (Retry(total=2, connect=None, read=None, redirect=None))
after connection broken by 'ProtocolError('Connection aborted.', error(101, 'Network is unreachable'))': /simple/robotframework/\n Retrying
(Retry(total=1, connect=None, read=None, redirect=None)) after connection broken by 'ProtocolError('Connection aborted.', error(101, 'Netwo
rk is unreachable'))': /simple/robotframework/\n Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connection broken
by 'ProtocolError('Connection aborted.', error(101, 'Network is unreachable'))': /simple/robotframework/\n Retrying (Retry(total=4, connect
=None, read=None, redirect=None)) after connection broken by 'ProtocolError('Connection aborted.', error(101, 'Network is unreachable'))': /
simple/robotframework/\n Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connection broken by 'ProtocolError('Conne
ction aborted.', error(101, 'Network is unreachable'))': /simple/robotframework/\n Retrying (Retry(total=2, connect=None, read=None, redire
ct=None)) after connection broken by 'ProtocolError('Connection aborted.', error(101, 'Network is unreachable'))': /simple/robotframework/\n
Retrying (Retry(total=1, connect=None, read=None, redirect=None)) after connection broken by 'ProtocolError('Connection aborted.', error(1
01, 'Network is unreachable'))': /simple/robotframework/\n Retrying (Retry(total=0, connect=None, read=None, redirect=None)) after connecti
on broken by 'ProtocolError('Connection aborted.', error(101, 'Network is unreachable'))': /simple/robotframework/\n Could not find a versi
on that satisfies the requirement robotframework (from versions: )\nNo matching distribution found for robotframework", "stdout": "Collectin
g robotframework", "stdout_lines": ["Collecting robotframework"], "warnings": []}

我完全不知所措。我认为这对 root 用户来说可能很有趣,直到我以 root 用户身份登录并在 shell 中成功运行 pip 命令。我知道我使用的是旧版本的 pip(感谢 EPEL),但这不应该导致 command 调用失败。即使当我尝试像警告状态那样升级 pip 时,我也会得到相同的结果。

唯一可行的是在任务中冗余指定代理 url:

- name: install robot framework
pip: name=robotframework extra_args='--trusted-host pypi.python.org'
environment:
http_proxy: http://proxy1.example.com:8080
https_proxy: http://proxy1.example.com:8080
HTTP_PROXY: http://proxy1.example.com:8080
HTTPS_PROXY: http://proxy1.example.com:8080
become: true
become_user: root

为什么我需要这样做?如果我以 root 身份登录,我可以看到环境变量已设置。我也不需要在 Ansible 中设置它们。

最佳答案

If I log in as root I can see that the environment variables are set. I shouldn't need to set them in Ansible, too.

不正确! :) 您可能在类似 ~/.bashrc 的文件中设置这些变量,该文件仅在交互式 shell 上运行。

a section of the documentation致力于使用环境变量,特别强调代理的使用。

关于pip - 为什么 Ansible 不尊重我的系统代理设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40537514/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com