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 SSH ਸੰਰਚਨਾ ਤੋਂ ਵੀ ProxyCommand ਪੜ੍ਹ ਸਕਦਾ ਹੈ। ਜਦੋਂ ਇੱਕੋ ਰਸਤਾ ਕਈ SSH ਸਾਧਨ ਵਰਤਦੇ ਹਨ ਤਾਂ ਇਹ ਸੁਵਿਧਾਜਨਕ ਹੋ ਸਕਦਾ ਹੈ। ਕਨੈਕਸ਼ਨ ਲਈ ਇੱਕ ਇੱਛਤ ਗੇਟਵੇ ਪਰਿਭਾਸ਼ਾ ਵਰਤੋ, ਇਸ ਦੀ ਥਾਂ ਕਿ ਹੁਕਮ-ਸ਼ੈਲੀ ਗੇਟਵੇ ਨੂੰ ਉਸੇ ਮੰਜ਼ਿਲ ਲਈ ਵੱਖਰੇ ਜੰਪ-ਹੋਸਟ ਗੇਟਵੇ ਨਾਲ ਜੋੜਿਆ ਜਾਵੇ।

ਜਦੋਂ ਵਿਚੋਲਾ ਇੱਕ SSH ਸਰਵਰ ਹੋਵੇ

Fabric ਦੀ Connection ਵਸਤੂ ਜਦੋਂ gateway ਵਜੋਂ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਅਰਥ ਵੱਖਰਾ ਹੁੰਦਾ ਹੈ: Fabric ਉਸ SSH ਗੇਟਵੇ ਨਾਲ ਜੁੜਦਾ ਹੈ ਅਤੇ ਅੰਤਿਮ ਹੋਸਟ ਵੱਲ ਚੈਨਲ ਮੰਗਦਾ ਹੈ। SSH ਜੰਪ ਹੋਸਟ ਲਈ ਉਹੀ ਰੂਪ ਵਰਤੋ। SOCKS ਸਰੋਤਾ SSH ਸਰਵਰ ਨਹੀਂ ਹੈ, ਇਸ ਲਈ ਇਸਨੂੰ ਉੱਪਰ ਵਾਲਾ ਹੁਕਮ-ਸ਼ੈਲੀ ਕਨੈਕਟਰ ਚਾਹੀਦਾ ਹੈ।

ਇਸ ਆਵਾਜਾਈ ਚੋਣ ਦੀ ਵੀ ਸਪਸ਼ਟ ਸੀਮਾ ਹੈ। ਇਹ Fabric ਦੇ SSH ਕਨੈਕਸ਼ਨ ਨੂੰ ਰੂਟ ਕਰਦੀ ਹੈ। ਦੂਰ ਦੇ ਹੋਸਟ 'ਤੇ ਚੱਲਣ ਵਾਲਾ ਹੁਕਮ ਜੋ ਬਾਅਦ ਵਿੱਚ ਕੋਈ ਰਿਪੋਜ਼ਟਰੀ ਜਾਂ ਪੈਕੇਜ ਡਾਊਨਲੋਡ ਕਰਦਾ ਹੈ, ਉਸ ਹੋਸਟ ਤੋਂ ਨਵਾਂ ਬਾਹਰ ਜਾਣ ਵਾਲਾ ਕਨੈਕਸ਼ਨ ਬਣਾਉਂਦਾ ਹੈ, ਉਸ ਪ੍ਰੋਗਰਾਮ ਦੀ ਆਪਣੀ ਪ੍ਰੌਕਸੀ ਸੰਰਚਨਾ ਅਨੁਸਾਰ।

ਸੰਬੰਧਿਤ ਲੇਖ