proxy - 在 ansible 剧本中动态设置 HTTP_PROXY

标签 proxy ansible http-proxy

我正在一堆不需要 http_proxy 的服务器和其他需要它的服务器上运行剧本(在不同的运行中)。

我读过 https://docs.ansible.com/ansible/latest/user_guide/playbooks_environment.html但它并没有真正回答这个问题......

举个例子:

- 主持人:全部 任务: - 名称:安装vi 成为:真实 易于: 姓名:vi 状态:现在

我想在没有代理的情况下用一组服务器(比如 server01-atlanta)启动它,在另一个运行中用一组服务器(比如 server01-berlin)用代理启动它,并且在每次运行之间不更改代码(所以设法用库存变量来做到这一点)。

我愿意

最佳答案

您可以使用 group_vars/host_vars 结合环境变量来解决这个问题。她是一个基于 ansible 文档中代码的简单示例。

---
- hosts: all
  vars:
    proxy: # default empty
  tasks:    
    - apt: name=cobbler state=installed
      environment:
        http_proxy: "{{ proxy }}"

这就是您为每个任务定义环境变量的方式。您也可以为此使用普通的 ansible 变量。文档中还有一个带有代理设置和变量的示例。请参阅:https://docs.ansible.com/ansible/latest/user_guide/playbooks_environment.html

在您的 list 中,您可以为每个主机或组定义代理变量:

atlanta:
  hosts:
    host1:
    host2:
  vars:
    proxy: proxy.atlanta.example.com

有关详细信息,请参阅库存文档:https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#host-variables

关于proxy - 在 ansible 剧本中动态设置 HTTP_PROXY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53591531/

相关文章:

c# - 代理 HTTP 请求

javascript - node-http-proxy,如何将新的查询参数传递给初始请求?

ruby-on-rails - 离线安装 ruby​​ gems/代理配置

python - 使用 NTLM 验证 Lists.asmx?WSDL 后如何让 Suds 运行代理?

ubuntu - 自动化 nginx/passenger 安装

http - 使用 HTTP 连接到代理服务器以获取 HTTPS 请求安全吗?

c - 是否可以使用套接字使用连接代理?

java - 如何让 Java WebService 真正向我显示来自代理对象的异常?

Ansible如何对来自多个节点的命令输出进行排序

json - 错误 : ansible requires a json module, 未找到