Fabric-ന്റെ ദൂര പ്രകാരങ്ങൾ SSH വഴി സഞ്ചരിക്കുന്നു. ആ SSH കണക്ഷൻ SOCKS സെർവർ വഴി കൊണ്ടുപോകാൻ, SOCKS സംസാരിക്കുകയും ലക്ഷ്യത്തിന്റെ ബൈറ്റ് സ്ട്രീം തിരികെ നൽകുകയും ചെയ്യുന്ന ഒരു കണക്ടർ Fabric-നു നൽകുക.

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 SSH കോൺഫിഗറേഷനിൽ നിന്നും ProxyCommand വായിക്കാം. ഒരേ പാത ഒന്നിലധികം SSH ഉപകരണങ്ങൾ ഉപയോഗിക്കുമ്പോൾ അത് സൗകര്യപ്രദമാകാം. അതേ ലക്ഷ്യത്തിന് കമാൻഡ്-ശൈലിയിലുള്ള ഗേറ്റ്വേയും വേറിട്ട ജംപ്-ഹോസ്റ്റ് ഗേറ്റ്വേയും കൂട്ടിച്ചേർക്കാതെ, കണക്ഷന് ഉദ്ദേശിച്ച ഒരു ഗേറ്റ്വേ നിർവചനം ഉപയോഗിക്കുക.

ഇടനിലക്കാരൻ ഒരു SSH സെർവർ ആകുമ്പോൾ

Fabric-ന്റെ Connection ഒബ്ജക്റ്റ് gateway ആയി നൽകുമ്പോൾ അർത്ഥം വേറെയാണ്: Fabric ആ SSH ഗേറ്റ്വേയിലേക്ക് ബന്ധിപ്പിച്ച് അന്തിമ ഹോസ്റ്റിലേക്ക് ഒരു ചാനൽ അഭ്യർത്ഥിക്കുന്നു. SSH ജംപ് ഹോസ്റ്റിന് ആ രൂപം ഉപയോഗിക്കുക. SOCKS ശ്രോതാവ് SSH സെർവറല്ല, അതിനാൽ അതിന് മുകളിലെ കമാൻഡ്-ശൈലി കണക്ടർ ആവശ്യമാണ്.

ഈ ഗതാഗത തിരഞ്ഞെടുപ്പിനും വ്യക്തമായ ഒരു പരിധിയുണ്ട്. അത് Fabric-ന്റെ SSH കണക്ഷൻ റൂട്ട് ചെയ്യുന്നു. ദൂര ഹോസ്റ്റിൽ പ്രവർത്തിക്കുന്ന ഒരു കമാൻഡ് പിന്നീട് ഒരു റെപ്പോസിറ്ററിയോ പാക്കേജോ ഡൗൺലോഡ് ചെയ്യുമ്പോൾ, ആ പ്രോഗ്രാമിന്റെ സ്വന്തം പ്രോക്സി കോൺഫിഗറേഷൻ അനുസരിച്ച് ആ ഹോസ്റ്റിൽ നിന്ന് പുതിയ പുറത്തേക്കുള്ള കണക്ഷൻ ഉണ്ടാക്കുന്നു.

അനുബന്ധ ലേഖനങ്ങൾ