Fabric-in uzaq əmrləri SSH üzərindən gedir. Bu SSH bağlantısını SOCKS serverindən keçirmək üçün Fabric-ə SOCKS danışan və təyinatın bayt axınını qaytaran bir qoşulma vasitəsi verin.

Fabric 2-də təqdim edilən Connection API-si əmr sətrini gateway kimi qəbul edir. Fabric həmin sətri ProxyCommand kimi istifadə edir. Proxy seçimlərini dəstəkləyən mövcud OpenBSD-uyğun nc varsa, konfiqurasiya belə ola bilər:

from fabric import Connection

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

Bu nümunə adi SSH portundan, 22-dən istifadə edir. Qoşulma vasitəsinin -X 5 seçimi SOCKS5 seçir, -x isə proksi son nöqtəsini göstərir. Host və port yer tutucuları SSH təyinatını təmin edir. İctimai SSH təyinatı üçün SOCKS5 proksi siyahısından autentifikasiya tələb etməyən son nöqtə, həmin təyinat və porta icazə verdiyi halda proksi ünvanını doldura bilər. Əmri maşında quraşdırılmış faktiki qoşulma vasitəsinin seçimləri ilə qurun; nc adlı proqramların hamısı eyni interfeysi təqdim etmir.

Qoşulma vasitəsi yerli olaraq, Fabric-in işlədiyi yerdə işləyir. Tətbiq serverinə yalnız SSH təyinatı olduğuna görə bu köməkçi lazım deyil. Axın qurulduqdan sonra Fabric yenə SSH danışıqları aparır və deploy hesabını app.example.net üzərində autentifikasiya edir. SOCKS serverinin tələb etdiyi istənilən autentifikasiya qoşulma vasitəsinə aiddir və onun tərəfindən dəstəklənməlidir.

Fabric həmçinin ProxyCommand SSH konfiqurasiyasından oxuya bilər. Eyni marşrut bir neçə SSH aləti tərəfindən istifadə edildikdə bu rahat ola bilər. Bağlantı üçün bir nəzərdə tutulmuş şlüz təyini istifadə edin, eyni təyinat üçün əmr tipli şlüzü ayrı jump-host şlüzü ilə birləşdirməyin.

Ara vasitəçi SSH serveri olduqda

Fabric-in Connection obyekti gateway kimi verildikdə başqa məna daşıyır: Fabric həmin SSH şlüzünə qoşulur və son hosta kanal istəyir. Bu formanı SSH jump host üçün istifadə edin. SOCKS dinləyicisi SSH serveri deyil, ona görə yuxarıdakı əmr tipli qoşulma vasitəsinə ehtiyacı var.

Bu nəqliyyat seçiminin də aydın həddi var. O, Fabric-in SSH bağlantısını marşrutlaşdırır. Uzaq hostda icra olunan əmr sonradan repozitoriya və ya paket endirdikdə həmin hostdan yeni xarici bağlantı yaradır, həmin proqramın öz proksi konfiqurasiyasına əsasən.

Əlaqəli məqalələr