OpenShift - Jenkins

์ด ํŽ˜์ด์ง€์˜ ์› ์ €์ž๋Š” Fares

์ด ํŽ˜์ด์ง€๋Š” Openshift(๋˜๋Š” Kubernetes) ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์‹คํ–‰๋˜๋Š” Jenkins ์ธ์Šคํ„ด์Šค๋ฅผ ๊ณต๊ฒฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ง€์นจ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ฉด์ฑ… ์กฐํ•ญ

Jenkins ์ธ์Šคํ„ด์Šค๋Š” Openshift ๋˜๋Š” Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋‘์— ๋ฐฐํฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ๋งฅ์— ๋”ฐ๋ผ ํ‘œ์‹œ๋œ ํŽ˜์ด๋กœ๋“œ, yaml ๋˜๋Š” ๊ธฐ์ˆ ์„ ์กฐ์ •ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Jenkins๋ฅผ ๊ณต๊ฒฉํ•˜๋Š” ์ž์„ธํ•œ ์ •๋ณด๋Š” ์ด ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ „์ œ ์กฐ๊ฑด

1a. Jenkins ์ธ์Šคํ„ด์Šค์—์„œ์˜ ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค ๋˜๋Š” 1b. ํ‘ธ์‹œ/๋ณ‘ํ•ฉ ํ›„ ์ž๋™ ๋นŒ๋“œ๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋œ SCM ์ €์žฅ์†Œ์— ์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค

์ž‘๋™ ๋ฐฉ์‹

๊ทผ๋ณธ์ ์œผ๋กœ, ๋ฐฐํ›„์—์„œ ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ์ด VM์—์„œ ์‹คํ–‰๋˜๋Š” ์ผ๋ฐ˜์ ์ธ Jenkins ์ธ์Šคํ„ด์Šค์™€ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ์ฐจ์ด์ ์€ ์ „๋ฐ˜์ ์ธ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ๋นŒ๋“œ๊ฐ€ Openshift(๋˜๋Š” Kubernetes) ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์—์„œ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌ๋˜๋Š”์ง€์ž…๋‹ˆ๋‹ค.

๋นŒ๋“œ

๋นŒ๋“œ๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋˜๋ฉด ๋จผ์ € Jenkins ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์— ์˜ํ•ด ๊ด€๋ฆฌ/์กฐ์ •๋˜๊ณ , ๊ทธ๋Ÿฐ ๋‹ค์Œ ์—์ด์ „ํŠธ/์Šฌ๋ ˆ์ด๋ธŒ/์›Œ์ปค์—๊ฒŒ ์œ„์ž„๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ๋งฅ์—์„œ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋Š” ๊ทธ๋ƒฅ ์ผ๋ฐ˜์ ์ธ pod๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด๋ฉฐ(์›Œ์ปค๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ณณ๊ณผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ), ์›Œ์ปค/์Šฌ๋ ˆ์ด๋ธŒ์—๋„ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋นŒ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์›Œ์ปค/์Šฌ๋ ˆ์ด๋ธŒ๋Š” ํŒŒ๊ดด๋˜์ง€๋งŒ ๋งˆ์Šคํ„ฐ๋Š” ํ•ญ์ƒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ Jenkins ๊ด€๋ฆฌ์ž๊ฐ€ ์ •์˜ํ•œ ๊ธฐ๋ณธ pod ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ pod ๋‚ด์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๋นŒ๋“œ ํŠธ๋ฆฌ๊ฑฐ

๋นŒ๋“œ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ์ฃผ์š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. Jenkins์— UI ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ

๊ธฐ์กด ๋นŒ๋“œ์˜ Replay ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์‰ฝ๊ณ  ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ด์ „์— ์‹คํ–‰๋œ ๋นŒ๋“œ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ฉด์„œ groovy ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Jenkins ํด๋”์— ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๋ฉฐ ๋ฏธ๋ฆฌ ์ •์˜๋œ ํŒŒ์ดํ”„๋ผ์ธ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์€๋ฐ€ํ•˜๊ฒŒ ์ž‘์—…ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ถŒํ•œ์ด ์ถฉ๋ถ„ํ•˜๋‹ค๋ฉด ํŠธ๋ฆฌ๊ฑฐ๋œ ๋นŒ๋“œ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. SCM์— ์“ฐ๊ธฐ ์•ก์„ธ์Šค๊ฐ€ ์žˆ๊ณ  ์ž๋™ ๋นŒ๋“œ๊ฐ€ ์›นํ›…์„ ํ†ตํ•ด ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ

๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ(์˜ˆ: Jenkinsfile)๋ฅผ ํŽธ์ง‘ํ•˜๊ณ  ์ปค๋ฐ‹ํ•˜๊ณ  ํ‘ธ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋นŒ๋“œ๊ฐ€ PR ๋ณ‘ํ•ฉ ์‹œ์—๋งŒ ํŠธ๋ฆฌ๊ฑฐ๋˜๋Š” ๊ฒฝ์šฐ PR์„ ์ƒ์„ฑํ•ด์•ผ ํ•จ). ์ด ๊ฒฝ๋กœ๋Š” ๋งค์šฐ ์‹œ๋„๋Ÿฝ๊ณ  ์ž์‹ ์˜ ํ”์ ์„ ์ง€์šฐ๋ ค๋ฉด ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Jenkins ๋นŒ๋“œ Pod YAML ์žฌ์ •์˜

OpenShift - Jenkins Build Pod Override

Last updated