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 კავშირს მარშრუტიზაციას უკეთებს. დისტანციურ ჰოსტზე შესრულებული ბრძანება, რომელიც მოგვიანებით იწერს რეპოზიტორიას ან პაკეტს, ახალ გამავალ კავშირს ქმნის იმ ჰოსტიდან, იმ პროგრამის საკუთარი პროქსის კონფიგურაციის მიხედვით.

დაკავშირებული სტატიები