[Linux] nohub์ผ๋ก ์๋๋ฐฐํฌ(CI/CD) ๊ฐ์ ํ๊ธฐ(ํ๋ด๋ด๊ธฐ)
ํ์ฌ์์ ์๋ก์ด ํ๊ฒฝ์ ๊ตฌ์ถํ๊ฒ๋์๋๋ฐ CI/CD์ ๋ฌธ์ ์ ์ด ์์๋ค.
Jenkins๋ฅผ ์ด์ฉํด ๋น๋ ๋ฐ ๋ฐฐํฌ๋ฅผ ์งํํ๊ฒ ๊ตฌ์ถ๋์๋๋ฐ ๋ด๋ถ ๋ณด์์ ์ธ ๋ฌธ์ ๋ก ์ธํด์ jenkins์์ ์น์๋ฒ์ ssh ์ฐ๊ฒฐ ํ ์ฌ์ฉํ ์ ์๋ execute command์ ์ ์ฝ์ด ๊ฑธ๋ ธ๋ค. ๋น๋๋ tar ํ์ผ์ ์น์๋ฒ(linux ์๋ฒ)์ ์ ๋ฌ๋ง ๊ฐ๋ฅํ๊ณ ์ฐจํ ์ง์ ์น์๋ฒ์ ์๊ฒฉ ์ ์ํด์ ์์ค ํ์ผ์ด ํ๋ ค์ผํ ํ๊ฒ ์์น์์ ์๋์ผ๋ก ํ์ด์ค์ผํ๋ค.
์๋๋ฐฐํฌ๋ฅผ ์งํํ๊ธฐ ์ํด์๋ jenkins ์์ฒด์ ๊ธฐ๋ฅ์ ์ด์ฉํ ์ ์์ผ๋ ์น์๋ฒ(linux)์ ๊ธฐ๋ฅ์ ๋ง๋ค๊ธฐ๋ก ํ๋ค.
1. ํ๋๊ทธ(flag) ํ์ผ ๋ง๋ค๊ธฐ
๋น๋๋ ์์ค ํ์ผ์ด ์ธ์ ์์ค ํ์ผ์ ์ ๋ณด๋ฅผ ๋ด์ ํ ์คํธ ํ์ผ์ ํ๋ ์์ฑํ์ฌ ํจ๊ป ์น์๋ฒ๋ก ์ ๋ฌํ๋ค.
๋ด ๊ฒฝ์ฐ์๋ ๋น๋๊ฐ ์ด๋ค์ง๋ work ์ฌ๋ฌ๊ฐ ์กด์ฌํด์ ์ด๋ฅผ ๊ตฌ๋ถํ ์ ์๋ {JOB_NAME}์ ํ๋๊ทธ ํ์ผ์ ์์ฑํด์ ์ ๋ฌํ๋ค.
์์
$ echo ${JOB_NAME} > deploy_flag.txt
2. ๋ฐฐํฌ ์ ๋ง๋ค๊ธฐ
๋ฐฐํฌ ์์ ๋ด์ฉ์ ํน์ ์์น์ ํ๋๊ทธ ํ์ผ์ด ์์ ๊ฒฝ์ฐ, ํ๋๊ทธ ํ์ผ์ ๋ด์ฉ์ ์ฝ์ด์ job์ ๋ง๋ ์์น์ ์์ค๋ฅผ ๋ฐฐํฌํด์ฃผ๊ณ ์๋ฃ๋๋ฉด ํ๋๊ทธ ํ์ผ์ ์ญ์ ํ๋ค. ํ๋๊ทธ ํ์ผ์ 2์ด์ ํ๋ฒ์ฉ ํ์ธํ๋ค.
3. ์์ณ(watcher) ๋ง๋ค๊ธฐ
1๋ฒ์์ ์์ฑํ ํ๋๊ทธ ํ์ผ์ด ์์ฑ๋์์ ๋, 2๋ฒ์์ ๋ง๋ ๋ฐฐํฌ ์์ด ์ํ๋ ์ ์๊ฒ ์์ณ(watcher)๋ฅผ ๋ฆฌ๋ ์ค nohub์ ์ด์ฉํด์ ๋ง๋ค์ ์๋ค. nohub์ ์น์๋ฒ์ ์ ์ํ ์ ์ ์ ์ธ์ ์ด ์ข ๋ฃ๋์ด๋ ํ๋ก์ธ์ค๊ฐ ์ํ๋ ์ ์๊ฒํด์ฃผ๋ ์ ํธ๋ฆฌํฐ์ด๋ค.
๋ฐฑ๊ทธ๋ผ์ด๋์์ ํ๋ก์ธ์ค ์ํํ๊ธฐ
$ nohup command [arguments] &
์ ๋ช ๋ น์ด๋ฅผ ํตํด์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ํ๋ก์ธ์ค๋ฅผ ์ํํ ์ ์๋ค. '&'๋ฅผ ์ ์ธํ๋ฉด ์ธ์ ์ด ์ข ๋ฃ๋์์ ๋, ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๊ฒ๋ํ ์ ์๋ค.
๋ฐฐํฌ ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํํ๊ธฐ
$ nohub sh /deploy.sh &
2์์ ์์ฑํ ๋ฐฐํฌ ์์ด root ๊ฒฝ๋ก(/)์ deploy.sh์ด๋ผ๋ ์ด๋ฆ์ ์์ผ ๊ฒฝ์ฐ, ์์ ๊ฐ์ด ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์คํํ ์ ์๋ค.
nohub์ ์คํํ๋ฉด ์ถ๊ฐ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ ์ ์๊ฒ๋ ๋์ค๋๋ฐ ์๋ฌดํค๋ ๋๋ฅด๊ฑฐ๋ ctl + c๋ก ์ข ๋ฃํ๋ฉด ๋๋ค.
์ข ๋ฃํ์ฌ๋ ๋ฐฑ๊ทธ๋ผ์ด๋์์ deploy.sh์ ๊ณ์ ์คํ๋๋ค.
nohub์ ์คํํ ์์น์ nohub.out ํ์ผ์ด ์์ฑ๋์๋ค๋ฉด, ์ ์์ ์ผ๋ก ์ํ๋ ๊ฒ์ด๋ค. ํด๋น ํ์ผ์ nohub์ผ๋ก ์คํํ ํ๋ก์ธ์ค์ ๋ก๊ทธํ์ผ๋ก deploy.sh์ echo ๋ฑ์ผ๋ก ํน์ ์ํฉ์์ ์ถ๋ ฅ๋ช ๋ น์ด๋ฅผ ์ํํ๋ค๋ฉด, ๋ก๊ทธ๋ฅผ ์์์ ํ์ธํ ์ ์๋ค.
4. nohub ํ๋ก์ธ์ค ์ข ๋ฃํ๊ธฐ
$ ps -ef | grep deploy
deploy.sh์ ์ํํ๊ณ ์๋ ํ๋ก์ธ์ค์ id๋ฅผ ํ์ธํ๋ค.
$ kill -9 [processId]
# ์์: kill -9 5876
ํ์ธํ ํ๋ก์ธ์ค id๋ฅผ ๊ฐ์ ์ข ๋ฃ(9 ์ต์ ) ์ํจ๋ค.
ํ์๋ง์ด๋ ๋ณด์์ ์ฑ ์ด ๊ฐ๋ ฅํ ํ๊ฒฝ์์ ๋ถ์กฑํ CI/CD ํ๊ฒฝ์ ์์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๊ฐ์ ํ ์ ์์๋ค.