Syl*_*aux 3 proxy http-proxy ansible
我正在一堆不需要 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)使用代理启动它,并且不更改每次运行之间的代码(因此设法用库存变量来做)。
我会
小智 6
您可以使用group_vars / host_vars结合环境变量来解决这个问题。她是一个基于 ansible 文档中的代码的简单示例。
---
- hosts: all
vars:
proxy: # default empty
tasks:
- apt: name=cobbler state=installed
environment:
http_proxy: "{{ proxy }}"
Run Code Online (Sandbox Code Playgroud)
这就是您为每个任务定义环境变量的方式。您也可以为此使用正常的 ansible 变量。文档中还有一个包含代理设置和变量的示例。请参阅:https : //docs.ansible.com/ansible/latest/user_guide/playbooks_environment.html
在您的清单中,您可以为每个主机或组定义代理变量:
atlanta:
hosts:
host1:
host2:
vars:
proxy: proxy.atlanta.example.com
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅库存文档:https : //docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#host-variables