Ansiblen SOCKS-välityspalvelin: mikä kone omistaa localhostin?
Tunnista prosessi, joka tekee Ansible API -pyynnön, ennen kuin osoitat sen loopbackissa kuuntelevaan SSH SOCKS -kuuntelijaan.
socks5h://127.0.0.1:65432-koodia käyttävän tehtävän on suorituttava verkkoympäristössä, jossa kyseinen kuuntelija on olemassa. Ohjaimesta toimiva tunneli ei tee sitä saataville hallitun isäntäkoneen loopback-osoitteessa — tai suoritussäilön sisällä.
Selvitä epäonnistuvalle tehtävälle neljä seikkaa:
- Verkkopyynnön suorittava isäntä tai säilö.
- Sen tehokas käyttäjä ja Python-tulkki.
- Moduulin HTTP-kirjasto tai SDK.
- Osoite, jossa kyseinen prosessi voi tavoittaa SOCKS-kuuntelijan.
Pelkästään playn inventaariokohde ei vastaa ensimmäiseen kysymykseen. Moduulit käyttävät määritettyä yhteyttään, delegointi voi siirtää suoritusta ja paikallinen yhteys voi pitää työn ohjaimella. Ohjaimen puolen haut tapahtuvat kokonaan etämoduulin ulkopuolella.
OpenStack-kuvatehtävän kohdalla tarkista asennetun openstack.cloud-kokoelman vaatimukset ja sen OpenStack SDK -ympäristö. Curlin onnistuminen muualla ei todista kyseisen SDK:n SOCKS-ominaisuuksia tai riippuvuuksia.
Jos API-toiminto on tarkoitus suorittaa paikallisesti, tee tämä suoritusvalinta selväksi ja anna asetus siellä. Jos se suoritetaan etänä, valitse välityspalvelin, joka on tavoitettavissa kyseisestä ympäristöstä. Ansiblen tehtävän environment: vaikuttaa tehtäväprosessiin; se ei uudelleenmääritä jokaista hakua tai liitännäistä, ja SDK:n on edelleen tuettava skeemaa kyseisessä Python-ympäristössä.
Pidä kaksi reittiä erillään: SSH tai ProxyJump vie Ansiblen isäntäkoneelle, kun taas moduulin HTTP-asiakas kulkee suoritusympäristöstään API:lle. Toimiva ensimmäinen reitti ei määritä toista. Vain ohjaimella olevan kuuntelijan paljastaminen tavoitettavuuden ratkaisemiseksi muuttaa myös sitä, kuka siihen pääsee, joten se on käyttöönoton valinta eikä osoitekorjaus.