Fabricin etäkomennot kulkevat SSH:n yli. Jotta voit kuljettaa tämän SSH-yhteyden SOCKS-palvelimen kautta, anna Fabricille liitin, joka puhuu SOCKSia ja palauttaa kohteen tavuvirran.

Fabric 2:ssa esitelty Connection-sovellusliittymä hyväksyy komentojonon gateway-arvonaan. Fabric käyttää tätä jonoa ProxyCommandina. Jos käytettävissä on OpenBSD-yhteensopiva nc, joka tukee välityspalvelinvalintojaan, kokoonpano voi olla:

from fabric import Connection

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

Tämä esimerkki käyttää tavallista SSH-porttia 22. Liittimen -X 5 valitsee SOCKS5:n, kun taas -x osoittaa välityspalvelimen päätepisteen. Isäntänimen ja portin paikkamerkit antavat SSH-kohteen. Julkiselle SSH-kohteelle todennusvapaa päätepiste SOCKS5-välityspalvelinluettelosta voi täyttää välityspalvelimen osoitteen, jos se sallii kyseisen kohteen ja portin. Määritä komento koneelle asennetun varsinaisen liittimen valinnoilla; kaikki nc-nimiset ohjelmat eivät tarjoa samaa rajapintaa.

Liitin toimii paikallisesti siellä, missä Fabric toimii. Sovelluspalvelin ei tarvitse apuria pelkästään siksi, että se on SSH-kohde. Kun virta on muodostettu, Fabric käy yhä SSH-neuvottelun ja todentaa deploy-tilin kohteessa app.example.net. Kaikki SOCKS-palvelimen vaatima todennus kuuluu liittimelle, ja sen on tuettava sitä.

Fabric voi myös lukea ProxyCommand-asetuksen SSH-kokoonpanosta. Tästä voi olla hyötyä, kun useat SSH-työkalut käyttävät samaa reittiä. Käytä yhteydelle yhtä aiottua yhdyskäytävämääritystä sen sijaan, että yhdistäisit komentotyylisen yhdyskäytävän erilliseen hyppypalvelinyhdyskäytävään samalle kohteelle.

Kun välittäjä on SSH-palvelin

Fabricin Connection-olio, joka annetaan gateway-arvona, tarkoittaa jotain muuta: Fabric yhdistää kyseiseen SSH-yhdyskäytävään ja pyytää kanavaa lopulliselle isännälle. Käytä tätä muotoa SSH-hyppypalvelimelle. SOCKS-kuuntelija ei ole SSH-palvelin, joten se tarvitsee yllä kuvatun komentotyylisen liittimen.

Tällä kuljetusvalinnalla on myös selvä raja. Se reitittää Fabricin SSH-yhteyden. Etäisännällä suoritettu komento, joka myöhemmin lataa tietovaraston tai paketin, muodostaa uuden lähtevän yhteyden kyseiseltä isännältä, kyseisen ohjelman oman välityspalvelinkokoonpanon mukaisesti.

Aiheeseen liittyvät artikkelit