SOCKS প্রক্সির মাধ্যমে Fabric 2+ SSH সংযোগ
SSH প্রমাণীকরণ গন্তব্যের সাথে সংযুক্ত রেখে SOCKS-সক্ষম কানেক্টরসহ Fabric-এর ProxyCommand গেটওয়ে ব্যবহার করুন।
Fabric-এর দূরবর্তী কমান্ডগুলো SSH-এর মধ্য দিয়ে যায়। সেই SSH সংযোগটি SOCKS সার্ভারের মধ্য দিয়ে নিতে Fabric-কে এমন একটি কানেক্টর দিন যা SOCKS বলে এবং গন্তব্যের byte stream ফিরিয়ে দেয়।
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 গন্তব্য হওয়ার কারণে অ্যাপ্লিকেশন সার্ভারের ওই সহায়কটির প্রয়োজন নেই। stream প্রতিষ্ঠিত হওয়ার পর Fabric এখনও SSH আলোচনা সম্পন্ন করে এবং deploy অ্যাকাউন্টটি app.example.net-এ প্রমাণীকরণ করে। SOCKS সার্ভারের প্রয়োজনীয় যেকোনো প্রমাণীকরণ কানেক্টরের এবং তা তার দ্বারা সমর্থিত হতে হবে।
Fabric SSH কনফিগারেশন থেকেও ProxyCommand পড়তে পারে। একই রুট যখন একাধিক SSH টুল ব্যবহার করে তখন এটি সুবিধাজনক হতে পারে। সংযোগের জন্য একটি নির্দিষ্ট গেটওয়ে সংজ্ঞা ব্যবহার করুন, একই গন্তব্যের জন্য কমান্ড-শৈলীর গেটওয়ের সাথে আলাদা jump-host গেটওয়ে মিলিয়ে না দিয়ে।
যখন মধ্যস্থতাকারী একটি SSH সার্ভার
Fabric-এর একটি Connection বস্তু gateway হিসেবে দিলে ভিন্ন অর্থ বোঝায়: Fabric সেই SSH গেটওয়েতে সংযোগ করে এবং চূড়ান্ত হোস্টে একটি channel চায়। SSH jump host-এর জন্য সেই রূপটি ব্যবহার করুন। একটি SOCKS শ্রোতা SSH সার্ভার নয়, তাই এর উপরের কমান্ড-শৈলীর কানেক্টর প্রয়োজন।
এই পরিবহন পছন্দেরও একটি স্পষ্ট সীমা আছে। এটি Fabric-এর SSH সংযোগ রুট করে। দূরবর্তী হোস্টে চালানো একটি কমান্ড পরে কোনো repository বা package ডাউনলোড করলে সেই হোস্ট থেকে নতুন বহির্গামী সংযোগ তৈরি করে, সেই প্রোগ্রামের নিজস্ব প্রক্সি কনফিগারেশন অনুযায়ী।