CI ਰਨਰ ਦਾ VPN: ਕੀ ਟਨਲ ਬਿਲਡ ਤੋਂ ਵੱਧ ਚਿਰ ਰਹਿੰਦਾ ਹੈ?
ਸਾਂਝਾ CI ਰਨਰ ਕੰਮਾਂ ਵਿਚਕਾਰ ਰੂਟ ਅਤੇ ਪ੍ਰਕਿਰਿਆਵਾਂ ਰੱਖਦਾ ਹੈ। ਕੰਮ ਤੋਂ ਪਹਿਲਾਂ, ਦੌਰਾਨ ਅਤੇ ਬਾਅਦ VPN ਦੀਆਂ ਹਾਲਤਾਂ ਦੀ ਯੋਜਨਾ ਬਣਾਓ, ਅਤੇ ਸਿਰਫ਼ ਉਹੀ ਕਨੈਕਸ਼ਨ ਸਾਫ਼ ਕਰੋ ਜੋ ਕੰਮ ਦਾ ਆਪਣਾ ਹੈ।
ਇੱਕ ਡਿਪਲਾਇਮੈਂਟ ਕੰਮ ਜੁੜਦਾ ਹੈ, ਆਪਣਾ ਆਰਟੀਫੈਕਟ ਕਾਪੀ ਕਰਦਾ ਹੈ ਅਤੇ ਸਫਲਤਾ ਦੀ ਰਿਪੋਰਟ ਕਰਦਾ ਹੈ। ਇਸ ਨੇ ਜੋ ਟਨਲ ਖੋਲ੍ਹਿਆ ਹੈ ਉਹ ਅਗਲਾ ਕੰਮ ਸ਼ੁਰੂ ਹੋਣ ਵੇਲੇ ਵੀ ਚੱਲਦਾ ਹੋ ਸਕਦਾ ਹੈ, ਅਤੇ ਇਸ ਨੇ ਜੋ ਰੂਟ ਬਦਲਿਆ ਉਹ ਪੂਰੇ ਹੋਸਟ ਦਾ ਹੈ। ਬਿਲਡ ਦਾ ਨਤੀਜਾ ਕਮਾਂਡ ਦਾ ਵਰਨਣ ਕਰਦਾ ਹੈ, ਪਿੱਛੇ ਛੱਡੀ ਹਾਲਤ ਦਾ ਨਹੀਂ। VPN ਨੂੰ ਉਮਰ ਵਾਲਾ ਸਰੋਤ ਮੰਨੋ, ਸਟੇਜ ਦੀ ਸ਼ੁਰੂਆਤ ਵਿੱਚ ਇੱਕ ਲਾਈਨ ਵਾਂਗ ਨਹੀਂ।
ਇਸ ਹੋਸਟ ਉੱਤੇ ਹੋਰ ਕੀ ਚੱਲਦਾ ਹੈ
ਇੱਕ Jenkins ਨੋਡ ਇੱਕੋ ਸਮੇਂ ਕਈ ਐਗਜ਼ੀਕਿਊਟਰ ਚਲਾ ਸਕਦਾ ਹੈ, ਅਤੇ ਹੋਸਟ ਦੇ ਰੂਟ, ਰਿਜ਼ੋਲਵਰ ਸੈਟਿੰਗਾਂ ਜਾਂ ਸਿਸਟਮ-ਵਿਆਪੀ ਕਨੈਕਸ਼ਨ ਬਦਲਣ ਵਾਲਾ ਕੰਮ ਉਹ ਸਭ ਲਈ ਬਦਲ ਦਿੰਦਾ ਹੈ। ਕੀ ਕੋਈ ਹੋਰ ਕੰਮ ਇਹ ਧਿਆਨ ਦੇਵੇਗਾ, ਇਹ ਰੂਟ ਅਤੇ ਫਿਲਟਰਿੰਗ ਨੀਤੀ ਉੱਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ, VPN ਬਾਰੇ ਕਿਸੇ ਆਮ ਨਿਯਮ ਉੱਤੇ ਨਹੀਂ। ਰਿਪੋਜ਼ਟਰੀ ਪਹੁੰਚ, ਆਰਟੀਫੈਕਟ ਪਹੁੰਚ ਅਤੇ ਕੰਟਰੋਲ ਚੈਨਲ ਰਨਰ ਨੂੰ ਹਾਲੇ ਵੀ ਲੋੜੀਂਦੀਆਂ ਵੱਖਰੀਆਂ ਲੋੜਾਂ ਹਨ। ਪੂਰਾ ਟਨਲ ਚੁਣਨ ਤੋਂ ਪਹਿਲਾਂ ਉਹਨਾਂ ਨੂੰ ਡਿਪਲਾਇਮੈਂਟ ਮੰਜ਼ਿਲਾਂ ਦੀ ਸੂਚੀ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ।
ਜੇ ਕੰਟਰੋਲ ਚੈਨਲ ਟਨਲ ਨੂੰ ਪਾਰ ਕਰਨਾ ਹੈ, ਤਾਂ ਡਿਜ਼ਾਈਨ ਨੂੰ ਇਹ ਜਾਣ-ਬੁੱਝ ਕੇ ਕਹਿਣਾ ਪਵੇਗਾ। ਰੋਲਬੈਕ ਦੌਰਾਨ ਇਹ ਲੱਭਣਾ ਯੋਜਨਾ ਨਹੀਂ ਹੈ। ਦੋ ਸੂਚੀਆਂ ਲਿਖੋ: ਕੰਮ ਨੂੰ ਨਿੱਜੀ ਤੌਰ ਉੱਤੇ ਕਿੱਥੇ ਪਹੁੰਚਣਾ ਹੈ, ਅਤੇ ਰਨਰ ਨੂੰ ਹਰ ਹਾਲ ਕਿੱਥੇ ਪਹੁੰਚਣਾ ਹੈ।
ਕੀ ਇਸ ਕੰਮ ਨੂੰ ਨਿੱਜੀ ਪਹੁੰਚ ਦੀ ਲੋੜ ਹੀ ਹੈ?
ਟਨਲ ਜੋੜਨ ਤੋਂ ਪਹਿਲਾਂ ਪੁੱਛੋ ਕਿ ਕੀ ਬਿਲਡ ਸਟੇਜ ਨੂੰ ਇਸ ਦੀ ਲੋੜ ਹੈ। ਨਿੱਜੀ ਡਿਪਲਾਇਮੈਂਟ ਏਜੰਟ ਮਨਜ਼ੂਰ ਆਰਟੀਫੈਕਟ ਲਿਆ ਕੇ ਡਿਪਲਾਇਮੈਂਟ ਕਰ ਸਕਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਆਮ ਬਿਲਡ ਸਟੇਜ ਨਿੱਜੀ ਨੈੱਟਵਰਕ ਤੋਂ ਬਾਹਰ ਰਹਿੰਦਾ ਹੈ। ਇਹ ਵੰਡ ਆਮ ਤੌਰ ਉੱਤੇ ਹਰ ਬਿਲਡ ਕਦਮ ਨੂੰ ਟਨਲ ਵਿੱਚੋਂ ਰੂਟ ਕਰਨਾ ਸਿਖਾਉਣ ਤੋਂ ਸਸਤੀ ਹੈ।
ਸੀਮਾ ਆਦਤ ਤੋਂ ਨਹੀਂ, ਵਰਕਫਲੋ ਤੋਂ ਚੁਣੋ। ਜੇ ਜਵਾਬ ਨਾ ਹੈ, ਤਾਂ ਇਸ ਸਫ਼ੇ ਦਾ ਬਾਕੀ ਹਿੱਸਾ ਗੈਰ-ਜ਼ਰੂਰੀ ਹੈ, ਅਤੇ ਇਹੀ ਸਭ ਤੋਂ ਵਧੀਆ ਉਪਲਬਧ ਨਤੀਜਾ ਹੈ।
ਅਗਲਾ ਕੰਮ ਜੋ ਹਾਲਤ ਵਿਰਾਸਤ ਵਿੱਚ ਲੈਂਦਾ ਹੈ
ਕੰਮ ਤੋਂ ਪਹਿਲਾਂ, ਨਿੱਜੀ ਪਹੁੰਚ ਹੋਣ ਵੇਲੇ ਅਤੇ ਕੰਮ ਖ਼ਤਮ ਹੋਣ ਤੋਂ ਬਾਅਦ—ਰੱਦ ਕਰਨ ਸਮੇਤ—ਕੀ ਸੱਚ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਦੱਸੋ। ਅੰਤਿਮ ਹਾਲਤ ਹੀ ਸਭ ਤੋਂ ਵੱਧ ਅਣਕਹੀ ਰਹਿੰਦੀ ਹੈ, ਅਤੇ ਉਹੀ ਅਗਲਾ ਕੰਮ ਵਿਰਾਸਤ ਵਿੱਚ ਲੈਂਦਾ ਹੈ। ਇਸ ਨੂੰ ਕਿਸੇ ਦੀ ਯਾਦ ਵਿੱਚ ਛੱਡਣ ਦੀ ਥਾਂ ਪਾਈਪਲਾਈਨ ਦੇ ਕੋਲ ਲਿਖੋ।
| Moment | What proves it | What leaks if it is skipped |
|---|---|---|
| Job start: pre-flight route check | The route table shows no tunnel from an earlier job, and the profile list is empty | A stale route sends deployment traffic into a dead tunnel |
| Job end: disconnect and shred | The profile is down and the temporary key file is gone | The next job inherits an open tunnel and a usable credential |
| Cancelled job: reboot or disposal | The host is replaced or rebooted before the next job starts | A killed process leaves the tunnel up with no owner |
ਸਮਰਪਿਤ ਜਾਂ ਇੱਕ ਵਾਰ ਵਰਤੋਂ ਵਾਲਾ ਏਜੰਟ ਇਹਨਾਂ ਸੀਮਾਵਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨਾ ਸੌਖਾ ਬਣਾਉਂਦਾ ਹੈ। ਕੰਟੇਨਰ ਜਾਂ ਨੇਮਸਪੇਸ ਤਦ ਹੀ ਮਦਦ ਕਰਦਾ ਹੈ ਜਦੋਂ ਇਸ ਦੀ ਨੈੱਟਵਰਕ ਅਤੇ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰ ਬਣਤਰ ਬਦਲਾਅ ਨੂੰ ਸੱਚਮੁੱਚ ਅਲੱਗ ਕਰਦੀ ਹੈ।
ਪ੍ਰੋਗਰਾਮ ਨਹੀਂ, ਕਨੈਕਸ਼ਨ ਰੋਕੋ
ਇਸ ਕੰਮ ਨੇ ਸ਼ੁਰੂ ਕੀਤਾ ਕਨੈਕਸ਼ਨ ਬੰਦ ਕਰਨ ਅਤੇ ਇਸ ਦੇ ਅਸਥਾਈ ਪ੍ਰਮਾਣ ਪੱਤਰ ਹਟਾਉਣ ਲਈ ਪਾਈਪਲਾਈਨ ਦਾ ਅੰਤਿਮੀਕਰਨ ਮਾਰਗ ਵਰਤੋ। ਹੋਰ ਕੰਮਾਂ ਵੱਲੋਂ ਵਰਤੇ ਜਾਂਦੇ ਹੋਸਟ ਉੱਤੇ ਪ੍ਰੋਗਰਾਮ ਦੇ ਨਾਮ ਨਾਲ ਪ੍ਰਕਿਰਿਆਵਾਂ ਨੂੰ ਨਾ ਮਿਲਾਓ; ਇਸ ਦੀ ਥਾਂ ਉਹ ਖਾਸ ਕਨੈਕਸ਼ਨ ਰੋਕੋ। ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਦੋ ਕਮਾਂਡਾਂ ਹੀ ਪੂਰੀ ਸਫ਼ਾਈ ਹਨ, ਅਤੇ ਕੋਈ ਵੀ ਪ੍ਰਕਿਰਿਆ ਲੱਭਣ ਉੱਤੇ ਨਿਰਭਰ ਨਹੀਂ।
vpn-cli disconnect --profile "$PROFILE"
rm -f "$RUNNER_TEMP/client.key"
ਅੰਤਿਮੀਕਰਨ ਅਲੱਗਾਅ ਨਹੀਂ ਹੈ: ਮਰਨ ਵਾਲਾ ਰਨਰ ਆਪਣਾ ਖੋਲ੍ਹਿਆ ਟਨਲ ਰੱਖਦਾ ਹੈ, ਅਤੇ ਜ਼ਬਰਦਸਤੀ ਰੋਕੀ ਪ੍ਰਕਿਰਿਆ ਬਲਾਕ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਛੱਡ ਦਿੰਦੀ ਹੈ। ਇਸ ਲਈ ਸਿਰਫ਼ ਸਫ਼ਾਈ ਦੀ ਕਮਾਂਡ ਪੂਰਾ ਡਿਜ਼ਾਈਨ ਨਹੀਂ ਹੋ ਸਕਦੀ। ਅਮਲ ਵਿੱਚ ਇਹ ਇੰਝ ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ: ਡਿਪਲਾਇਮੈਂਟ ਕੰਮ ਕਾਪੀ ਕਦਮ ਉੱਤੇ ਰੱਦ ਹੁੰਦਾ ਹੈ, ਅੰਤਿਮੀਕਰਨ ਬਲਾਕ ਕਦੇ ਨਹੀਂ ਚੱਲਦਾ, ਅਤੇ ਉਸੇ ਹੋਸਟ ਉੱਤੇ ਅਗਲਾ ਕੰਮ ਜੀਵਤ ਟਨਲ ਅਤੇ ਉਸ ਨੈੱਟਵਰਕ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਨ ਵਾਲੇ ਰੂਟ ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ ਜਿੱਥੇ ਇਹ ਪਹੁੰਚ ਨਹੀਂ ਸਕਦਾ। ਨੁਕਸ ਅਗਲੇ ਬਿਲਡ ਵਿੱਚ 'DNS' ਸਮੱਸਿਆ ਵਾਂਗ ਦਿਸਦਾ ਹੈ, ਇਸ ਨੂੰ ਪੈਦਾ ਕਰਨ ਵਾਲੇ ਕੰਮ ਦੇ ਖ਼ਤਮ ਹੋਣ ਤੋਂ ਘੰਟਿਆਂ ਬਾਅਦ।
ਕੰਮ ਦੇ ਆਉਟਪੁੱਟ ਵਿੱਚ ਪ੍ਰੋਫਾਈਲ ਦਾ ਨਾਮ ਅਤੇ ਪ੍ਰਮਾਣ ਪੱਤਰ ਦਾ ਮਾਰਗ ਦਰਜ ਕਰੋ। ਬਿਨਾਂ ਪਛਾਣਕਰਤਾ ਵਾਲੀ ਖਾਲੀ ਡਿਸਕਨੈਕਟ ਕਮਾਂਡ ਬਾਅਦ ਵਿੱਚ ਆਡਿਟ ਕਰਨੀ ਔਖੀ ਹੈ। ਲੌਗ ਦੀ ਲਾਈਨ ਵੀ ਉਹੀ ਸਾਬਤ ਕਰਦੀ ਹੈ ਕਿ ਬਲਾਕ ਚੱਲਿਆ ਸੀ, ਜਦੋਂ ਬਾਅਦ ਦੀ ਜਾਂਚ ਪੁੱਛਦੀ ਹੈ।
ਕੰਮ ਨੂੰ ਅਜਿਹਾ ਹੋਸਟ ਦਿਓ ਜੋ ਹੋਰ ਕੋਈ ਨਹੀਂ ਵਰਤਦਾ
ਇੱਕ ਵਾਰ ਵਰਤੋਂ ਵਾਲਾ ਢਾਂਚਾ ਵਿਰਾਸਤ ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਸੰਭਾਲਣ ਦੀ ਥਾਂ ਹਟਾ ਦਿੰਦਾ ਹੈ। ਹਰ ਕੰਮ ਲਈ ਨਵਾਂ ਏਜੰਟ ਬਿਨਾਂ ਰੂਟ, ਪ੍ਰੋਫਾਈਲ ਅਤੇ ਹੋਰਾਂ ਦੇ ਪ੍ਰਮਾਣ ਪੱਤਰਾਂ ਤੋਂ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਇਸ ਦਾ ਨਾਸ਼ ਕੰਮ ਨੇ ਜੋ ਛੱਡਿਆ ਹੈ ਉਹ ਸਾਫ਼ ਕਰ ਦਿੰਦਾ ਹੈ। ਇਸ ਦਾ ਹਰ ਬਿਲਡ ਉੱਤੇ ਵੱਧ ਖਰਚ ਆਉਂਦਾ ਹੈ, ਅਤੇ ਇਹ ਸਫ਼ਾਈ ਕੋਡ ਉੱਤੇ ਨਿਰਭਰ ਨਾ ਕਰਨ ਵਾਲੀ ਸੀਮਾ ਦੀ ਇਮਾਨਦਾਰ ਕੀਮਤ ਹੈ। ਉਤਪਾਦਨ ਨੈੱਟਵਰਕਾਂ ਨੂੰ ਛੂਹਣ ਵਾਲੇ ਕੰਮਾਂ ਲਈ, ਘਟਨਾਵਾਂ ਗਿਣਨ ਤੋਂ ਬਾਅਦ ਆਮ ਤੌਰ ਉੱਤੇ ਇਹੀ ਸਸਤਾ ਵਿਕਲਪ ਹੈ।
ਜਿੱਥੇ ਸਾਂਝਾ ਰਨਰ ਰਹਿਣਾ ਲਾਜ਼ਮੀ ਹੈ, ਉੱਥੇ ਫੇਲ੍ਹ ਹੋਣਾ ਅਤੇ ਰੱਦ ਕਰਨਾ ਸਫਲ ਕਾਪੀ ਜਿੰਨੀ ਹੀ ਸਾਵਧਾਨੀ ਨਾਲ ਜਾਂਚੋ। ਜਾਂਚ ਨੇ ਦਿਖਾਉਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਜੇ ਇਹ ਕੰਮ ਅੱਧ ਵਿਚਾਲੇ ਰੱਦ ਹੁੰਦਾ ਤਾਂ ਅਗਲਾ ਕੰਮ ਕੀ ਵੇਖਦਾ। ਕੰਮ ਤਦ ਪੂਰਾ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਇਸ ਦੀ ਪਹੁੰਚ ਅਤੇ ਅਸਥਾਈ ਹਾਲਤ ਖ਼ਤਮ ਹੋ ਜਾਂਦੀ ਹੈ, ਤਦ ਨਹੀਂ ਜਦੋਂ ਕਾਪੀ ਕਮਾਂਡ ਸਿਫ਼ਰ ਦਿੰਦੀ ਹੈ।