Komandat në distancë të Fabric udhëtojnë përmes SSH. Për ta çuar atë lidhje SSH përmes një serveri SOCKS, jepini Fabric një lidhës që flet SOCKS dhe kthen rrjedhën e bajtëve të destinacionit.

API Connection i prezantuar në Fabric 2 pranon një varg komande si gateway të tij. Fabric e përdor atë varg si ProxyCommand. Me një nc ekzistues të përputhshëm me OpenBSD që mbështet opsionet e tij të proxy-t, konfigurimi mund të jetë:

from fabric import Connection

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

Ky shembull përdor portën normale SSH, 22. -X 5 i lidhësit zgjedh SOCKS5, ndërsa -x shënon pikën fundore të proxy-t. Mbajtësit e vendit për hostin dhe portën japin destinacionin SSH. Për një destinacion publik SSH, një pikë fundore pa vërtetim nga lista e proxy-ve SOCKS5 mund të plotësojë adresën e proxy-t nëse e lejon atë destinacion dhe portë. Konfiguroni komandën sipas opsioneve të lidhësit real të instaluar në makinë; programet e quajtura nc nuk ofrojnë të gjitha të njëjtin ndërfaqe.

Lidhësi ekzekutohet lokalisht, aty ku ekzekutohet Fabric. Serveri i aplikacionit nuk e ka nevojë atë ndihmës vetëm sepse është destinacioni SSH. Pasi të vendoset rrjedha, Fabric vazhdon të bëjë negociatën SSH dhe vërteton llogarinë deploy në app.example.net. Çdo vërtetim i kërkuar nga serveri SOCKS i përket lidhësit dhe duhet të mbështetet prej tij.

Fabric gjithashtu mund të lexojë një ProxyCommand nga konfigurimi SSH. Kjo mund të jetë e përshtatshme kur e njëjta rrugë përdoret nga disa mjete SSH. Përdorni një përkufizim të vetëm të portës së synuar për lidhjen, në vend që të kombinoni një portë në stil komande me një portë të veçantë hosti kërcimi për të njëjtin destinacion.

Kur ndërmjetësi është një server SSH

Një objekt Connection i Fabric i dhënë si gateway nënkupton diçka tjetër: Fabric lidhet me atë portë SSH dhe kërkon një kanal drejt hostit përfundimtar. Përdorni atë formë për një host kërcimi SSH. Një dëgjues SOCKS nuk është një server SSH, prandaj i duhet lidhësi në stil komande më sipër.

Kjo zgjedhje transporti ka gjithashtu një kufi të qartë. Ajo rrugëzon lidhjen SSH të Fabric. Një komandë e ekzekutuar në hostin në distancë që më vonë shkarkon një depo ose paketë krijon një lidhje të re dalëse nga ai host, sipas konfigurimit të vetë programit për proxy.

Artikuj të ngjashëm