DevOps/Github

Github Actions(๊นƒํ—ˆ๋ธŒ ์•ก์…˜์ฆˆ)๋กœ ์„œ๋ฒ„ ์ž๋™ ๋ฐฐํฌ ํ•˜๊ธฐ

567Rabbit 2024. 5. 20. 12:28

CI/CD

- Continuous Integration (CI) - ex) github์—์„œ ์ง์ ‘ pullํ•˜์—ฌ์„œ ์ˆ˜์ •์‚ฌํ•ญ์ด ์™„๋ฃŒ๋˜๋ฉด ์ˆ˜๋™์œผ๋กœ ์„œ๋ฒ„์— ์—ฐ๋™

- Continuous Delivery/Deployment (CD) ex) github actions๋กœ ์ž๋™์œผ๋กœ ์ˆ˜์ •์‚ฌํ•ญ์„ ์„œ๋ฒ„์— ๋ฐ˜์˜ํ•œ๋‹ค.

 

 

์• ์ž์ผ ๋ฐฉ์‹

์ผ๋‹จ ์•„์ด๋””์–ด ๊ฐœ๋ฐœ๋‹จ๊ณ„๊นŒ์ง€์˜ ์‹œ๊ฐ„์€ ์ถ•์†Œ์‹œํ‚ค๊ณ , ๋ฐฐํฌํ•œ ํ›„์— ์ˆ˜์ •, ๊ฐœ์„ ์‚ฌํ•ญ์„ ๋ฐ”๋กœ๋ฐ”๋กœ ๋ฐ˜์˜ํ•˜๋Š” ๊ฒƒ์œผ๋กœ,

CD๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์• ์ž์ผ ๋ฐฉ์‹์„ ๋”์šฑ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ถ”๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๊นƒํ—ˆ๋ธŒ ์•ก์…˜์ฆˆํ•  repository๋ฅผ ์„ ํƒํ•˜๊ณ ,

 

Settings๋ฅผ ํด๋ฆญ

 

 

 

์™ผ์ชฝ ๋ฉ”๋‰ด์ฐฝ์—์„œ Secrets and variables -> Actions๋กœ ์ด๋™ํ•œ๋‹ค.

 

 

 

 

New repository secret ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค.

 

 

 

 

 

 

(1) Name์„ HOST๋กœ ์ž…๋ ฅ,

 

 

 

 

Secret ๋ถ€๋ถ„์—๋Š” IPv4 ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ•ด์„œ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

 

 

 

 

 

EC2 ์„œ๋ฒ„๋ฅผ ์—ฌ๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜๋ฅผ ์ฐธ์กฐ

 

https://codebunny99.tistory.com/58

 

Streamlit) EC2๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์›นํŽ˜์ด์ง€ ์‹คํ–‰ํ•˜๊ธฐ, Potty(ํ‘ธํ‹ฐ) ์šฉ์–ด ์ •๋ฆฌ

์ผ๋ฐ˜ ์›นํŽ˜์ด์ง€ ์ƒ์„ฑ์€https://hope91.tistory.com/20?category=1197140 [AWS] AWS(์•„๋งˆ์กด ์„œ๋ฒ„)์— ์•ฑ ๋ฐฐํฌํ•˜๊ธฐ(1) / EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•AWS์— ์•ฑ์„ ๋ฐฐํฌํ•ด๋ณด์žAWS์— ์•ฑ์„ ๋ฐฐํฌํ•˜๋ ค๋ฉด ๋ช‡๊ฐ€์ง€ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ์•ผ

codebunny99.tistory.com

 

 

 

 

 

 

 

(2) Name์„ SSH_PRIVATE_KEY๋กœ ์ž…๋ ฅ,

 

 

 

Secret ๋ถ€๋ถ„์—๋Š” PuTTy(๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์œ„์˜ ๊ธ€ Streamlit) EC2๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์›นํŽ˜์ด์ง€ ์‹คํ–‰ํ•˜๊ธฐ, Potty(ํ‘ธํ‹ฐ) ์šฉ์–ด ์ •๋ฆฌ ์ฐธ๊ณ )

๋ฅผ ์„ค์ •ํ•˜๋ฉด key.ppk ํ•˜๋‚˜๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋˜๋Š”๋ฐ, key.ppk -> key.pem์œผ๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•œ๋‹ค.

 

 

 

 

