[Jenkins] Deploy
- Jenkins
- 2020. 8. 21.
이번글에서는 jenkins job을 사용해 tomcat에 deploy 하는 방법에 대해 알아보도록 하겠습니다.
1. Sample.war
이번 실습에선 deploy에 war 파일을 사용하며, 구동중인 tomcat 서버가 있다고 가정하겠습니다.
war 파일은 https://tomcat.apache.org/tomcat-7.0-doc/appdev/sample/ 에서 제공해주는 sample.war 파일을 사용하도록 하겠습니다.
저의 jenkins server는 linux이므로 wget을 사용해 위의 sample.war 파일을 다운받았습니다.
각자 본인들의 jenkins workspace에 위에서 다운받은 war파일을 옮겨 놓아주시면 됩니다. jenkins workspace는 jenkins home directory에 위치한 config.xml 파일에서 확인할 수 있습니다.
config.xml
2. Tomcat Deploy User
tomcat에 deploy를 하기위해선 deploy user 계정이 필요합니다.
이때 deploy user는 manager-script 권한이 필요합니다. 따라서 아래와 같이 tomcat server에서 /conf/tomcat-users.xml에 user 정보를 추가합니다.
command
vi /conf/tomcat-users.xml
deploy user
<user username="deployer" password="deployer" roles="manager-script"/>
3. Download Deploy Plugin
jenkins에서 deploy를 하기위해선 plugin을 다운받아야합니다.
manage plugins로 이동합니다.
deploy to container plugin을 다운받습니다.
4. Job
이제 위에서 다운로드한 war 파일을 deploy하는 job을 생성해보겠습니다.
new item을 클릭합니다.
생성할 job의 이름을 입력하고 freestyle project로 생성합니다.
다른 설정은 제외하고 가장 기본적인 build & deploy 설정만 다루겠습니다 😅.
build에는 execute shell을 선택후 pwd를 입력합니다. 아무것도 입력하지 않아도 상관없습니다.
다음으로 post build actions에서 deploy war/ear to container를 선택합니다. 선택 후 WAR/EAR files에는 '* * /*.war' 를 입력합니다. 직접 경로를 지정해주셔도 됩니다. 다음으로 Context path에는 war 파일의 이름인 sample.war 를 입력합니다.
다음으로 containers에서는 각자 deploy할 server의 버전을 선택합니다. 저는 tomcat 8.x version을 선택했습니다. Tomcat URL에는 tomcat server의 URL을 입력합니다.
마지막으로 앞서 생성한 tomcat deploy user 정보를 jenkins job에 입력합니다. Credentials에서 Add 버튼을 클릭합니다.
Domain과 Scope는 Global을 선택합니다. Kind에 Username with password를 선택하고 위의 deploy user 정보를 아래와 같이 입력해 저장합니다.
credentails에서 위에서 저장한 user를 선택합니다.
모든 설정이 완료되었습니다. 😎
5. Test
테스트해보도록 하겠습니다.
아래와 같이 생성된 deploy job을 실행해보겠습니다.
아래와 같이 정상적으로 job이 실행되었습니다.
console output은 아래와 같습니다. 정상적으로 deploy까지 완료한 것을 확인할 수 있습니다.
tomcat server를 확인해보면, 아래와 같이 sample.war 파일이 정상적으로 deploy 된 것을 확인할 수 있습니다.
화면도 정상적으로 출력됩니다. 👏👏👏
참고 자료 : https://www.youtube.com/watch?v=j5D8SLxn6YA&list=PLhW3qG5bs-L_ZCOA4zNPSoGbnVQ-rp_dG&index=11
추천서적
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
'Jenkins' 카테고리의 다른 글
[Jenkins] Gradle Build (0) | 2020.08.22 |
---|---|
[Jenkins] Delivery Pipeline (0) | 2020.08.21 |
[Jenkins] Compile (0) | 2020.08.21 |
[Jenkins] Jobs (0) | 2020.08.21 |
[Jenkins] Basic Configurations (0) | 2020.08.21 |