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 ಸಂಪರ್ಕವನ್ನು ಮಾರ್ಗದರ್ಶಿಸುತ್ತದೆ. ದೂರದ ಹೋಸ್ಟ್ನಲ್ಲಿ ಚಲಿಸುವ ಆದೇಶ ನಂತರ ರೆಪೊಸಿಟರಿ ಅಥವಾ ಪ್ಯಾಕೇಜ್ ಡೌನ್ಲೋಡ್ ಮಾಡಿದರೆ, ಆ ಪ್ರೋಗ್ರಾಮ್ನ ಸ್ವಂತ ಪ್ರಾಕ್ಸಿ ಸಂರಚನೆ ಪ್ರಕಾರ ಆ ಹೋಸ್ಟ್ನಿಂದ ಹೊಸ ಹೊರಹೋಗುವ ಸಂಪರ್ಕವನ್ನು ಮಾಡುತ್ತದೆ.