특다모 Jenkins 적용기 #2

김동연·2023년 11월 9일
0
post-thumbnail

젠킨스 설치

이제 서버도 있겠다 도커를 설치해보자.

EC2 접속은 정리가 잘된 곳이 많으니 다들 알아서 접속하자

접속후 home에

mkdir jenkins

로 젠킨스가 관련 도커 파일을 관리할 디렉토리를 생성해 주었다.

젠킨스를 직접 받아 사용하는 방법도 있겠지만 젠킨스는 이미지로 이쁘게 구현이 되어있어서 그냥 머리 안아프게 도커로 사용하는 것이 편하다.

1. 도커 설치

그럼 젠킨스를 사용하기 위해 서버에 도커를 깔아보자
까는 법은 도커 사이트에 이쁘게 정리되어있다. 걍 따라하자

도커 설치 이후

sudo chmod 006 /var/run/docker.sock

권한을 주어야 한다. - 안하면 docker ps 안먹힘

2. 젠킨스 docker-compose.yml 작성

이제 도커 실행을 위한 docker-compose.yml을 작성해보자

1) 생성한 jenkins 디랙토리로 이동하자

cd jenkins

2) docker-compose.yml 작성
!!!! 우리의 목표는 도커의 내부에서 도커 빌드를 통해 이미지를 만들어 도커 허브에 push해야한다.
때문에 도커의 주소를 지정을 해줘야한다.
container를 통해 생성된 서버는 기본주소가 도커를 기준으로 하기 때문에 원래 ec2서버의 도커 명령어를 사용하기 위해서는 도커의 위치를 선언해줄 필요가 있다.!!!

sudo vi docker-compose.yml
version: '3.7'
services:
  jenkins:
    build:
      context: dockerfile
      dockerfile: Dockerfile
    container_name: jenkins
    image: jenkins/jenkins:jdk17 ## 사용하는 자바의 버전을 넣는다
    user: root
    privileged: true
    ports:
      - 8080:8080
      - 50000:50000
    volumes:
      - ./jenkins_home:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - ${DOCKER_PATH}:/usr/bin/docker ## 이거 중요, 도커 실행시 도커 내부에서 도커를 사용하기위해 필요
      - /APP/pkgs/jenkins:/var/jenkins_home

3) Dockerfile 작성

sudo vi Dockerfile
FROM jenkins/jenkins:jdk17

USER root
RUN apt-get update &&\
    apt-get upgrade -y &&\
    apt-get install -y openssh-client

4) 실행
이 후 해당 디렉토리는 다음과 같아야 한다

ubuntu@{ip}:~/jenkins$ ls
Dockerfile  docker-compose.yml

실행하자

DOCKER_PATH=$(which docker) docker compose up -d

docker ps로 실행되었는지 확인

ubuntu@ip-172-31-37-148:~/jenkins$ docker ps
CONTAINER ID   IMAGE                   COMMAND                  CREATED         STATUS         PORTS                                                                                      NAMES
************   jenkins/jenkins:jdk17   "/usr/bin/tini -- /u…"   3 seconds ago   Up 2 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp   jenkins

3. jenkins 접속

브라우저로
http://{ec2_서버_ip}:8080
로 접근하면 된다.
이때 로그인의 경우 초기

와 같이 뜨는데
이제 ec2 터미널에서

ubuntu@ip-172-31-37-148:~/jenkins$ ls
Dockerfile  docker-compose.yml  jenkins_home

jenkins_home 디렉토리가 생성된걸 확인할 수 있는데
해당 디렉토리에서 secrets 파일 안에 initialAdminPassword에서 초기 비번을 확인할 수 있다.
이때 permission때문에 접근을 못하는데

sudo su
cd secret파일로 이동
cat initialAdminPassword

로 비번을 확인후 접속
이 후 계정 및 비번을 설정해주고

추천 플러그인을 설치해준다

etc. 삽질 기록

1. 한밤중에 몰린 트래픽

이슈: 젠킨스 접속이 갑자기 느려짐
원인: 22번 포트를 0.0.0.0으로 열어준것 -> 외부 접근자들이 계속 접속을 시도함
해결: 내가 사용하는 ip만 특정지어줌

2. plugin 설치 실패업로드중..

이슈: 추천 플러그인 설치시 다 실패하는 경우가 생김
원인: https 접근이 되지 않아서 그렇다
해결: 443포트와 80포트를 열어준다

0개의 댓글