๐Ÿณ์ธํ”„๋ผ/Jenkins

1. ์  ํ‚จ์Šค ํŒŒ์ดํ”„๋ผ์ธ ์„ค์ •Dashboard > New Item > PipelineGithub project์— webhook ๋“ฑ๋กํ•œ repository URL ์ž…๋ ฅBuild Triggers > Github hook trigger for GITscm polling ์ฒดํฌ ํŒŒ์ดํ”„๋ผ์ธ  ํฌ๊ฒŒ 3๋‹จ๊ณ„๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.Git Clone ๋‹จ๊ณ„Git ์ €์žฅ์†Œ์—์„œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋‹จ๊ณ„branch ๊ฐ€์ ธ์˜ฌ ๋ธŒ๋žœ์น˜๋ฅผ ์ง€์ •credentialsId ์‚ฌ์šฉํ•  Git ์ž๊ฒฉ ์ฆ๋ช…์˜ ID๋ฅผ ์ง€์ •ํ•œ๋‹ค. ์‚ฌ์ „์— Jenkins์—์„œ ์„ค์ •๋œ ๊ฒƒurl ๊ฐ€์ ธ์˜ฌ Git ์ €์žฅ์†Œ์˜ URL์„ ์ง€์ •Build ๋‹จ๊ณ„Gradle์„ ์‚ฌ์šฉํ•˜์—ฌ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋‹จ๊ณ„./gradlew clean build ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ Gradle ๋นŒ๋“œ๋ฅผ ์ˆ˜ํ–‰Deploy ๋‹จ๊ณ„s..
1. ์  ํ‚จ์Šค ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜ 1)gradle๋กœ ๋นŒ๋“œํ•˜๊ธฐ์œ„ํ•ด gradle ๊ด€๋ จ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜Dashboard > Manage Jenkins > Tools Gradle Installations > Version ์„ ํƒ ํ•˜๊ณ  Save 2) SSH agent ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜SSH๋ฅผ ํ†ตํ•ด EC2 ์ธ์Šคํ„ด์Šค์— ์ ‘๊ทผํ•  ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ์œ„ํ•ด SSH agent๋ฅผ ์„ค์น˜ํ•ด์•ผํ•œ๋‹ค.Dashboard > Manage Jenkins > Plugins > Available pluginsAvailable plugins > SSH agent ๊ฒ€์ƒ‰ > ์„ค์น˜ ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค.2. Repository WebHook ๋“ฑ๋ก์‚ฌ์šฉ githubhttps://github.com/seongjju/opensource GitHub - seongjju/opensou..
1. Jenkins ์„ค์ •EC2์˜ ํผ๋ธ”๋ฆญ IP๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€์—์„œ ์ ‘์†ํ•œ๋‹ค. $ sudo docker logs jenkins์ด๋•Œ jenkins์— ๋กœ๊ทธ๊ฐ€ ์ถœ๋ ฅ๋˜๊ณ , ์ด๋ฅผ ํ†ตํ•ด ์  ํ‚จ์Šค๋ฅผ ์ตœ์ดˆ๋กœ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰ํ•  ๋•Œ ํ•„์š”ํ•œ initial admin password๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.๋˜๋Š” ์ง์ ‘ ์  ํ‚จ์Šค ์ปจํ…Œ์ด๋„ˆ์— ์ ‘์†ํ•˜์—ฌ, ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.$ sudo docker exec -it jenkins /bin/bash$ cat /var/jenkins_home/secrets/initialAdminPassword install suggested plugins๋ฅผ ๋ˆ„๋ฅธ๋‹ค.ํ‰๊ท ์ ์œผ๋กœ 10๋ถ„์ด๋‚ด์— ์™„๋ฃŒ๋œ๋‹ค.์ดํ›„ admin ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•˜๊ธฐ ์œ„ํ•œ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ด์ค€๋‹ค.์›๊ฒฉ ์ฃผ์†Œ๋กœ Jenkins URL์ด ์„ค์ •๋œ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜..
1. Architecture์„ค๋ช…1 GitHub์— ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ฐœ์ƒ2 GitHub์— ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๊ฐ์ง€๋˜๋ฉด, ์„ค์ •๋œ GitHub Webhook์ด Jenkins์—๊ฒŒ HTTP POST ์š”์ฒญ3 Jenkins์—์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ ๊ฐ์ง€ํ•˜๊ณ  CI / CD ํŒŒ์ดํ”„๋ผ์ธ ์‹คํ–‰4  ๋นŒ๋“œ & ๋ฐฐํฌ5 ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•œ ํ›„, Docker ์ด๋ฏธ์ง€๋กœ ํŒจํ‚ค์ง•ํ•˜๊ณ  EC2 ์ธ์Šคํ„ด์Šค์— ๋ฐฐํฌํ•œ๋‹ค. ๋จผ์ € ๊ธฐ์กด์— ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์ด ๋นŒ๋“œ๊ฐ€ ์ž˜๋˜๋Š”์ง€ ๋กœ์ปฌ์—์„œ ํ™•์ธํ•œ๋‹ค. 2. EC2 ์„ธํŒ…EC2์—์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค. ์ดํ•ด์˜ ํŽธ์˜์„ฑ๊ณผ ์‚ฌ์šฉ ํ›„ ec2๋ฅผ ๋‚ด๋ฆด๊ฑฐ๊ธฐ์— ip๋ฅผ ๊ฐ€๋ฆฌ์ง€ ์•Š๊ณ  ์„ค๋ช…ํ•˜๊ฒ ๋‹ค.๋ณธ์ธ์€ Ubuntu ํ”„๋ฆฌํ‹ฐ์–ด๋กœ ๋งŒ๋“ค์—ˆ๋‹ค. ํƒ„๋ ฅ์  IP๋กœ ์ ‘์†์„ ์œ„ํ•œ IP๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.๋งŒ๋“  ec2์™€ ์—ฐ๊ฒฐํ•ด์ค€๋‹ค.ec2์ƒ์„ฑ์‹œ ์‚ฌ์šฉํ•œ .pe..
1. CI / CD ๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€ CI/CD๋ž€?CI: Continuous Integration ์ฆ‰, ์ง€์†์ ์ธ ํ†ตํ•ฉ์ด๋ผ๋Š” ์˜๋ฏธ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒˆ๋กœ์šด ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ •๊ธฐ์ ์œผ๋กœ ๋นŒ๋“œ ๋ฐ ํ…Œ์ŠคํŠธ ๋˜์–ด ๊ณต์œ  ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ํ†ตํ•ฉํžˆ๋Š” ๊ฒƒ์„ ์˜๋ฏธ๋ชฉํ‘œ๋ฒ„๊ทธ๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ์ฐพ์•„ ํ•ด๊ฒฐํ•˜๊ณ ์†Œํ”„ํŠธ์›จ์–ด์˜ ํ’ˆ์งˆ์„ ๊ฐœ์„ ํ•˜๊ณ ์ƒˆ๋กœ์šด ์—…๋ฐ์ดํŠธ์˜ ๊ฒ€์ฆ ๋ฐ ๋ฆด๋ฆฌ์ฆˆ์˜ ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ค๋Š” ๊ฒƒ์ •๋ฆฌํ•˜์ž๋ฉด CI๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•˜๋ฃจ์— ์—ฌ๋Ÿฌ ๋ฒˆ ์ฝ”๋“œ๋ฅผ ๊ณต์œ  ์ €์žฅ์†Œ์— ํ†ตํ•ฉํ•˜๋„๋ก ์š”๊ตฌํ•˜๋Š” ๊ฐœ๋ฐœ ๋ฐฉ์‹์ด๋ฉฐ, CI์˜ ๊ถ๊ทน์ ์ธ ๋ชฉํ‘œ๋Š” ๋” ์ข‹์€ ์ฝ”๋“œ๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์†Œ๊ทœ๋ชจ๋กœ ์ด๋ฃจ์–ด์ง€๋Š” ์žฆ์€ ๋ณ€๊ฒฝ์— ์ž๋™ํ™”๋ฅผ ์ ์šฉํ•˜๋ฉด ํŒ€์—์„œ ๋ฒ„๊ทธ๋ฅผ ๋”์šฑ ๋น ๋ฅด๊ฒŒ ์ฐพ๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ƒˆ๋กœ์šด ์—…๋ฐ์ดํŠธ๋ฅผ ๊ฒ€์ฆํ•˜๊ณ  ๋ฆด๋ฆฌ์Šคํ•˜๋Š” ๋ฐ ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. CD: Continuous..
๊ณ„๋ž€์†Œ๋…„
'๐Ÿณ์ธํ”„๋ผ/Jenkins' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก