A Fabric távoli parancsai SSH-n keresztül utaznak. Ahhoz, hogy ezt az SSH-kapcsolatot SOCKS-kiszolgálón vigye át, adjon a Fabricnak egy csatlakozót, amely SOCKS-t beszél, és visszaadja a cél bájtfolyamát.

A Fabric 2-ben bevezetett Connection API parancssort fogad el gateway-jeként. A Fabric ezt a sztringet ProxyCommandként használja. Ha van olyan meglévő OpenBSD-kompatibilis nc, amely támogatja a proxybeállításait, a konfiguráció így nézhet ki:

from fabric import Connection

connection = Connection(
    "app.example.net",
    user="deploy",
    gateway="nc -X 5 -x proxy.example.net:1080 %h %p",
)

Ez a példa a szokásos SSH-portot, a 22-t használja. A csatlakozó -X 5 beállítása SOCKS5-öt választ, míg a -x a proxy végpontját jelöli. A gazdagép- és port-helyőrzők adják az SSH-célt. Nyilvános SSH-cél esetén a SOCKS5-proxy listáról származó hitelesítés nélküli végpont kitöltheti a proxy címét, ha engedélyezi azt a célt és portot. A parancsot a gépre telepített tényleges csatlakozó beállításaival konfigurálja; a nc nevű programok nem mindegyike kínál azonos felületet.

A csatlakozó helyben fut, ott, ahol a Fabric fut. Az alkalmazáskiszolgálónak nem kell ez a segítő csak azért, mert ő az SSH-cél. A folyam létrejötte után a Fabric továbbra is elvégzi az SSH-egyeztetést, és hitelesíti a deploy fiókot a app.example.net hoszton. A SOCKS-kiszolgáló által megkövetelt hitelesítés a csatlakozóhoz tartozik, és annak kell támogatnia.

A Fabric ProxyCommand beállítást is olvashat az SSH-konfigurációból. Ez kényelmes lehet, ha ugyanazt az útvonalat több SSH-eszköz használja. Egyetlen szándékolt átjáródefiníciót használjon a kapcsolathoz, ahelyett hogy egy parancsstílusú átjárót külön ugrógazdagép-átjáróval kombinálna ugyanahhoz a célhoz.

Amikor a közvetítő SSH-kiszolgáló

A Fabric Connection objektuma gateway-ként megadva mást jelent: a Fabric ehhez az SSH-átjáróhoz kapcsolódik, és csatornát kér a végső gazdagéphez. Ezt a formát SSH-ugrógazdagéphez használja. A SOCKS-figyelő nem SSH-kiszolgáló, ezért a fenti parancsstílusú csatlakozóra van szüksége.

Ennek a szállítási választásnak is világos korlátja van. A Fabric SSH-kapcsolatát irányítja. A távoli gazdagépen futtatott parancs, amely később tárhelyet vagy csomagot tölt le, új kimenő kapcsolatot hoz létre arról a gazdagépről, az adott program saját proxykonfigurációja szerint.

Kapcsolódó cikkek