Fabric'ning masofaviy buyruqlari SSH orqali harakatlanadi. O'sha SSH ulanishini SOCKS serveri orqali o'tkazish uchun Fabric'ga SOCKS gapiradigan va manzilning bayt oqimini qaytaradigan ulagich bering.

Fabric 2 da kiritilgan Connection API buyruq satrini o'zining gateway sifatida qabul qiladi. Fabric o'sha satrni ProxyCommand sifatida ishlatadi. Proksi parametrlarini qo'llab-quvvatlaydigan mavjud OpenBSD-mos nc bo'lsa, konfiguratsiya quyidagicha bo'lishi mumkin:

from fabric import Connection

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

Bu misol oddiy SSH porti 22 dan foydalanadi. Ulagichning -X 5 SOCKS5 ni tanlaydi, -x esa proksi oxirgi nuqtasini bildiradi. Xost va port o'rinbosarlari SSH manzilini beradi. Ommaviy SSH manzili uchun SOCKS5 proksilari ro'yxatidagi autentifikatsiyasiz oxirgi nuqta o'sha manzil va portga ruxsat bersa, proksi manzilini to'ldirishi mumkin. Buyruqni mashinaga o'rnatilgan haqiqiy ulagichning parametrlariga moslab sozlang; nc deb nomlangan dasturlarning hammasi bir xil interfeys bermaydi.

Ulagich Fabric ishlaydigan joyda mahalliy ravishda ishlaydi. Ilova serveri faqat SSH manzili bo'lgani uchun bu yordamchiga muhtoj emas. Oqim o'rnatilgach ham Fabric SSH muzokaralarini olib boradi va deploy hisobini app.example.net da autentifikatsiya qiladi. SOCKS serveri talab qiladigan har qanday autentifikatsiya ulagichga tegishli va u tomonidan qo'llab-quvvatlanishi kerak.

Fabric shuningdek ProxyCommand ni SSH konfiguratsiyasidan o'qiy oladi. Bir xil marshrutni bir nechta SSH asbobi ishlatganda bu qulay bo'lishi mumkin. Bir xil manzil uchun buyruq uslubidagi darvozani alohida sakrash xosti darvozasi bilan birlashtirish o'rniga, ulanish uchun bitta mo'ljallangan darvoza ta'rifidan foydalaning.

Vositachi SSH serveri bo'lganda

Fabric'ning Connection obyekti gateway sifatida berilganda boshqa ma'no bildiradi: Fabric o'sha SSH darvozasiga ulanadi va oxirgi xostga kanal so'raydi. SSH sakrash xosti uchun o'sha shakldan foydalaning. SOCKS tinglovchisi SSH serveri emas, shuning uchun unga yuqoridagi buyruq uslubidagi ulagich kerak.

Bu transport tanlovining ham aniq chegarasi bor. U Fabric'ning SSH ulanishini yo'naltiradi. Masofaviy xostda bajarilgan buyruq keyinchalik ombor yoki paketni yuklab olsa, o'sha dasturning o'z proksi konfiguratsiyasiga muvofiq o'sha xostdan yangi chiquvchi ulanish hosil qiladi.

O'xshash maqolalar