jenkins 붙이기

최준호·2022년 1월 2일

프로젝트

목록 보기
4/6

jenkins 컨테이너 만들기

jenkins를 왜 하나의 서버로 구성하는걸까? 그 이유는 jenkins를 하나의 프로젝트에 종속되게 붙여버리면 msa 프로젝트 구성상 여러 프로젝트가 늘어날때 하나의 프로젝트에 하나의 젠킨스 서버가 붙어야한다. 그럼 하나의 프로젝트마다 젠킨스 서버 하나에서 설정해주고 또 다른 프로젝트는 다른 젠킨스 서버에서 설정을 해야하는데. 이게 말이 안된다... 차라리 하나의 jenkins 서버를 구성하고 빌드가 일어났을때 원격으로 서버를 제어하여 여러 서버를 동시에 제어할 수 있도록 구성하는 것이 효율적이다.

jenkins를 사용하여 ci/cd를 구현해보려고 한다. 먼저 jenkins를 docker-compose로 실행시키기 위해 dockerfile을 작성해보자

version: '3.7'
  
services:
    jenkins:
        container_name: jenkins
        image: jenkins/jenkins:lts
        volumes:
            - ./data:/var/jenkins_home
            - /var/run/docker.sock:/var/run/docker.sock
        ports:
            - 8080:8080
        privileged: true
        user: root

dockerfile 작성 참고

docker-compose up -d로 실행하여 보안 설정을 끝내고 8080으로 들어가보면 다음과 같은 화면을 볼 수 있다. 드디어 jenkins를 사용해볼 수 있는것이다 ㅜㅜ 처음에 user:root를 적지 않고 실행했더니 volumes으로 설정한 폴더들에 접근 권한이 없어서 컨테이너가 계속 꺼졌다 ㅜㅜ user: root를 꼭 적어주자.

jenkins 설정하기

jenkins 초기 설정


jenkins를 처음 접속하면 비밀번호를 입력하라고 나오는데

docker-compose logs 명령어를 통해 자동생성된 비밀번호를 확인할 수 있다.


그러면 설정에 대해서 선택하는 화면이 나오는데 그냥 왼쪽꺼 누르면 된다.

그러면 설치가 진행되는데 진행되는 동안 기다리자.

그 이후에 admin 계정을 생성하고

젠킨스 화면을 확인할 수 있다. 이제 우리가 실제로 jenkins를 사용해보는 실습을 진행해보자!

jenkins ssh 설정

aws가 아닌 일반 서버의 경우 참고글

aws의 경우 참고글

플러그인 관리로 들어가서

Publish Over SSH를 설치하며 젠킨스 서버를 restart 해준다.

jenkins publish over SSH 설정

jenkins 관리 > 시스템 설정 페이지로 온다.

가장 하단에 key를 등록할 수 있는 칸이 있는데 ec2의 경우 처음에 발급한 .pem 키값을 입력해주면 된다.

그 후에 추가 버튼을 눌러서

다음 내용을 입력해주면 된다

name 사용자가 구분할 수 있는 이름
hostname 접속하고자 하는 서버의 ip 주소
username 접속하고자 하는 user 이름

그 후에 success가 뜨면 정상적으로 접속이 가능한 것이다.

hostname에 http://를 절대 붙이지 마라... 그거 때문에 2시간 헤맸다...

그 후에 저장을 눌러주면 ssh 설정은 모두 끝났다!

jenkins job 만들기

이제 설정을 마쳤으니 정말 우리 main server에 처리가 일어나는지 확인을 해봐야한다. 새로운 job을 만들어서 테스트해보자.

test라는 작업을 생성하고

test하려는 거니 파이프라인을 만들기 보다 cmd를 날리는걸로 테스트해보자.

우리가 설정한 ssh server와 커맨드를 설정해주고 저장해준다.

test 할때 root 계정이 아니라면 권한 denied될 수 있다.

그러면 test라는 job이 생겼고 build now를 눌러보자.

새로운 작업을 정상적으로 진행했고 실제 서버에 testFolder라는 디렉터리가 생성되었는지 확인해보자.

정상적으로 testFolder가 추가된것을 확인할 수 있다.

만약 빌드 중 오류가 생긴다면 해당 빌드를 클릭하여 Console Out을 클릭하면 로그를 확인할 수 있다.

0개의 댓글