SOCKS proxy v Ansible: ktorý stroj vlastní localhost?
Zistite, ktorý proces odosiela požiadavku na Ansible API, skôr než ho nasmerujete na SSH SOCKS poslucháč na loopbacku.
Úloha používajúca socks5h://127.0.0.1:65432 musí bežať v sieťovom prostredí, kde tento poslucháč existuje. Tunel fungujúci z radiča ho nesprístupní na loopback adrese spravovaného hostiteľa — ani vnútri vykonávacieho kontajnera.
Pri zlyhávajúcej úlohe zistite štyri skutočnosti:
- Hostiteľ alebo kontajner, ktorý vykonáva sieťovú požiadavku.
- Jeho efektívny používateľ a interpret Pythonu.
- HTTP knižnica alebo SDK modulu.
- Adresa, na ktorej tento proces dosiahne SOCKS poslucháč.
Samotný cieľ z inventára hry na prvú otázku neodpovedá. Moduly používajú svoje nakonfigurované pripojenie, delegovanie môže presunúť vykonávanie a lokálne pripojenie môže prácu ponechať na radiči. Vyhľadávania na strane radiča prebiehajú úplne mimo vzdialeného modulu.
Pri úlohe s obrazom OpenStack skontrolujte požiadavky nainštalovanej kolekcie openstack.cloud a jej prostredie OpenStack SDK. Úspešný curl inde nepreukazuje schopnosti SOCKS ani závislosti tohto SDK.
Ak má operácia API bežať lokálne, urobte túto voľbu vykonávania explicitnou a nastavenie zadajte tam. Ak beží vzdialene, vyberte proxy dostupnú z daného kontextu. environment: úlohy Ansible ovplyvňuje proces úlohy; neprekonfigurúva každé vyhľadávanie ani plugin a SDK stále musí danú schému v tomto prostredí Pythonu podporovať.
Držte dve trasy oddelene: SSH alebo ProxyJump dostane Ansible na hostiteľa, zatiaľ čo HTTP klient modulu sa dostane zo svojho vykonávacieho kontextu k API. Fungujúca prvá trasa nenakonfiguruje druhú. Vystavenie poslucháča, ktorý existuje len na radiči, kvôli riešeniu dostupnosti tiež mení, kto k nemu má prístup, takže je to rozhodnutie o nasadení, nie oprava adresy.