windows 서버는 기본적으로 ssh를 지원을 하지 않는다. 따라서 windows 서버에 배포를 하기 위해서는 openssh 를 설치하거나 ftp로 배포를 해야 한다. 이중 ftp를 사용하여 배포하는것을 설명하려고 한다. 일단 windows 서버에 ftp 설치를 해보자. 다음 포스팅에 아주 잘 나와있어서 어렵지 않게 ftp를 설치할 수 있다. Windows Server 2012에 간단하게 FTP 설치하기 Windows Server 2012에 FTP를 간단하게 설치 및 설정하고 알드라이브로 접속하여 확인해보기 테스트 환경 : 윈도우즈7이 설치된 데스크톱 컴퓨터, 컴퓨터의 VMware에 설치한 Windows Server 2012 Standard 1. 윈도 klero.tistory.com 설치가 완료 되었다..
Windows 서버로 진행을 하는 프로젝트를 몇번 진행을 해봤지만 우리 생활에 밀접하게 있는 OS라 친숙하면서도 SSH, FTP, 방화벽 등등 리눅스보다 다루기 어려운 부분들이 많이 있었다. 이 Windows 서버에 개발서버가 올라가고 이에 대한 CI/CD 환경을 구성을 해야 했는데 이때 Jenkins를 통해 배포 및 서버에 설치된 tomcat을 재기동을 시켜야 했다. 윈도우에 설치된 tomcat은 bat 파일을 실행시켜서 동작시킨다. 윈도우상에서 이 파일을 눌러서 실행시키면 cmd 창이 나오면서 톰캣이 기동되는 모습을 확인할 수 있다. 그리고 그 cmd 창은 계속 떠 있어야지 이 창을 종료시키면 tomcat 도 중지된다. 이는 실제 서버를 운영하는 입장에서도 굉장히 거슬리는 점이 아닐수 없다. 하지만 ..
Jenkins에서 master-slave node로 구성하는건 분산 빌드라던지 원격지에서 원격지로의 배포 등 여러가지 용도로 사용될 수 있다. Jenkins를 사용한다면 실제 빌드는 모두 Jenkins가 위치한 서버에서만 가능한데 이런 master-slave node로 구성을 한다면 이런 환경에 대해 조금 더 유연하게 대처할 수 있다. 즉 agent를 빌드나 배포를 할 서버에 심어놓으면 그 서버들은 각각 Jenkins가 설치된것 같은 효과를 누리게 되는 것이다. 이를 어떻게 구성하고 사용하는지 살펴보자. 가장 먼저 해야할일은 jenkins plugin 설치이다. plugin은 SSH Slaves plugin 을 설치하면 된다. 설치를 하고 나면 Jenkins 관리 > 노드 관리 라는 메뉴가 활성화가 될것..
Maven 프로젝트를 빌드할때 java.lang.AssertionError 이 발생하는 경우가 있다. Exception in thread "main" java.lang.AssertionError at jdk.compiler/com.sun.tools.javac.util.Assert.error(Assert.java:155) at jdk.compiler/com.sun.tools.javac.util.Assert.check(Assert.java:46) at jdk.compiler/com.sun.tools.javac.comp.Modules.enter(Modules.java:247) at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.readSourceFile(JavaCo..
maven에서 사용할 수 있는 명령어들에 정리해본다. command desc compile 컴파일 수행 test 컴파일 수행 후 테스트 클래스 수행 package 컴파일을 수행하고 컴파일한 소스를 packaging 양식(war or jar)에 맞춰 프로젝트 내 지정한 경로(eg.target) 디렉토리에 생성 install package 한것에 추가적으로 로컬 repository에 배포한다. deploy install 한것에 추가적으로 원격 repository(nexus)에 배포한다. clean maven build 시 생성된 모든 것들을 삭제한다. maven에서 사용할 수 있는 옵션들에 정리해본다. option desc -am,--also-make 프로젝트 목록이 지정된 경우 목록에 필요한 프로젝트도 빌..
전에 Jenkins 내에서 pipeline script 작성을 하여 Jenkins Pipeline으로 Job 병렬처리 하는것을 해보았다. 말 그대로 Jenkins Job을 구성할때 Pipeline 영역에 DSL을 작성을 하는 것이다. Jenkins Pipeline 으로 Job 병렬처리하기 Jenkins를 사용하다보면 비슷한 성격의 Job들을 병렬로 처리하기를 원하는 경우가 있을수 있다. 이럴 경우는 pipeline 을 사용하여 간단하게 처리할 수 있다. pipeline이란 전용 DSL을 통해 코드로 빌드 � oingdaddy.tistory.com 이번에는 위와 동일한 일을 하지만 약간 다른 방식은 Pipeline script from SCM 방식에 대해서 알아보겠다. SCM은 git이나 svn과 같은 소..
Jenkins를 사용하다보면 비슷한 성격의 Job들을 병렬로 처리하기를 원하는 경우가 있을수 있다. 이럴 경우는 pipeline 을 사용하여 간단하게 처리할 수 있다. pipeline이란 전용 DSL을 통해 코드로 빌드 과정을 나타내는것을 말한다. pipeline의 핵심은 JenkinsFile 이고 이 JenkinsFile을 작성하는 방법은 여러가지가 있지만 가장 간단한 Jenkins Job에서 직접 JenkinsFile을 작성하는 방법에 대해 알아보겠다. Pipeline Job 만들기 new Item > Pipeline 을 통해 Job을 생성한다. Pipeline Job (JenkinsFile) 작성하기 Pipeline Job이라 Pipeline을 사용할 수 있다. Pipeline script를 선택(..
Jenkins를 통해 배포환경을 구성하고 실제 운영을 할 때 빌드 및 배포를 한 버전의 application이 문제가 생겼을 경우 급하게 이전 버전으로 복구를 하고 싶은 경우가 있다. 예전에 nexus를 통해서 이와 비슷한 방식으로 복구를 할수 있었는데 nexus를 이용하지 않는 환경에서 방법에 대해 알아보도록 하겠다. 예전에 소개한 nexus를 사용하는 방법은 다음과 같다. Nexus에 deploy하고 Jenkins에서 deploy 된 목록 가지고 오기 이번에 소개할 내용은 소스를 빌드하여 nexus에 배포를 하고 그 배포된 파일 목록을 Jenkins에서 가져와 원하는 파일로 was에 배포를 하는 것이다. 이게 뭐하는 일인가 싶을수도 있지만 was에 배포한 oingdaddy.tistory.com 모든 ..