[DevOps] GitHub์ Jenkins ์ฐ๊ฒฐ
2022. 8. 31. 01:00ใSystem ์์ ์ค/DevOps
728x90
๋ฐ์ํ
๐ ๋ชฉ์ฐจ
โ [Synology NAS] ๋๋ง์ GitHub ๋ง๋ค๊ธฐ - Git Server์ Gitea ์ค์น
โ [Synology NAS] ๋๋ง์ Jenkins ๋ง๋ค๊ธฐ
โ[DevOps] GitHub์ Jenkins ์ฐ๊ฒฐ
โ [DevOps] Jenkins Build ๋ด์ฉ Slack ์ผ๋ก ์๋ฆผ ๋ฐ๊ธฐ
โ [DevOps] Jenkins Github Multi Branch Pipe Line ๊ตฌ์ฑ[DevOps] Jenkins Github Multi Branch Pipe Line ๊ตฌ์ฑ
๐ GitHub์ Jenkins ์ฐ๊ฒฐ
๐ฝ GitHub
๐ฆ AccessToken ๋ฐ๊ธ
์ต์ด GitHub์์ Settings -> Developer settings๋ฅผ ๋ค์ด๊ฐ ์ฃผ์ธ์.
๊ทธ๋ฐ๋ค Persoanl access tokens๋ก ๋ค์ด๊ฐ Generate new token์ ๋๋ฌ์ฃผ์ธ์.
์ ๋ด์ฉ์ ์ถ๊ฐํ์ฌ Key๋ฅผ ์์ฑํฉ๋๋ค.
๋ฐ์ํ
๐ฝ Jenkins
๐ฆ Github๊ณผ ์ฐ๋
์ต์ด Jenkins ๊ด๋ฆฌ์์ ์์คํ ์ค์ ์ผ๋ก ๋ค์ด๊ฐ ์ฃผ์ธ์.
์๋์ชฝ์ผ๋ก ์ด๋ํ์ฌ GitHub์์ Add GitHub Server๋ฅผ ๋๋ฌ GitHub Server๋ฅผ ์ ํํด ์ฃผ์ธ์.
Name์๋ ์ํ๋ ์๋ฌด ์ด๋ฆ์ ๋ฃ๊ณ , Add๋ฅผ ๋๋ฌ์ค๋๋ค.
Domain์ Global credentials (unrestricted)๋ฅผ ์ ํํ๊ณ , kind๋ฅผ ๋๋ฌ Secret text๋ฅผ ์ ํํด ์ฃผ์ธ์.
Secret ๋ถ๋ถ์ Github์์ ๋ฐ์ Key๊ฐ์ ์
๋ ฅํด ์ฃผ๊ณ , ID์๋ ์์ ์ Github ๊ณ์ ์ ์
๋ ฅํด ์ค๋๋ค.
728x90
Test Con... ๋ฒํผ์ ๋๋ฌ ์ ๋๋ก ์ฐ๊ฒฐ ๋๋์ง ํ์ธํฉ๋๋ค.
์์ ๊ฐ์ด ๋์จ๋ค๋ฉด ์ ์์ด์์.
๊ทธ๋ฐ ๋ค Add ๋ฒํผ์ ๋๋ฌ์ฃผ์ธ์.
Credentials๋ฅผ ๋๋ฌ๋ณด๋ฉด ์์์ ๋ง๋ ๊ฐ์ ๋ํ ์ด๋ฆ์ด ๋์ฌ๊ฑฐ์์. ๊ทธ๊ฑธ ์ ํํด ์ฃผ์ธ์.
๊ทธ๋ฐ ๋ค ๋งจ ์๋์ save ํน์ ์ ์ฅ์ ๋๋ฅด๊ณ ๋์ต๋๋ค.
๐ฆ ์๋ก์ด Item ์์ฑ
Main ํ๋ฉด์์ ์์ ๊ฐ์ด ์๋ก์ด Item์ผ๋ก ์ด๋ํ ๋ค item name์ ์ ์ด์ฃผ๊ณ , Freestyle project๋ฅผ ๋๋ฌ์ฃผ์ธ์.
๊ทธ๋ฐ ๋ค ์๋ OK ๋ฒํผ์ ๋๋ฌ์ค๋๋ค.
์์ ๊ฐ์ด Github ์ฃผ์๋ฅผ ์
๋ ฅํด ์ฃผ์ธ์.
์์ Error ๋ด์ฉ์ ๋ณด๋ฉด 2021๋
08์ 13์ผ ๋ถ๋ก Github์์ ID, Password ์ธ์ฆ ๋ฐฉ์์ ์ง์ํ์ง ์๋๋ค๋ ๋ด์ฉ์
๋๋ค.
๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฐพ์ ์งํํ๊ฒ ์ต๋๋ค.
์๋ ๋ฐฉ์์ผ๋ก ํด๋ ๊ฒฐ๊ตญ ํด๊ฒฐ๋์ง ์์ต๋๋ค.
์๋ ๋ฐฉ์์ ์ ๊ฐ ์๋ํด ๋ณธ ๊ฒ์ ๋จ๊ธฐ๊ธฐ ์ํด ๊ทธ๋๋ก ๋ก๋๋ค.
์์ ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ์์ ์ด ๊ณณ์ ์ ๋ฆฌ ๋์ด ์์ต๋๋ค.
====================================
๋จผ์ Jenkins Server์ ์ฃผ๋ํ๋์ ssh๋ก ์ ์ํ์์ด์.
ํ์ฌ Jenkins Service๋ jenkins ๊ณ์ ์ผ๋ก ๊ตฌ๋๋๊ณ ์๋ ๊ฒ์ ๋ณผ ์ ์์ด์.
jenkins Service๊ฐ jenkins ๊ณ์ ์ผ๋ก ๊ตฌ๋ ์ค์ธ ๊ฒ ํ์ธ ๋์๋ค๋ฉด jenkins ๊ณ์ ์ผ๋ก ์ ํํด์ค๋๋ค.
jenkins ๊ณ์ ์ผ๋ก ์ ์ํ์์ด์.
.ssh ๋ผ๋ Directory๋ฅผ ์์ฑํ๊ณ , ๊ทธ ์์ผ๋ก ์ด๋ํฉ๋๋ค.
์ด์ ssh Key๋ฅผ ๋ง๋ค์ด ๋ณผ๊ฒ์.
๋น๋ฐ๋ฒํธ์ ๊ฐ์ด ์
๋ ฅํ๋ผ๋ ๊ฒ๋ค์ ๋ชจ๋ ๋ฌด์ํ๊ณ , Enter๋ก ๋์ด๊ฐ๋๋ค.
์์ฑ์ด ๋์๋ค๋ฉด ls-al ๋ช
๋ น์ด๋ก ๊ณต๊ฐํค/๋น๋ฐํค๊ฐ ์ ์์ฑ๋์๋์ง ํ์ธํด๋ณผ๊ฒ์.
์ ์์ฑ์ด ๋์๋ค์!
๐ฝ Github
๐ฆ Jenkins์ ์ฐ๋
์ต์ด Jenkins์ ์ฐ๋ํ๊ณ ์ถ์ Repository๋ก ๋ค์ด๊ฐ๋๋ค.
์์ ๊ฐ์ด Add deply key๋ฅผ ๋๋ฌ์ฃผ์ธ์.
์์ ๊ฐ์ด ๊ณต๊ฐํค๋ฅผ ๋ณต์ฌํ์ฌ GitHub์ ์
๋ ฅํด ์ฃผ์์ด์.
add key๋ฅผ ๋๋ฌ์ฃผ์ธ์.
๐ฝ Jenkins
๐ฆ Github๊ณผ ์ฐ๋
๋ค์ Jenkins ์์ ์ ํด์ค๊ฒ์.
Manage Credentials๋ก ์ด๋ํฉ๋๋ค.
Global Credentials๋ฅผ ๋๋ฌ์ฃผ์ธ์.
Add Credentials๋ฅผ ๋๋ฌ์ฃผ์ธ์.
์ด๋ฒ์ jekins Server์ ์๋ ๊ฐ์ธํค๋ฅผ ์ฐพ์์ค์ผ ํด์.
์์ Key ๊ฐ์ ๋ชจ๋ ๋ณต์ฌํด ์ค๋๋ค.
Key์ ---Begin OPENSSH PRIVATE KEY--- ๋ฅผ ํฌํจํ์ฌ -----END OPENSSH PRIVATE KEY----- ๋ฅผ ๋ชจ๋ ๋ณต์ฌํ์ฌ ๋ฃ์ด์ค๋๋ค.
๐ก ์ฐธ๊ณ ์ฌํญ
โ Kind : ์ธ์ฆ ๋ฐฉ์ ์ ํ, ์ฌ๊ธฐ์ ๋น๋ฐํค ๋ฐฉ์์ ์ด์ฉํ์ฌ Github๊ณผ ๊ฐ์ธํค/๊ณต๊ฐํค ๋ฐฉ์์ผ๋ก ์ธ์ฆ
โ Username : ๊ฐ Jenkins Job์์ ๋ณด์ฌ์ค ์ธ์ฆํค ์ด๋ฆ (์์ ๋กญ๊ฒ ์ฌ์ฉ)
โPrivate Key : ssh ๋น๋ฐํค ๊ฐ ์ ๋ ฅ
๐ฝ Test ํด๋ณด๊ธฐ
๐ฆ ์ฐ๋ Test
Jenkins Server ์๋ ๋ฐ๋์ git์ด ์ค์น ๋์ด ์์ด์ผ ํฉ๋๋ค.
sudo apt-get install git # Debian ๊ณ์ด
# ----------------------------------- #
sudu yum install git # Red Hat ๊ณ์ด
ํ์ง๋ง ์ ๋ฐฉ๋ฒ์ผ๋ก ์งํํด๋ ๋ฌธ์ ๋ ๋์ผํ์ด์.
====================================
์ด์ ๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ด ๊ณณ์ ์ ๋ฆฌํด ๋์์ด์. ๊ฒฐ๊ตญ ์์ ๊ฐ์ด ๋ณต์กํ ๊ณผ์ ์ด ํ์๊ฐ ์์์ด์.
๋น๋ ํ๊ฒฝ์์ ์ฃผ๋ํ๋์ Java Spring Gradle๋ก CI/CD๋ฅผ ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์์ ๊ฐ์ด ์ ํ์ ํด ์ฃผ์์ด์.
์ด์ Build๋ฅผ ์งํํด ๋ณผ๊ฒ์.
์ง๊ธ ๋น๋๋ฅผ ๋๋ฌ์ฃผ์ธ์.
์๊ฐ๋๊ฐ ์ ๋ง๋๊ฒ์ ๋์ด๊ฐ๊ณ , ์ด๋ ๊ฒ Build๋ ๋ ์คํจํ๊ณ ๋ง์์ด์.
์์ ๋ฌธ์ ๋ฅผ ๊ฒ์ํด ๋ณด๋ Gradle์ด Jenkins Server์ ์ค์น๋์ง ์์์ ๋ฐ์ํ๋ ๋ฌธ์ ๊ฐ์์ด์.
์ด ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ด ๊ณณ์ ๋จ๊ฒจ ๋์์ด์.
์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ๋์ ์์์ ๊ฐ์ด ๋น๋๋ฅผ ์๋ฃ ํ์์ต๋๋ค!
728x90
๋ฐ์ํ