본문 바로가기

jenkins

(7)
jenkins - pipe line build job(3) 여러개의 서버의 소스를 배포하고 관리하는 과정에서 pipe line을 사용했습니다. aws cloud에 세팅 되어있는 서버들은 모두 다른 instance에 존재했습니다. jenkins의 하나의 job 안에서 서로 다른 서버에 소스를 배포하는 방법을 찾던 차에 pipe line을 알게되어 사용하게 되었습니다. pipe line은 여러개의 stage를 두어 pipe line의 script를 실행하는 것 뿐만이 아니라 jenkins에서 생성해둔 job(item)을 직접 실행시킬 수도 있었습니다. 이번 포스팅에서는 pipe line을 통해서 기존에 생성했던 job을 실행하는 예제입니다. job을 실행하기 전에 지난번 포스팅에서 다루었던 input을 통해 변수를 받고 다음 job에서 파라미터로 받아 실행해보도록 ..
jenkins - pipe line input, modal(2) 지난 포스팅에서는 jenkins pipeline에서 제공하는 hello world 예제를 통해 pipeline을 작성 기초를 실습해 보았습니다. 이번 시간에는 조금더 심화된 내용으로 접근에 보겠습니다. pipeline은 groovy 문법으로 된 Declarative 코드를 사용하여 작성할 수 있습니다. 지난번 포스팅에 이어서 작성한 pipeline을 수정하면서 진행하겠습니다. 아직 pipeline을 만들지 않았다면 지난 포스팅을 참고해주세요. jenkins - pipe line 사용하기 기본(1) 이번 포스팅에서 해볼 작업은 다음과 같습니다. 1. stage 추가 2. input 키워드로 modal 띄워서 문자열 입력받기 pipeline { agent any stages { stage('Hello') {..
jenkins - pipe line 사용하기 기본(1) 소스코드를 실제 서버에 배포를 하는 작업은 비즈니스 로직을 구현하는 일 만큼이나 복잡한 작업일 때가 있습니다. 여러가지 job 순차적으로 또는 조건에 따라 다른 작업을 수행할 수 도 있습니다. 저도 이전에 작성한 글에서와 같이 간단한 api 서버를 각각 배포하는 일만 하다가 최근 블록체인의 여러개 노드를 jenkins로 구성하고 업데이트하는 작업을 한 적이 있습니다. 각각의 job은 큰 작업이 아니었지만 원격의 6개 서버에 각각 순서에 맞게 docker swarm 세팅을 하고 그 작업이 끝난 후에 master 노드에서 각각의 서버에 docker를 up 하는 꽤나 번거로운 작업이었습니다. 결과적으로 코드는 단순했지만 이 또한 다른 작업들과 마찬가지로 "모르면 어렵지만 알면 쉬운 작업" 이었기에 또 한 번 ..
jenkins - 배포 자동화 하기 - 원격 shell script 'Publish Over SSH'(4) 이번 포스팅에서는 저번글에 이어서 원격 shell script글을 마무리 하도록 하겠습니다. 1. jenkins 플러그인 설치(Publish Over SSH) 2. jenkins 설정에서 remote 서버의 정보를 입력한다. 3. bitbucket과 연동하여 설정 4. 원격으로 소스 보내기 및 실행할 shell script 설정 임의의 이름으로 Publish Over SSH 설정을 하였다면 이제 이 설정을 사용하여 원격으로 서버에 shell script를 보낼 차례입니다. 새로운 item > Freestyle project 새로운 item을 생성하여 들어옵니다. 저는 작업하고 싶었던 프로세스가 'bitbucket에서 소스가 push 되었을 때 자동으로 받아온다 -> jenkins 서버에서 원격으로 소스를..
jenkins - 배포 자동화 하기 - 원격 shell script 'Publish Over SSH'(3) 이전 글에서는 jenkins를 bitbucket과 연동하여 소스를 push하면 자동으로 서버에 받아오는 것까지 알아보았습니다. 저번에 알아본 방법으로 배포를 자동화할 때는 소스가 있는 서버에 jenkins를 설치해야 했습니다. test서버를 구성할 때는 모든 소스가 한 서버안에 있고 jenkins 또한 같은 서버에 설치하여 운영을 하면 됐었지만 서버를 여러개로 나누고 늘어나다보니 각 서버마다 jenkins를 설치해야 하고 관리하는 상황이 발생하였습니다. 그래서 저는 jenkins 서버를 따로 구성하여 한개의 jenkins서버에서 모든 다른 서버들의 소스를 관리하는 방법을 사용하였습니다. 이때 알아야 하는것이 원격으로 다른 서버에 script를 실행할 수 있는 것과 jenkins서버에 받아온 소스코드를 원..
jenkins - 배포 자동화 하기 - bitbucket과 연동(2) 이번에는 bitbucket과 연동하여 소스코드를 자동으로 배포하는 방법을 알아보겠습니다. ​ 1. ec2에 접속하여 jenkins를 설치한다. 2. 웹으로 jenkins에 접속한다. 3. bitbucket에서 webhook 설정을 한다. 4. jenkins에서 bitbucket 정보를 넣어준다. 5. jenkins에서 소스코드를 받은 후에 실행할 스크립트를 넣어준다. 이번에 알아볼 단계는 3,4,5번 입니다. ​ 젠킨스가 돌아가고 있는 상태로 bitbucket을 사용하고 있는 분들은 본인의 소스 repository에 접근합니다. ​ bitbucket webhook 설정 회사 repository이기 때문에 중요한 부분들은 가렸습니다. 빨간색 원으로 표시한 부분(settings)에 들어갑니다. setting..
jenkins - 배포 자동화 하기 - jenkins 설치(1) jenkins를 사용하여 배포를 자동화 하는 방법을 알아보도록 하겠습니다. 웹서버나 API서버등을 개발하여 서버에 배포를 할 때 한번에 작업만으로 서비스를 완성하는 경우는 없습니다. 제가 몸 담고 있는 회사의 경우도 스타트업이고 아직 수정사항이 빈번하다보니 매번 소스코드를 수정하고 배포를 하는 일이 여간 귀찮은 일이 아닙니다. 저는 API 서버 개발, 블록체인 개발도 하지만 클라우드 서버를 관리하다 보니 다른 개발자가 개발한 소스코드를 배포를 하는 일도 같이 합니다. 본인의 소스코드를 배포하는 일도 많은데 남의 일도 해주다보니 본인의 일도 밀리는 일이 많아서 배포를 자동화하는 방법을 알아보게 되었습니다. jenkins를 사용하는 개발자들의 시작은 모두 이렇다고 생각됩니다. ​ 자 그럼 본격적으로 jenk..