在带有环境变量的 Ansible 中使用 curl

Using curl in Ansible with environment variable

我需要下载一个deb包,我使用:

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-amd64.deb

我已经研究了 http://docs.ansible.com/ansible/uri_module.html 但不确定如何进行整合。

我还设置了代理。我如何在 Ansible 中这样做?

我正在用

- name: Download the 5.1.1 version of filebeat
  get_url:
      url: https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-amd64.deb
      dest: /home/ubuntu
  environment:
    http_proxy: http://{{ squid_proxy }}:{{ squid_port }}
    https_proxy: https://{{ squid_proxy }}:{{ squid_port }}
  validate_certs: no

你应该使用 get_url module.

- get_url:
    url: https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-amd64.deb
    dest: /path/to/destination

它使用 http_proxyhttps_proxy 环境变量中定义的代理。如果您没有为当前用户定义一个(并且它必须在非交互式会话读取的 rc 文件中),您可以添加到任务中:

- get_url:
    url: https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-amd64.deb
    dest: /path/to/destination
    validate_certs: false  # this might be required for HTTPS proxies with certificates not trusted by the client
  environment:
    https_proxy: https://my.proxy:8080

此外,如果 HTTPS 代理的证书不受下载计算机的信任,您可能需要将 validate_certs: false 添加到 get_url 参数。