Skip to content

젠킨스를 이용한 CI/CD

  1. 설정파일을 생성할 디렉토리로 이동해서 docker-compose.yml 파일을 생성한다.

    Terminal window
    touch docker-compose.yml
  2. 설정 내용은 다음과 같다.

    services:
    soc-jenkins:
    container_name: soc-jenkins
    image: jenkins/jenkins:lts
    user: root
    restart: always
    ports:
    - "8065:8080"
    volumes:
    - ./jenkins_home:/var/jenkins_home
    networks:
    - cicd_net
    networks:
    cicd_net:
    driver: bridge
    external: true
    internal: true
  1. 웹 브라우저에서 아래 주소를 입력한다.
    http://localhost:8065
  1. 처음 젠킨스를 실행하면 젠킨스에서 생성된 패스워드를 입력해야 한다.

  2. 다음으로 플러그인 설치에 대해 물어보는데 제안하는 플러그인을 선택하고 설치한다.

  3. 관리자 계정과 패스워드를 설정하고 계속 진행한다.

  4. 젠킨스 로그인을 마치고 초기 화면이 출력되면 완료된 것이다.

  1. nodejs, pnpm 설치
    1. nodejs 플러그인 설치
      • Dashboard -> Jenkins 관리 -> System Configuration -> Plugins -> Available plugins
      • NodeJS 체크 -> Install 버튼 클릭
    2. nodejs 설치
      • Dashboard -> Jenkins 관리 -> Tools -> NodeJS installations -> Add NodeJS 버튼 클릭
      • Name: nodejs-22.10 입력
      • Install automatically 체크 -> Version 선택 -> NodeJS 22.10.0 선택
      • Global npm packages to install -> pnpm 입력
      • Save 버튼 클릭
    3. nodejs / pnpm 실행 확인
      1. 파이프라인을 추가하고 스크립트를 아래와 같이 작성한다.
        pipeline {
        agent any
        tools {
        nodejs 'nodejs-22.10'
        }
        stages {
        stage('nodejs version') {
        steps {
        sh 'node --version'
        sh 'pnpm -version'
        }
        }
        }
        }
      2. 파이프라인을 실행하면 아래와 같은 출력을 확인할 수 있다.
        [Pipeline] sh
        + node --version
        v22.10.0
        [Pipeline] sh
        + pnpm -version
        10.5.2
  2. JDK
    1. JDK 설치
      • Dashboard -> Jenkins 관리 -> Tools -> JDK installations -> Add JDK 버튼 클릭
      • Name: jdk-${VERSION} 입력
      • Install automatically 체크 -> Extract *.zip/*.tar.gz 선택
        1. Download URL for binary archive 항목에 JDK 다운로드 주소를 입력한다.
        2. Subdirectory of extracted archive 항목에 압축을 풀었을때 생성되는 디렉토리명을 입력한다.
      • Save 버튼 클릭
    2. JDK 실행 확인
      1. 파이프라인을 추가하고 스크립트를 아래와 같이 작성한다.
        pipeline {
        agent any
        tools {
        jdk 'jdk-21'
        }
        stages {
        stage('JDK version') {
        steps {
        sh 'java -version'
        }
        }
        }
        }
      2. 파이프라인을 실행하면 아래와 같은 출력을 확인할 수 있다.
        [Pipeline] sh
        + java -version
        openjdk version "21.0.6" 2025-01-21 LTS
        OpenJDK Runtime Environment Corretto-21.0.6.7.1 (build 21.0.6+7-LTS)
        OpenJDK 64-Bit Server VM Corretto-21.0.6.7.1 (build 21.0.6+7-LTS, mixed mode, sharing)
    3. maven
      • TODO 미래의 나님이 해줄거임
    4. gradle
      1. JDK 설치가 필요하다. JDK 설치는 앞서 설명한 내용을 참고한다.
      2. JDK 버전에 맞추어서 gradle 버전을 선택해야 한다.
      3. gradle 설치
        • Dashboard -> Jenkins 관리 -> Tools -> Gradle installations -> Add Gradle 버튼 클릭
        • Name: gradle-${VERSION} 입력
        • Install automatically 체크 -> gradle 버전 선택
        • Save 버튼 클릭
      4. gradle 실행 확인
        1. 파이프라인을 추가하고 스크립트를 아래와 같이 작성한다.
          pipeline {
          agent any
          tools {
          jdk 'jdk-21'
          gradle 'gradle-8.5'
          }
          stages {
          stage('Gradle version') {
          steps {
          sh 'java -version'
          sh 'gradle -v'
          }
          }
          }
          }
        2. 파이프라인을 실행하면 아래와 같은 출력을 확인할 수 있다.
          [Pipeline] sh
          + gradle -v
          ------------------------------------------------------------
          Gradle 8.5
          ------------------------------------------------------------
          Build time: 2023-11-29 14:08:57 UTC
          Revision: 28aca86a7180baa17117e0e5ba01d8ea9feca598
          Kotlin: 1.9.20
          Groovy: 3.0.17
          Ant: Apache Ant(TM) version 1.10.13 compiled on January 4 2023
          JVM: 21.0.6 (Amazon.com Inc. 21.0.6+7-LTS)
          OS: Linux 6.11.0-21-generic amd64
      5. ant
        • TODO 미래의 나님이 해줄거임
  1. Dashboard -> Jenkins 관리 -> Security -> Credentials -> 목록에서 System 클릭 -> Add domain 버튼 클릭
  2. 먼저 도메인을 등록해야 하는데, 입력 항목은 다음과 같다.
    1. Domain name
      • 도메인 이름을 입력한다. (예 - github)
    2. Description
      • 형상관리 시스템이나 토큰정보를 입력한다. (예 - 토큰생성일, 토큰만료일)
    3. Create 버튼 클릭
  3. 새로 등록한 도메인에 credentials 정보를 등록한다.
    1. Dashboard -> Jenkins 관리 -> Security -> Credentials -> System -> 목록에서 새로 등록한 도메인을 클릭
    2. Add Credentials 버튼 클릭
    3. New credentials -> Kind
      • Username with password항목을 선택한다.
    4. New credentials -> Scope
      • Global (jenkins, nodes, items, all child items, etc)항목을 선택한다.
    5. New credentials -> Username
      • (깃허브를 SCM 으로 사용하는 경우)깃허브 계정 id를 입력한다.
    6. Treat username as secret 항목을 체크한다.
    7. New credentials -> Password
      • 깃허브에서 발급받은 토큰을 입력한다.
      • 6,7 단계가 정상적으로 수행되고 인증에 문제가 없는경우 오류 메시지가 사라진다.
    8. New credentials -> ID
      • ID로 사용할 수 있는 유일한 값을 입력한다. (예 - github-token)
    9. New credentials -> Description
      • 토큰과 관련된 정보를 입력한다.
    10. Create 버튼 클릭

젠킨스 SSH 인증서 생성 및 배포 서버에 공개키 등록

Section titled “젠킨스 SSH 인증서 생성 및 배포 서버에 공개키 등록”