๋ก์ปฌ ์๋ฒ๊ฐ ์๋ ํ ์คํธ ์๋ฒ์์ ์ ํจ์ค๋ฅผ ์ด์ฉํ์ฌ CI/CD๋ฅผ ํด๋ณด๊ฒ ์ต๋๋ค.
์๋ฒ๋ CentOS7 ๊ธฐ์ค์ ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ์์๋ก ์งํํฉ๋๋ค.
- KTCloud๋ฅผ ์ด์ฉํ์ฌ ์๋ฒ ๊ตฌ์ถ(์๋ต)
- ํ ์คํธ ์๋ฒ ๋ด ํฐ์บฃ(port80), JDK(1.8.x) ์ค์น
- ํ ์คํธ ์ ํจ์ค ์๋ฒ ๊ตฌ์ถ
- ํ ์คํธ ์๋ฒ ๋ด ์ ํจ์ค๋ฅผ ํตํด ๋น๋์ ๊ณผ ์๋๋ฐฐํฌ ์งํ
[STEP1] ํ ์คํธ ์๋ฒ ๋ด ํฐ์บฃ(port80), JDK(1.8.x) ์ค์น
war ํ์ผ์ ์๋ ๋ฐฐํฌํ๊ธฐ ์ํด์ ํฐ์บฃ ์๋ฒ๊ฐ ์คํ๋๊ณ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ํจ์ค๋ฅผ ์ค์นํ๊ธฐ ์์ ํฐ์บฃ๊ณผ JDK๋ฅผ ์ค์นํ๊ฒ ์ต๋๋ค. KT Cloud๋ก CentOS7 ํ ์คํธ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ณ , ์๋ฒ ๋ด์ ์ฐ์ ์๋ฐ(port80)์ JDK๋ฅผ ์ค์นํด์ฃผ์์ต๋๋ค. ํฐ์บฃ๊ณผ JDK ์ค์น ๋ฐฉ๋ฒ์ ์ด ๊ธ์์ ๋ค๋ฃจ์ง ์๊ฒ ์ต๋๋ค. ๊ตฌ๊ธ๋ง ํ์๋ฉด ์ฝ๊ฒ ์ฐพ์ผ์ค ์ ์์ผ์ค ๊ฒ๋๋ค.
ํฐ์บฃ๊ณผ JDK๊ฐ ๋ฌธ์ ์์ด ์ ์ค์น๋์๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค. ์ด์ ์ ํจ์ค๋ฅผ ์ค์นํด์ฃผ๊ฒ ์ต๋๋ค.
[STEP2] ํ ์คํธ ์๋ฒ ๋ด ์ ํจ์ค ์ค์น
์๋ฒ ๋ด์ ์ ํจ์ค ์ค์นํ๋ ๋ฐฉ๋ฒ์ ์๋ ๊ธ์ ์ฐธ๊ณ ํ์๊ธธ ๋ฐ๋๋๋ค.
[STEP3] ์ ํจ์ค ์ค์ ํ๊ธฐ
์ ํจ์ค๊ฐ ์ ์ค์น๋์๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค.
http://์๋ฒip:9100 ๋ก ์ ์ํฉ๋๋ค. ๊ทธ๋ผ ์๋์ ๊ฐ์ ํ๋ฉด์ด ๋์ต๋๋ค.
๋์ค์ ์ถ๊ฐ์ ์ผ๋ก ํ๋ฌ๊ทธ์ธ์ ์ค์นํ ์ ์์ผ๋ฏ๋ก ์ฐ์ ์ฌ๊ธฐ์ Install suggested plugins๋ฅผ ์ ํํด์ค๋๋ค.
๊ทธ๋ผ ๊ธฐ๋ณธ ํ๋ฌ๊ทธ์ธ๋ค์ด ์ค์น๊ฐ ๋ฉ๋๋ค.
๊ณ์ ์ ์์ฑํด์ค๋๋ค. ์ด ๊ณ์ ์ด ๊ณง Root ๊ณ์ ์ด๋ฏ๋ก ์ ์คํ๊ฒ ์์ฑํ์๊ธธ ๋ฐ๋๋๋ค.
์ ํจ์ค URL์ ์ ์ด์ค๋๋ค. ์ ๋ http://์๋ฒIP:9100์ผ๋ก ๋ฃ์ด์ฃผ์์ต๋๋ค.
Global Tool Configuration์ ๋ค์ด๊ฐ์ ์๋์ ๊ฐ์ด ํด์ค๋๋ค.
install automatically๋ก ์ธํด ๋ฉ์ด๋ธ์ด ์์์ ์ค์น๊ฐ ๋ฉ๋๋ค. ์๋์ผ๋ก ํด๋์ผ๋ฉด ์ถํ ๋น๋ ๊ตฌ์ฑ์ ํ ๋ maven์ ์๋์ผ๋ก ์ค์นํด์ค๋๋ค.
ํ๋ฌ๊ทธ์ธ ๊ด๋ฆฌ๋ฅผ ๋๋ฌ์ค๋๋ค.
Maven Intergation ํ๋ฌ๊ทธ์ธ์ ํด๋ฆญํ์ฌ ์ค์น ํ ์ฌ์์์ ํด์ค๋๋ค.
ํฐ์บฃ ์๋ฒ ๋ฐฐํฌ๋ฅผ ์ํ ํ๋ฌ๊ทธ์ธ์ ์ค์นํฉ๋๋ค.
์ ํจ์ค๊ฐ ๋น๋ํ ๊ฒฐ๊ณผ๋ฌผ(warํ์ผ)์ ํฐ์บฃ์๊ฒ ๋ฐฐํฌํ๋ ค๋ฉด Deploy to container Plugin ํ๋ฌ๊ทธ์ธ์ด ํ์ํฉ๋๋ค.
jenkins ๊ด๋ฆฌ - ํ๋ฌ๊ทธ์ธ ๊ด๋ฆฌ ์์ ์ค์น ๊ฐ๋ฅ ํญ์์ deploy to ontainer๋ฅผ ๊ฒ์ํด์ ์ค์นํฉ๋๋ค.
[STEP4] ํฐ์บฃ ๋งค๋์ ์ ์ ๊ทผ
์ ํจ์ค์์ ์๋๋ฐฐํฌ๋ฅผ ํ๊ธฐ ์ํด์ ํฐ์บฃ์๋ฒ ๋งค๋์ ์ ์ ๊ทผํด์ผํฉ๋๋ค. ๋ฐ๋ผ์ ๋ช๊ฐ์ง ์์ ์ ํด์ฃผ๊ฒ ์ต๋๋ค.
ํฐ์บฃ์๋ฒ tomcat-users.xml์ ์๋์ ๊ฐ์ด ์์ ํด์ค๋๋ค. <user> ๋ถ๋ถ์ username๊ณผ password๋ ๋ค์ ์ฌ์ฉ๋ฉ๋๋ค.
<!-- ์ ํจ์ค ํฐ์บฃ์๋ฒ ๋น๋๋ฅผ ์ํด ์ฌ์ฉ์๊ณ์ ์ถ๊ฐ-->
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>
/var/lib/tomcat-feadmin/apache-tomcat-8.5.69/webapps/host-manager/META-INF ์ผ๋ก ์ด๋ํ context.xml์ฝ๋๋ค.
CookieProcessor์ Valve ๋ถ๋ถ์ ์ฃผ์์ฒ๋ฆฌ ํด์ค๋๋ค.
/var/lib/tomcat-feadmin/apache-tomcat-8.5.69/webapps/manager/META-INF ์ผ๋ก ์ด๋ํ context.xml์ฝ๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ์ฃผ์์ฒ๋ฆฌ ํด์ค๋๋ค.
ip์ฃผ์:ํฐ์บฃํฌํธ/manager/html ๋ก ์ด๋ํ์ ๋ ์๋์ ๊ฐ์ ํ๋ฉด์ด ๋จ๋ฉด ๋ฉ๋๋ค.
ํฐ์บฃ์๋ฒ๋ฅผ ์ฌ์์ํด์ค๋๋ค.
[STEP5] Item ๋ง๋ค๊ธฐ
์๋ก์ด Item์ ๋ง๋ค์ด์ค๋๋ค.
๋ฉ์ด๋ธ ํ๋ก์ ํธ๋ฅผ ์์ฑํด์ค๋๋ค.
Git์ด ์๋ ์๋ธ๋ฒ์ ์ผ๋ก ํ ๊ฒ์ด๊ธฐ์ Subversion์ ๋๋ฌ์ค๋๋ค.
Username์ SVN ๊ณ์ ์์ด๋๋ฅผ ๋ฃ์ด์ฃผ๊ณ Password์ SVN ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ฃ์ด์ค๋๋ค.
Root POM์ ์์ฑํ์ฌ clean install์ ์์ฑํด์ค๋๋ค.
ํน์, pom.xml์ด SVN ๊ฒฝ๋ก(root ๊ฒฝ๋ก) ๋ฐ๋ก ์๋์ ์์ง ์๊ณ ํ๋ก์ ํธ ํด๋ ์์ ์์นํ ๊ฒฝ์ฐ๋ ํด๋ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํด์ค์ผ ํฉ๋๋ค.
๋น๋ ํ ์กฐ์น ์์ Deploy war/ear to a container๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋น๋ success ํ ์์ฑ๋๋ war ํ์ผ์ ์์น๋ฅผ WAR/EAR files์ ๋ฃ์ด์ฃผ๊ณ Tomcat 7.x ๊ด๋ จ ๋ถ๋ถ์ Credentials์๋ tomcat-users.xml์์ ์์ฑํ username ์ ๋ณด๋ฅผ ๋ฃ์ด์ค๋๋ค.
์ด๋ก์จ ์ ํจ์ค ์ค์ ์ ๋์ ๋๋ค.
๊ทธ๋ผ ๋ค์ ์ ํจ์ค ํ๋ฉด์ผ๋ก ๋์์ต๋๋ค.
[FINAL STEP] CI/CD
item์ค ํ๋๋ฅผ ๋๋ฌ์ค๋๋ค.
๋น๋ ๊ตฌ์ฑ์ ํ๋ฉด ์ ํจ์ค์ด ์์์ CI/CD๋ฅผ ์ํํฉ๋๋ค.
๊ทธ๋ผ Build History์์ ๋น๋ ๋ด์ฉ์ ํ์ธํ์ค ์ ์์ต๋๋ค. ์ฒดํฌ๋ฅผ ๋๋ฌ์ค๋๋ค.
Console Output์ ๋๋ฌ์ค๋๋ค.
BUILD SUCCESS๋ ์ด๋ฆ๋๋ก ๋น๋ ๊ฒฐ๊ณผ์ด๊ณ Finished : SUCCESS๋ ๋ฐฐํฌ ๊ด๋ จํ ๊ฒฐ๊ณผ์ ๋๋ค. ๋ ๋ค SUCCESS์ด๋ฉด ์ฑ๊ณต์ ์ผ๋ก ๋น๋ ๋ฐ ๋ฐฐํฌ๋ฅผ ํ์ ๊ฒ๋๋ค.
* ์ฐธ๊ณ : ์ ํจ์ค๋ ์คํ๋ง ํ๋ก์ ํธ ๋ด main/src/java ํจํค์ง ์์ ์๋ ํ์ผ๋ค๋ง ๋น๋๋ฅผ ํ๊ธฐ ๋๋ฌธ์ main/src/test ํจํค์ง๋ ๋ฌด์๋ฉ๋๋ค. ๋ฐ๋ผ์ test๋ด java ํ์ผ์ import ํ ์ ์๋ค๋ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ ์ฒ๋ผ ์ฝ์ง ํ์์ง ๋ง์๊ธฐ ๋ฐ๋๋๋ค!!
* ์ฐธ๊ณ : ๋ง์ฝ ๋น๋๋ ๋๋๋ฐ ๋ฐฐํฌ๊ฐ ์๋๋ค๋ฉด, ์์์ ์ธ๊ธํ ๊ฒ์ฒ๋ผ ํฐ์บฃ ๋งค๋์ ๊ฐ ๋ค์ด๊ฐ์ง๋์ง ํน์ ํฐ์บฃ ๋ฐฐํฌํ ์๋ฒ๊ฐ ์ ์คํ๋๋์ง ํ์ธ ํ์๊ธฐ ๋ฐ๋๋๋ค.
* ์ฐธ๊ณ : ์คํ๋ง ํ๋ก์ ํธ๋ ๋น๋๋๋ฉด ๋ค์ 1.0.0-BUILD-SNAPSHOT๊ฐ ๋ถ์ต๋๋ค. ์๋ ๊ธ์ ์ฐธ๊ณ ํ์๋ฉด ์๋ถ๊ฒ ํ ์ ์์ต๋๋ค.
ํ์๋ค๊ฐ ์๋๋ ๋ถ๋ถ์ด๋ ๋งํ์๋ ๋ถ๋ถ์ด ์์ผ๋ฉด ์ธ์ ๋ ์ง ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์ :)
'...' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Tomcat] ์๋ฒ ๋ด tomcat ์ค์นํ๊ธฐ (0) | 2021.08.11 |
---|---|
๋๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํ๊ดดํ ์ ์์๊น? (0) | 2021.08.11 |
[Linux] yum, apt-get ์ฐจ์ด (0) | 2021.07.30 |
[Linux] wget, curl ์ฐจ์ด (0) | 2021.07.30 |
[Spring] ํธ๋์ญ์ ์ propagation ์ค์ ๋ณ ๋์ (0) | 2021.06.23 |