SOCKS ప్రాక్సీ ద్వారా Fabric 2+ SSH కనెక్షన్లు
SSH ప్రామాణీకరణను గమ్యానికి జోడించి ఉంచి, SOCKS-సమర్థ కనెక్టర్తో Fabric యొక్క ProxyCommand గేట్వేను ఉపయోగించండి.
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 కనెక్షన్ను మార్గనిర్దేశం చేస్తుంది. రిమోట్ హోస్ట్పై నడిచే ఆదేశం తర్వాత రిపాజిటరీ లేదా ప్యాకేజీని డౌన్లోడ్ చేసినప్పుడు, ఆ ప్రోగ్రామ్ సొంత ప్రాక్సీ కాన్ఫిగరేషన్ ప్రకారం ఆ హోస్ట్ నుండి కొత్త బయటకు వెళ్లే కనెక్షన్ను చేస్తుంది.