๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Programming/Git

[Gitlab] ๊นƒ ๋žฉ ๋ฏธ๋Ÿฌ๋ง(gitlab mirroring, ๋ฐฑ์—… ์ฒด๊ณ„ ๊ตฌ์ถ•)

728x90
๋ฐ˜์‘ํ˜•

โ–  ๋ฐฐ๊ฒฝ

ํ˜„์žฌ ํšŒ์‚ฌ๋Š” ๊ฐœ๋ฐœ์„œ๋ฒ„๊ฐ€ 2์ค‘์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

ํŒŒํŠธ ๋‚ด์—์„œ ๊ฐœ๋ฐœ ์‹œ์ž‘๋˜๋Š” ํ™˜๊ฒฝ์€ GitLab๊ณผ Jenkins๊ฐ€ ํ˜ธ์ŠคํŒ…๋˜์–ด ์žˆ๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ณ  1์ฐจ ์„œ๋ฒ„์—์„œ 2์ฐจ ๊ฐœ๋ฐœ์„œ๋ฒ„๋กœ ๋ฏธ๋Ÿฌ๋ง ๋ฐ ๋ฐฐํฌ๊ฐ€ ์ด๋ค„์ง‘๋‹ˆ๋‹ค.

 

2์ฐจ ๊ฐœ๋ฐœ์„œ๋ฒ„๋Š” ์—ฌ๋Ÿฌ ํŒ€์—์„œ ์ฐธ์กฐํ•˜๊ณ ์žˆ๋Š”๋ฐ ๊ฐ„ํ—์ ์œผ๋กœ 1์ฐจ ๊ฐœ๋ฐœ์„œ๋ฒ„์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์žฅ์• ๋Š” ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ, ์ดํ–‰ ์ผ์ •์— ์ฐจ์งˆ์„ ์ดˆ๋ž˜ํ•˜์—ฌ, ํŒ€์˜ ์—…๋ฌด ํšจ์œจ์„ฑ์„ ์ €ํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ์ €๋Š” ๋ฐฑ์—… ์ฒด๊ณ„๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ๋กœ ๊ฒฐ์‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ๊ณผ์ •์„ gitLab ๋ฏธ๋Ÿฌ๋ง ๋ฐฉ๋ฒ•์„ ๊ณต์œ ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

 

โ–  GitLab ๋ฏธ๋Ÿฌ๋ง

 

1. ๋ฐฑ์—… gitlab์— ์†Œ์Šค๋ฅผ ๋ฐ›์„ ํƒ€๊ฒŸ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑ

์ƒ๋žต...

 

2. ๋ฐฑ์—… gitlab์— ์ธ์ฆ์„ ์œ„ํ•œ access token์„ ์ƒ์„ฑ(์„ ํƒ์ด๋ฉฐ token์ด ์•„๋‹Œ ๋กœ๊ทธ์ธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋จ)

access token์€ ํ•ด๋‹น ๋ฉ”๋‰ด์—์„œ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ์•„๋‹Œ ์ƒ์œ„ ๊ทธ๋ฃน ํ•˜์œ„์— ์žˆ๋Š” ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์— ๋™์ผํ•˜๊ฒŒ ์ ์šฉํ•˜๊ณ ์‹ถ๋‹ค๋ฉด, ๊ทธ๋ฃน settings๋กœ ๋“ค์–ด๊ฐ€์„œ access token์„ ์ƒ์„ฑํ•˜๋ฉด ๋œ๋‹ค.

role์˜ ๊ฒฝ์šฐ, ๋ฏธ๋Ÿฌ๋ง(push)๋ฅผ ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ธŒ๋žœ์น˜์˜ ๊ถŒํ•œ ์ด์ƒ์˜ ๊ถŒํ•œ์„ ์„ค์ •ํ•œ๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด ๋ฏธ๋Ÿฌ๋ง์„ ๋ฐ›์„ ํƒ€๊ฒŸ ํ”„๋กœ์ ํŠธ main ๋ธŒ๋žœ์น˜์˜ push ๊ถŒํ•œ์ด Maintainer์ด๊ณ  access token์˜ ๊ถŒํ•œ์ด Developer๋กœ ๋˜์–ด์žˆ๋‹ค๋ฉด, ํ•ด๋‹น ๋ธŒ๋žœ์น˜์— push๋ฅผ ํ•  ์ˆ˜ ์—†์–ด์„œ ๋ฏธ๋Ÿฌ๋ง์„ ํ•  ์ˆ˜ ์—†๋‹ค.

