Proxy SOCKS v Ansibleu: kateri računalnik ima localhost?
Določite proces, ki pošilja zahtevo API Ansible, preden jo usmerite na poslušalca SSH SOCKS na loopbacku.
Opravilo, ki uporablja socks5h://127.0.0.1:65432, se mora izvajati v omrežnem okolju, kjer ta poslušalec obstaja. Tunel, ki deluje s krmilnika, ga ne naredi dostopnega na naslovu loopback upravljanega gostitelja — ali znotraj izvajalnega vsebnika.
Za opravilo, ki ne uspe, ugotovite štiri dejstva:
- Gostitelj ali vsebnik, ki izvaja omrežno zahtevo.
- Njegov dejanski uporabnik in tolmač Python.
- Knjižnica HTTP ali SDK modula.
- Naslov, na katerem lahko ta proces doseže poslušalca SOCKS.
Samo inventarni cilj igre ne odgovori na prvo vprašanje. Moduli uporabljajo svojo konfigurirano povezavo, delegiranje lahko premakne izvajanje in lokalna povezava lahko delo obdrži na krmilniku. Iskanja na strani krmilnika potekajo popolnoma zunaj oddaljenega modula.
Pri opravilu s sliko OpenStack preverite zahteve nameščene zbirke openstack.cloud in njeno okolje OpenStack SDK. Uspeh curlja drugje ne dokazuje zmožnosti SOCKS ali odvisnosti tega SDK.
Če naj bi se operacija API izvajala lokalno, naj bo ta izbira izvajanja izrecna in nastavitev naj bo tam. Če se izvaja na daljavo, izberite proxy, dosegljiv iz tega konteksta. environment: opravila Ansible vpliva na proces opravila; ne prekonfigurira vsakega iskanja ali vtičnika, SDK pa mora še vedno podpirati shemo v tem okolju Python.
Dve poti imejte ločeni: SSH ali ProxyJump pripelje Ansible do gostitelja, medtem ko gre odjemalec HTTP modula iz svojega izvajalnega konteksta do API. Delujoča prva pot ne konfigurira druge. Izpostavljanje poslušalca, ki obstaja le na krmilniku, zaradi dosegljivosti spremeni tudi, kdo lahko dostopa do njega, zato je to odločitev o uvedbi in ne popravek naslova.