Fabric-тің қашықтағы командалары SSH арқылы жүреді. Бұл SSH қосылымын SOCKS сервері арқылы өткізу үшін Fabric-ке SOCKS тілінде сөйлейтін және мақсаттың байт ағынын қайтаратын қосқыш беріңіз.

Fabric 2-де енгізілген Connection API команда жолын өзінің gateway ретінде қабылдайды. Fabric бұл жолды ProxyCommand ретінде пайдаланады. Прокси параметрлерін қолдайтын OpenBSD-үйлесімді nc болса, конфигурация былай болуы мүмкін:

from fabric import Connection

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

Бұл мысал кәдімгі SSH портын, 22-ні пайдаланады. Қосқыштың -X 5 SOCKS5 таңдайды, ал -x проксидің соңғы нүктесін көрсетеді. Хост пен порт толтырғыштары SSH мақсатын береді. Жалпыға ашық SSH мақсаты үшін SOCKS5 проксилер тізімінен аутентификациясыз соңғы нүкте осы мақсат пен портқа рұқсат берсе, прокси мекенжайын толтыра алады. Команданы машинада орнатылған нақты қосқыштың параметрлерімен конфигурациялаңыз; nc деп аталатын бағдарламалардың бәрі бірдей интерфейс ұсынбайды.

Қосқыш Fabric жұмыс істейтін жерде, жергілікті түрде орындалады. Қолданба серверіне бұл көмекші тек SSH мақсаты болғандықтан қажет емес. Ағын орнатылғаннан кейін Fabric әлі де SSH келіссөзін жүргізіп, deploy тіркелгісін app.example.net ішінде аутентификациялайды. SOCKS сервері талап ететін кез келген аутентификация қосқышқа тиесілі және ол қолдауы керек.

Fabric сондай-ақ ProxyCommand параметрін SSH конфигурациясынан оқи алады. Бір маршрутты бірнеше SSH құралы пайдаланса, бұл ыңғайлы болуы мүмкін. Қосылым үшін бір мақсатталған шлюз анықтамасын пайдаланыңыз, сол мақсат үшін командалық стильдегі шлюзді бөлек секіру хосты шлюзімен біріктірмеңіз.

Делдал SSH сервері болғанда

Fabric-тің Connection нысаны gateway ретінде берілсе, басқа мағына береді: Fabric сол SSH шлюзіне қосылып, соңғы хостқа арна сұрайды. Бұл пішінді SSH секіру хост үшін пайдаланыңыз. SOCKS тыңдаушысы SSH сервері емес, сондықтан оған жоғарыдағы командалық стильдегі қосқыш қажет.

Бұл тасымалдау таңдауының да айқын шегі бар. Ол Fabric-тің SSH қосылымын маршруттайды. Қашықтағы хостта орындалған команда кейін репозиторий немесе пакет жүктесе, сол хосттан жаңа шығыс қосылым жасайды, сол бағдарламаның өз прокси конфигурациясына сәйкес.

Қатысты мақалалар