(๊ถŒํ•œ์€ Owner๊ฐ€ ๊ฐ€์žฅ ๋†’๊ณ  Guest๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ๋‹ค.)

 

3. ์›๋ณธ gitlab์—์„œ ๋ฏธ๋Ÿฌ๋ง์„ ์„ค์ •

ํ”„๋กœ์ ํŠธ > Settings > Repository > Mirroing repositories

 

Git repository URL์—๋Š” ๋ชฉ์ ์ง€์˜ "http(s)://๊ณ„์ •@git์ฃผ์†Œ" ๋ฅผ ์ ์–ด์ค€๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด ๋‚˜์˜ ๊ฒฝ์šฐ, ํ์‡„๋ง์—์„œ ๊ตฌํ˜„ํ•œ ๋ฐฑ์—… gitlab ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ชฉ์ ์ง€์ด๋‹ค.

ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ ์ฃผ์†Œ๊ฐ€ http://10.25.111.222/mygroup/my-proj.git ์ด๊ณ  ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ณ„์ •์˜ ์ •๋ณด๊ฐ€ admin ์ผ ๊ฒฝ์šฐ, http://admin@10.25.111.222/mygroup/my-proj.git ์ด ๋˜๊ฒ ๋‹ค.

password์—๋Š” admin ๊ณ„์ •์˜ gitlab ๋กœ๊ทธ์ธ ๋น„๋ฐ€๋ฒˆํ˜ธ ํ˜น์€ ์ƒ์„ฑํ•œ access token์„ ์ž…๋ ฅํ•œ๋‹ค.

Mirror only protected branches ๋ฅผ ์„ ํƒํ•˜๋ฉด protected branches๋กœ ์„ค์ •ํ•œ branch๋“ค๋งŒ mirroringํ•  ์ˆ˜ ์žˆ๋‹ค.

(์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ™์ด ๊ฐœ๋ฐœ์„ํ•˜๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋‹ค์–‘ํ•œ feature ๋ธŒ๋žœ์น˜๊ฐ€ ์ƒ์„ฑ๋ ํ…๋ฐ ์ด ๋ชจ๋“  ๋ธŒ๋žœ์น˜๋ฅผ ๊ฐ€์ ธ๊ฐˆ ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์ฃผ์š” ๋ธŒ๋žœ์น˜๋งŒ ๊ฐ€์ ธ๊ฐˆ ๊ฒƒ์ด๋ผ๋ฉด protected๋กœ ์„ค์ •ํ•ด ๋†“๊ณ  ์„ ํƒํ•ด์ฃผ๋ฉด ์ข‹๋‹ค.)

protected branches ์„ค์ •์€ Mirroring repositories ๋ฐ”๋กœ ์•„๋ž˜์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์‹ค์ œ ๋ฏธ๋Ÿฌ๋ง์ด ์„ค์ •์ด ์™„๋ฃŒ๋˜๋ฉด ์œ„์™€ ๊ฐ™์ด rowํ•˜๋‚˜๊ฐ€ ์ƒ๊ธด๋‹ค. ๋‚˜ ์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฏธ๋Ÿฌ๋ง์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.

์‹ค์ œ ์„ค์ •ํ•œ ๋ธŒ๋žœ์น˜์˜ ๋ณ€ํ™”(commit)์ด ์ƒ๊ธฐ๋ฉด ์ž๋™์œผ๋กœ ๋ฏธ๋Ÿฌ๋ง(ํ˜„์žฌ ์„ค์ •์€ push)๊ฐ€ ์ง„ํ–‰๋œ๋‹ค.

์ˆ˜๋™์œผ๋กœ ์ง์ ‘ ๋ฏธ๋Ÿฌ๋ง์„ ์‹œํ‚ค๊ณ  ์‹ถ๋‹ค๋ฉด ์˜ค๋ฅธ์ชฝ์— ์ƒˆ๋กœ๊ณ ๋ฆผ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•ด์ค˜๋„ ๋œ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•