Fabricove udaljene naredbe putuju preko SSH-a. Da biste tu SSH vezu proveli kroz SOCKS poslužitelj, dajte Fabricu konektor koji govori SOCKS i vraća bajtni tok odredišta.

API Connection uveden u Fabric 2 prihvaća niz naredbe kao svoj gateway. Fabric koristi taj niz 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 odabire 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 popisa SOCKS5 proxyja može popuniti adresu proxyja ako dopušta to odredište i port. Konfigurirajte naredbu prema opcijama stvarnog konektora instaliranog na stroju; programi nazvani nc ne nude svi isto sučelje.

Konektor se izvršava lokalno, tamo gdje se izvršava Fabric. Aplikacijskom poslužitelju nije potreban taj pomoćnik samo zato što je SSH odredište. Nakon uspostave toka, Fabric i dalje obavlja SSH pregovaranje i autentificira račun deploy na app.example.net. Svaka autentifikacija koju zahtijeva SOCKS poslužitelj 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 naredbe s odvojenim gatewayom za jump host za isto odredište.

Kada je posrednik SSH poslužitelj

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 poslužitelj, pa mu treba gore opisani konektor u obliku naredbe.

Ovaj izbor prijevoza također ima jasnu granicu. On usmjerava Fabricovu SSH vezu. Naredba izvršena na udaljenom hostu koja kasnije preuzme repozitorij ili paket stvara novu odlaznu vezu s tog hosta, prema vlastitoj proxy konfiguraciji tog programa.

Povezani članci