Динамически установить HTTP_PROXY в ANSIBLE playbook - PullRequest
0 голосов
/ 03 декабря 2018

Я запускаю 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) с прокси и без изменения кода между каждым запуском (так что удалось бы сделать это с переменными инвентаризации).

Я бы

1 Ответ

0 голосов
/ 04 декабря 2018

Вы можете решить эту проблему с помощью group_vars / host_vars в сочетании с переменными среды.Это простой пример, основанный на коде из ansible документов.

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

Это способ определения переменной среды для задачи.Для этого вы также можете использовать обычные переменные.Есть также пример с настройками прокси и переменными в документах.См .: 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

...