OpenShift - Jenkins
์ด ํ์ด์ง์ ์ ์ ์๋ Fares
์ด ํ์ด์ง๋ Openshift(๋๋ Kubernetes) ํด๋ฌ์คํฐ์์ ์คํ๋๋ Jenkins ์ธ์คํด์ค๋ฅผ ๊ณต๊ฒฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ช ๊ฐ์ง ์ง์นจ์ ์ ๊ณตํฉ๋๋ค.
๋ฉด์ฑ
์กฐํญ
Jenkins ์ธ์คํด์ค๋ Openshift ๋๋ Kubernetes ํด๋ฌ์คํฐ ๋ชจ๋์ ๋ฐฐํฌ๋ ์ ์์ต๋๋ค. ๋ฌธ๋งฅ์ ๋ฐ๋ผ ํ์๋ ํ์ด๋ก๋, yaml ๋๋ ๊ธฐ์ ์ ์กฐ์ ํด์ผ ํ ์ ์์ต๋๋ค. Jenkins๋ฅผ ๊ณต๊ฒฉํ๋ ์์ธํ ์ ๋ณด๋ ์ด ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ ์ ์กฐ๊ฑด
1a. Jenkins ์ธ์คํด์ค์์์ ์ฌ์ฉ์ ์ก์ธ์ค ๋๋ 1b. ํธ์/๋ณํฉ ํ ์๋ ๋น๋๊ฐ ํธ๋ฆฌ๊ฑฐ๋ SCM ์ ์ฅ์์ ์ฐ๊ธฐ ๊ถํ์ด ์๋ ์ฌ์ฉ์ ์ก์ธ์ค
์๋ ๋ฐฉ์
๊ทผ๋ณธ์ ์ผ๋ก, ๋ฐฐํ์์ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ด VM์์ ์คํ๋๋ ์ผ๋ฐ์ ์ธ Jenkins ์ธ์คํด์ค์ ๋์ผํ๊ฒ ์๋ํฉ๋๋ค. ์ฃผ์ ์ฐจ์ด์ ์ ์ ๋ฐ์ ์ธ ์ํคํ ์ฒ ๋ฐ ๋น๋๊ฐ Openshift(๋๋ Kubernetes) ํด๋ฌ์คํฐ ๋ด์์ ์ด๋ป๊ฒ ๊ด๋ฆฌ๋๋์ง์ ๋๋ค.
๋น๋
๋น๋๊ฐ ํธ๋ฆฌ๊ฑฐ๋๋ฉด ๋จผ์ Jenkins ๋ง์คํฐ ๋ ธ๋์ ์ํด ๊ด๋ฆฌ/์กฐ์ ๋๊ณ , ๊ทธ๋ฐ ๋ค์ ์์ด์ ํธ/์ฌ๋ ์ด๋ธ/์์ปค์๊ฒ ์์๋ฉ๋๋ค. ์ด ๋ฌธ๋งฅ์์ ๋ง์คํฐ ๋ ธ๋๋ ๊ทธ๋ฅ ์ผ๋ฐ์ ์ธ pod๋ก ์คํ๋๋ ๊ฒ์ด๋ฉฐ(์์ปค๊ฐ ์คํ๋๋ ๊ณณ๊ณผ ๋ค๋ฅผ ์ ์์), ์์ปค/์ฌ๋ ์ด๋ธ์๋ ๋์ผํ๊ฒ ์ ์ฉ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋น๋๊ฐ ์๋ฃ๋๋ฉด ์์ปค/์ฌ๋ ์ด๋ธ๋ ํ๊ดด๋์ง๋ง ๋ง์คํฐ๋ ํญ์ ์ ์ง๋ฉ๋๋ค. ๋น๋๋ ์ผ๋ฐ์ ์ผ๋ก Jenkins ๊ด๋ฆฌ์๊ฐ ์ ์ํ ๊ธฐ๋ณธ pod ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ pod ๋ด์์ ์คํ๋ฉ๋๋ค.
๋น๋ ํธ๋ฆฌ๊ฑฐ
๋น๋๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ ์ฃผ์ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
Jenkins์ UI ์ก์ธ์ค ๊ถํ์ด ์๋ ๊ฒฝ์ฐ
๊ธฐ์กด ๋น๋์ Replay ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋งค์ฐ ์ฝ๊ณ ํธ๋ฆฌํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ด์ ์ ์คํ๋ ๋น๋๋ฅผ ๋ค์ ์คํํ๋ฉด์ groovy ์คํฌ๋ฆฝํธ๋ฅผ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. Jenkins ํด๋์ ๊ถํ์ด ํ์ํ๋ฉฐ ๋ฏธ๋ฆฌ ์ ์๋ ํ์ดํ๋ผ์ธ์ด ์์ด์ผ ํฉ๋๋ค. ์๋ฐํ๊ฒ ์์ ํด์ผ ํ๋ ๊ฒฝ์ฐ ๊ถํ์ด ์ถฉ๋ถํ๋ค๋ฉด ํธ๋ฆฌ๊ฑฐ๋ ๋น๋๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค.
SCM์ ์ฐ๊ธฐ ์ก์ธ์ค๊ฐ ์๊ณ ์๋ ๋น๋๊ฐ ์นํ ์ ํตํด ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ
๋น๋ ์คํฌ๋ฆฝํธ(์: Jenkinsfile)๋ฅผ ํธ์งํ๊ณ ์ปค๋ฐํ๊ณ ํธ์ํ ์ ์์ต๋๋ค(๋น๋๊ฐ PR ๋ณํฉ ์์๋ง ํธ๋ฆฌ๊ฑฐ๋๋ ๊ฒฝ์ฐ PR์ ์์ฑํด์ผ ํจ). ์ด ๊ฒฝ๋ก๋ ๋งค์ฐ ์๋๋ฝ๊ณ ์์ ์ ํ์ ์ ์ง์ฐ๋ ค๋ฉด ๊ถํ์ด ํ์ํฉ๋๋ค.
Jenkins ๋น๋ Pod YAML ์ฌ์ ์
OpenShift - Jenkins Build Pod OverrideLast updated