在 ansible 剧本中动态设置 HTTP_PROXY
Dynamicly set HTTP_PROXY in an ansible playbook
我正在 运行 在一堆不需要 http_proxy 的服务器和其他需要它的服务器上(在不同的 运行 上)编写剧本。
我读过 https://docs.ansible.com/ansible/latest/user_guide/playbooks_environment.html 但它并没有真正回答这个...
这里有一个例子:
- hosts: all
tasks:
- name: install vi
become: true
apt:
name: vi
state: present
我想用一组没有代理的服务器(比如 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
在您的清单中,您可以为每个主机或组定义代理变量:
atlanta:
hosts:
host1:
host2:
vars:
proxy: proxy.atlanta.example.com
有关详细信息,请参阅库存文档:https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#host-variables
对于任何想知道的人,您也可以通过以下命令行进行设置:
ansible-playbook --extra-vars "http_proxy=$http_proxy" ...
已找到
我正在 运行 在一堆不需要 http_proxy 的服务器和其他需要它的服务器上(在不同的 运行 上)编写剧本。
我读过 https://docs.ansible.com/ansible/latest/user_guide/playbooks_environment.html 但它并没有真正回答这个...
这里有一个例子:
- hosts: all
tasks:
- name: install vi
become: true
apt:
name: vi
state: present
我想用一组没有代理的服务器(比如 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
在您的清单中,您可以为每个主机或组定义代理变量:
atlanta:
hosts:
host1:
host2:
vars:
proxy: proxy.atlanta.example.com
有关详细信息,请参阅库存文档:https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#host-variables
对于任何想知道的人,您也可以通过以下命令行进行设置:
ansible-playbook --extra-vars "http_proxy=$http_proxy" ...
已找到