我正在针对位于代理后面的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'
如果我进入服务器,我可以完全没有问题地忘记或卷曲文件,你可以看到该模块已被配置为使用我的代理。
更新:它似乎试图使用我的代理
<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'
感谢。
答案 0 :(得分: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
但是如果您还需要在其他任务上使用代理,请在您的剧本中设置环境变量,而不仅仅是在该任务中......
---
- hosts: all
environment:
http_proxy: [...]
tasks:
- name: Add docker repo
[...]
答案 1 :(得分:0)
我在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
如here所述,它可以与validate_certs: no
一起为我工作。