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

API Connection uveden u Fabric 2 prihvata 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 primer koristi uobičajeni SSH port, 22. Konektorov -X 5 bira SOCKS5, dok -x označava krajnju tačku proxyja. Zamenski znakovi za host i port daju SSH odredište. Za javno SSH odredište, neautentifikovana krajnja tačka sa liste SOCKS5 proxyja može popuniti adresu proxyja ako dozvoljava to odredište i port. Konfigurišite naredbu prema opcijama stvarnog konektora instaliranog na mašini; programi nazvani nc ne nude svi isto sučelje.

Konektor se izvršava lokalno, tamo gde 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 autentifikuje račun deploy na app.example.net. Svaka autentifikacija koju zahteva SOCKS server pripada konektoru i mora je podržavati.

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

Kada je posrednik SSH server

Fabric objekat Connection predat 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šalac nije SSH server, pa mu treba gore opisani konektor u obliku naredbe.

Ovaj izbor prevoza takođe ima jasnu granicu. On usmerava Fabricovu SSH vezu. Naredba izvršena na udaljenom hostu koja kasnije preuzme repozitorijum ili paket stvara novu odlaznu vezu s tog hosta, prema sopstvenoj proxy konfiguraciji tog programa.

Povezani članci