PuTTy๋ฅผ ์„ค์น˜ํ•˜๋ฉด ์ž๋™์œผ๋กœ PuTTYgen๋„ ํ•จ๊ป˜ ์„ค์น˜๋˜๋Š”๋ฐ, PuTTYgen์„ ํ†ตํ•ด .ppk๋ฅผ .pem์œผ๋กœ ๋ณ€ํ™˜ ๊ฐ€๋Šฅํ•˜๋‹ค. 

 

 

 

 

 

Load๋ฅผ ๋ˆŒ๋Ÿฌ์„œ key.ppk๋ฅผ ์„ ํƒํ•˜๊ณ ,

 

 

 

 

Conversions์—์„œ Export OpenSSH key๋ฅผ ์„ ํƒํ•˜๊ณ ,

 

 

 

 

 

์˜ˆ(Y)๋ฅผ ๋ˆ„๋ฅด๊ณ 

 

 

 

 

 

 

.pem์œผ๋กœ ํ•˜์—ฌ ์ €์žฅํ•œ๋‹ค

 

 

 

 

 

 

 

๋‹ค์‹œ Actions๋กœ ๋Œ์•„์™€์„œ, Secret ๋ถ€๋ถ„์— key.pem ํŒŒ์ผ์„ ๋Œ์–ด๋‹ค๊ฐ€ ๋†“์œผ๋ฉด

 

 

 

 

 

 

์ƒˆ๋กœ์šด ์›นํŽ˜์ด์ง€์— ์ฝ”๋“œ๊ฐ€ ์—ด๋ฆฌ๋Š”๋ฐ, ์ปจํŠธ๋กค+a ํ•˜์—ฌ ๋ชจ๋‘ ๋ณต์‚ฌํ•˜์—ฌ Secret๋ถ€๋ถ„์— ๋ถ™์—ฌ๋„ฃ์œผ๋ฉด ๋œ๋‹ค.

 

 

 

 

 

 

 

 

(3) Name์„ USER๋กœ ์ž…๋ ฅ,

 

 

putty์—์„œ ec2-user์„ ์น˜๊ณ  ๋กœ๊ทธ์ธํ•˜๋ฏ€๋กœ, USER์˜ Secret์€ ec2-user๋ผ๊ณ  ์ž‘์„ฑํ•ด์ค€๋‹ค.

 

 

 

 

 

 

(4) Actions New workflow ๋งŒ๋“ค๊ธฐ

 

 

Actions -> New workflow ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.

 

 

 

 

 

set up a workflow yourself ๋ฅผ ํด๋ฆญํ•œ๋‹ค.

 

 

 

 

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•œ๋‹ค.

 

** ์ค‘์š” **

Script์—๋Š” ์ž์‹ ์˜ GithubํŒŒ์ผ์ด ์žˆ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ฒฝ๋กœ๋กœ ์ง€์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

๋‚˜๋Š” Github์— commitํ•œ ๋‚ด์šฉ์ด ๋‚ด ๋ฌธ์„œ/Github/project310/ ํด๋”์— ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฒฝ๋กœ๋ฅผ ์ด ๊ณณ์œผ๋กœ ์ง€์ •ํ•˜์˜€๋‹ค.

 

 

 

 

์ฝ”๋“œ๋Š” ์•„๋ž˜ txt์—์„œ ๋‹ค์šด๋ฐ›์•„์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

github_actions_workflow.txt
0.00MB

 

 

 

 

 

์ž๋™์œผ๋กœ ๋ฐ˜์˜๋˜์—ˆ๋Š”์ง€ ํ˜„ํ™ฉ์€ Github Actions ๋ฉ”์ธํ™”๋ฉด์—์„œ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค.

 

 

 

 

์ด ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด

๊ธฐ์กด์—๋Š” PuTTy์—์„œ git pullํ•˜์—ฌ ์ƒˆ๋กœ ์„œ๋ฒ„๋ฅผ ๊ตฌ๋™ํ•˜๋Š” ์ž‘์—…์„ ๊ฑฐ์ณ์•ผํ–ˆ์ง€๋งŒ,

 

๊ทธ ๊ณผ์ •์„ ๊ฑฐ์น˜์ง€ ์•Š๊ณ ๋„ Github Desktop์—์„œ git pull ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„

๊ตฌ๋™์ค‘์ธ ์„œ๋ฒ„์˜ ์ˆ˜์ •์‚ฌํ•ญ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์„œ๋ฒ„์— ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.