Fabric-ove udaljene komande putuju preko SSH-a. Da biste tu SSH vezu proveli kroz SOCKS server, dajte Fabric-u konektor koji govori SOCKS i vraća bajtni tok odredišta.

API Connection uveden u Fabric-u 2 prihvata nisku komande kao svoj gateway. Fabric koristi tu nisku kao ProxyCommand. Uz postojeći OpenBSD-kompatibilni nc koji podržava svoje proxy opcije, konfiguracija može biti:

from fabric import Connection

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

Ovaj primjer koristi uobičajeni SSH port, 22. Konektorov -X 5 bira SOCKS5, dok -x označava krajnju točku proxyja. Zamjenski znakovi za host i port daju SSH odredište. Za javno SSH odredište, neautentificirana krajnja točka s liste SOCKS5 proxyja može popuniti adresu proxyja ako dopušta to odredište i port. Podesite komandu prema opcijama stvarnog konektora instaliranog na mašini; programi nazvani nc ne nude svi isto sučelje.

Konektor se izvršava lokalno, tamo gdje se izvršava Fabric. Aplikacijskom serveru nije potreban taj pomoćnik samo zato što je SSH odredište. Nakon uspostavljanja toka, Fabric i dalje obavlja SSH pregovaranje i autentificira račun deploy na app.example.net. Svaka autentifikacija koju zahtijeva SOCKS server pripada konektoru i mora je podržavati.

Fabric također može čitati ProxyCommand iz SSH konfiguracije. To može biti zgodno kada istu rutu koristi više SSH alata. Koristite jednu namjensku definiciju gatewaya za vezu, umjesto kombiniranja gatewaya u obliku komande s odvojenim gatewayom za jump host za isto odredište.

Kada je posrednik SSH server

Fabric objekt Connection predan kao gateway znači nešto drugo: Fabric se povezuje s tim SSH gatewayom i traži kanal do konačnog hosta. Koristite taj oblik za SSH jump host. SOCKS slušatelj nije SSH server, pa mu je potreban gore opisani konektor u obliku komande.

Ovaj izbor transporta također ima jasnu granicu. On usmjerava Fabric-ovu SSH vezu. Komanda izvršena na udaljenom hostu koja kasnije preuzima repozitorij ili paket stvara novu odlaznu vezu s tog hosta, prema vlastitoj proxy konfiguraciji tog programa.

Povezani članci