[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
๋ฐ˜์‘ํ˜•