Jeśli group_vars definiuje mapę proxy, ale zadanie otrzymuje pustą wartość, poszukaj tej samej zmiennej zadeklarowanej w play. Zmienna play ma wyższy priorytet; pusty symbol zastępczy nadal nadpisuje inventory.

W przypadku zewnętrznego pobierania, któremu wolno używać publicznego proxy HTTP, lista proxy HTTP dostarcza adresy kandydujące dla wartości inventory. Zachowaj mapę w inventory:

proxy_env:
  http_proxy: http://proxy.example.net:8080
  https_proxy: http://proxy.example.net:8080

Następnie zastosuj ją do zamierzonego zadania bez symbolu zastępczego proxy_env: na poziomie play:

environment: "{{ proxy_env | default({}) }}"

Jeśli rola potrzebuje wariantu zapasowego, pusta mapa w wartościach domyślnych roli znajduje się poniżej wartości inventory i pozwala inventory wygrać.

Pokazany filtr obsługuje undefined, a nie każdy stan wyglądający na pusty. Jawny null jest już zdefiniowany, więc zwykły default({}) nie usuwa tego nadpisania o wyższym priorytecie.

Sprawdź efektywną wartość dla danego hosta przed zmianą punktu końcowego proxy. Dyrektywa environment dostarcza dane wejściowe zadania dopiero po tym, jak priorytet zmiennych wybierze mapę, którą ocenia.

Powiązane artykuły