Usuń pustą zmienną play, która ukrywa mapę proxy Ansible
Zmienne grupowe inventory przegrywają z deklaracją na poziomie play, nawet gdy ta deklaracja jest pusta lub null.
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:8080Nastę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.