์ค๋์ Jenkins (์ ํจ์ค)๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋ถ๋ชํ ์๋ฌ ์ํฉ๋ค๊ณผ ๋ฐฐ์ด์ ์ ์ ๋ฆฌ ํด๋ณด๊ฒ ์ต๋๋ค.
์ด์ ๋ธ๋ก๊ทธ๋ฅผ ๋จผ์ ์ฝ๊ณ ๋ฐ๋ผ์ค์๋ฉด ์ข์ต๋๋ค.
ํผ๋ธ๋ฆญ IPv4:[์ค์ ํ ํฌํธ or ๊ธฐ๋ณธ ํฌํธ 8080]์ผ๋ก ์ ์์ ํฉ๋๋ค.
(์ค์ ํ ํฌํธ = Jenkins ์ค์น ํ ๋ ์์ฑํ ํฌํธ ๋ช
๋ น์ด)
(ํผ๋ธ๋ฆญ IPv4๋ ํ๋ ฅ์ IP๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค)
์์ : http://3.39.162.190:8080/ ์ฃผ์๋ก ์ ์ ํฉ๋๋ค.
์ ์ํ๊ฒ ๋๋ฉด ์๋์ ๊ฐ์ ์น ํ์ด์ง๊ฐ ๋์ค๊ฒ ๋ฉ๋๋ค.
์ฌ๊ธฐ์ Git Bash ์์ Jenkins๋ฅผ ์คํ (docker run ~~ jenkins) ํ๋ค๋ฉด ๋๋คํ ๋น๋ฐ ๋ฒํธ๋ฅผ ์ฝ์์์ ์๋ ค์ฃผ๊ฒ ๋ฉ๋๋ค.
๋น๋ฐ๋ฒํธ๋ฅผ ๋ชจ๋ฅธ๋ค๋ฉด,
cat /var/lib/jenkins/secrets/initialAdminPassword ๋ช
๋ น์ด๋ฅผ ํตํด ์ด๊ธฐ ๋น๋ฐ๋ฒํธ๋ฅผ ํ์ธ ํ ์ ์์ต๋๋ค.
(์์ 4cd995a3e7264511ac87a4f61341f1fc)
๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํ Jenkins์ ํ๋ก๊ทธ์ธ์ ์ค์น ํฉ๋๋ค.
ํ๋ก๊ทธ์ธ ์ค์นํ Jenkins์์ ์ฌ์ฉํ ๊ณ์ ์ ๋ง๋ค๊ฒ ๋๋ฉด ์ฑ๊ณต์ ์ผ๋ก Jenkins๋ฅผ ์ฌ์ฉํ ์ค๋น๊ฐ ๋ค ๋ ๊ฒ ์ ๋๋ค.
Credential (ํฌ๋ฆฌ๋ด์ ) ์ด๋ ?
Jenkins ๋น๋์ ๋ฏธ๋ฆฌ ์ฌ์ฉํ ์ ์ต์ ์ ์ค์ ํ ์ ์๋ ๊ฐ๋ ์ ๋๋ค.
Jenkins์ ๋ก๊ทธ์ธ ํ์ฌ ์ ์ ํ Jenkins ๊ด๋ฆฌ ํญ์ ํด๋ฆญ ํฉ๋๋ค.
Credential ํญ์ ํด๋ฆญํฉ๋๋ค.
ํฌ๋ฆฌ๋ด์
์ต์
์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
(์ ๋ ํ๋ก์ ํธ์์ ์ฌ์ฉํ secret-yml ํ์ผ์ ์ถ๊ฐ ํ์ต๋๋ค.)
application.secret-yml์ ์ค์ ํ๋ ค๋ฉด ์๋์ ๊ฐ์ด
Kind : Secret File
scope : ๊ธฐ๋ณธ ์ค์
file : application.secret-yml ํ์ผ์ ์ฐพ์์ ์ ์ฉ
Id : ์ด๋ถ๋ถ์ด ๊ฐ์ฅ ์ค์ํ๋ค, ์ถํ ํ์ดํ ๋ผ์ธ์์ ์์ฑํ ์ด๋ฆ์ ๋ถ์ฌ ํ๋ ๊ฒ์ด๊ณ ,
์ด๋ฆ์๋ - (ํ์ดํ) ์ด ๋ค์ด๊ฐ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๊ณ ๊ผญ _ (์ธ๋๋ฐ)๋ฅผ ํฌํจํด์ ์์ฑํด์ผ ๋๋ค. (๋ฌผ๋ก ํ์ดํ, ์ธ๋๋ฐ ๋๋ค ์์ฑ ์ํ๊ณ ์ด๋ฆ์ ์์ฑํด๋ ๋จ)
์๋ก์ด Item์ ํด๋ฆญํ์ฌ Item์ ๋ง๋ค์ด ์ค๋ค.
(Jenkins๋ฅผ ํ๋ฉด์ ๋๋์ ์ผ๋ก Item์ ํ๋์ ๋
๋ฆฝ๋ ๋จ๊ณ? ์ฑํฐ? ์ธ ๊ฒ ๊ฐ๋ค)
์๋ก์ด Item์ ์ด๋ฆ๊ณผ PipeLine์ ์ ํํ์ฌ ์์ฑ ํฉ๋๋ค.
์์ฑํ์ฌ ๋ง๋ Item์ ํด๋ฆญํ์ฌ, ๊ตฌ์ฑ์ ๋๋ฅด๊ฒ ๋๋ฉด ํ์ดํ ๋ผ์ธ์ ์์ฑ ํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ ํ์ดํ ๋ผ์ธ ์ด๋ ?
์์ค ์ฝ๋์ ๋ณ๊ฒฝ์ ๊ฐ์งํ๊ณ , ๊ทธ์ ๋ฐ๋ผ ๋น๋, ํ ์คํธ, ๋ฐฐํฌ ๋ฑ์ ์์ ์ ์๋์ผ๋ก ํด์ฃผ๋ ์ญํ ์ ํจ
(Stage, Step) ๋จ๊ณ๊ฐ ์กด์ฌ
Pipeline ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์ ์์ผ๋ฉฐ, Groovy ์ธ์ด ๋ผ๊ณ ํฉ๋๋ค.
(์ด ๋ถ๋ถ์ ๋ํด์ ์ ์์ฑํ์ฌ ์ ๋ฆฌํด์ค ๋ธ๋ก๊ทธ๊ฐ ๋ง์ ์ฐธ๊ณ ํ๋ฉด ์ข์ต๋๋ค.)
์๊น ํฌ๋ ๋์
์์ ์์ฑํ Id ๊ฐ์ด variable ์ต์
์ผ๋ก ๋ฐ์ธ๋ฉ ๋๊ฒ ๋ฉ๋๋ค.
stage('secret.yml download') {
steps {
withCredentials([file(credentialsId: 'jw_secret', variable: 'jw_secret')]) {
script {
sh 'cp -f $jw_secret ./src/main/'
}
}
}
}
Jenkins๋ฅผ ์ฌ์ฉํ๋ฉด์ Pipeline์ ์คํฌ๋ฆฝํธ ์์ฑ๋ฒ๊ณผ ๊ฐ๋ ์ ๋ํด ์์ ์๋ ํ๋ฃจ ์๋ค.