Ansible 模块出现故障,出现'no route to host'



我正在针对位于代理后面的 RHEL 7.4 映像运行剧本。 SELINUX 和防火墙已被禁用。 我正在使用 Ansible 2.5.3

这是任务

- name: Add Docker repository.
get_url:
url: "{{ docker_yum_repo_url }}"
dest: '/etc/yum.repos.d/docker-{{ docker_edition }}.repo'
owner: root
group: root
mode: 0644
use_proxy: yes

和错误

fatal: [10.40.12.136]: FAILED! => changed=false 
invocation:
module_args:
attributes: null
backup: null
checksum: ''
client_cert: null
client_key: null
content: null
delimiter: null
dest: /etc/yum.repos.d/docker-ce.repo
directory_mode: null
follow: false
force: false
force_basic_auth: false
group: root
headers: null
http_agent: ansible-httpget
mode: 420
owner: root
regexp: null
remote_src: null
selevel: null
serole: null
setype: null
seuser: null
sha256sum: ''
src: null
timeout: 10
tmp_dest: null
unsafe_writes: null
url: https://download.docker.com/linux/centos/docker-ce.repo
url_password: null
url_username: null
use_proxy: true
validate_certs: true
msg: 'Failed to connect to download.docker.com at port 443: [Errno 113] No route to host'

如果我 ssh 进入服务器,我可以毫无问题地获取或卷曲文件,并且如您所见,该模块已配置为使用我的代理。

更新:它似乎确实试图使用我的代理

<10.47.69.136> EXEC /bin/sh -c 'http_proxy=http://192.168.1.240:8080 /usr/bin/python /root/.ansible/tmp/ansible-tmp-1527849642.94-177395007646298/get_url.py && sleep 0'

谢谢。

尝试在该特定任务中设置代理,如下所示:

- name: Add Docker repository.
get_url:
url: "{{ docker_yum_repo_url }}"
dest: '/etc/yum.repos.d/docker-{{ docker_edition }}.repo'
owner: root
group: root
mode: 0644
use_proxy: yes
environment:
http_proxy: http://yourproxy:3128

但是,如果您还需要在其他任务上使用代理,请在剧本上设置环境 var,而不仅仅是在该任务中......

---
- hosts: all
environment:
http_proxy: [...]
tasks:
- name: Add docker repo
[...]

我在使用 ansible 2.4.6 时遇到了同样的问题,以下修复程序对我有用:

- name: Add Docker repository.
get_url:
url: "{{ docker_yum_repo_url }}"
dest: '/etc/yum.repos.d/docker-{{ docker_edition }}.repo'
owner: root
group: root
mode: 0644
use_proxy: yes
validate_certs: no

正如这里所解释的,它适用于validate_certs: noans 对我有用。

相关内容

最新更新