티스토리 뷰

jenkins node2 컨테이너 생성

 docker run --privileged --name jenkins-node2 -itd -p 40022:22 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup --cgroupns=host  edowon0623/docker-server:m1 /usr/sbin/init

 

할당된 아이피 확인

docker network inspect bridge

방금 생성한 node2의 할당된 아이피 확인 현재 172.17.0.7로 할당된걸 확인

 

컨테이너로 접속

ssh root@localhost -p 40022

 

ncurses, git 설치

yum install -y git ncurses

 

jdk설치전 리스트 확인

 yum list java*jdk-devel

 

리스트중 11버전 설치해주기

yum install -y java-11-openjdk-devel.aarch64

 

jenkins는 jdk와 git을 이용해서 build를 진행하니 새로운 jenkins를 생성할땐 jdk와 git을 꼭 설치해주자.

 

node1, node2, jenkins-server 총 cmd창 3개를 열고

jenkins-server에서 node2로 키 복사를 해줍시다

 

jenkins-server cmd에서 입력

ssh-copy-id root@172.17.0.7

복사하고 접속하여 비밀번호없이 잘 접속되는지 확인

 

jenkins홈페이지에서 node를 추가해주기

이름은 slave2로 하고 Permanent Agent 선택 후 create

slave1만들때처럼 입력해주고 이번에 잡업할당은 최대 2로 지정하였습니다.

node2의 결과물이 저장될 디렉토리를 생성

 

node2의 cmd

mkdir slave2

 

접속방식은 node1과 같이 ssh를 이용할것이고 host에 node2의 ip를 입력후 credentials는 node1때 만들었던 root의 계정으로 접속 같은 비밀번호의 ssh라서 사용가능

 

저장후 노드 확인

위와같이 로그를 확인하는 버튼이없다면 생성이 잘 된것입니다.

 

pipeline project 

My-Third-Pipeline 구성으로 가서 sonar 주석처리 

agent any를 slave1으로 변경

 

pipeline 스크립트

pipeline {
    agent {
    	label 'slave1'
    }
    tools { 
      maven 'Maven3.8.5'
    }
    stages {
        stage('github clone') {
            steps {
                git branch: 'main', url: 'https://github.com/joneconsulting/cicd-web-project.git'; 
            }
        }
        
        stage('build') {
            steps {
                sh '''
                    echo build start
                    mvn clean compile package -DskipTests=true
                '''
            }
        }
        // stage('SonarQube analysis') {
        //     steps {
        //         withSonarQubeEnv('SonarQube-server') {
        //             sh 'mvn sonar:sonar'
        //         }
        //     }
        // }
        
        // stage('deploy'){
        //     steps{
        //         deploy adapters: [tomcat9(credentialsId: 'deployer_user', path: '', url: 'http://192.168.0.96:8088')], contextPath: null, war: '**/*.war'
        //     }
        // }
        
        // stage('ssh publisher'){
        //     steps{
        //         sshPublisher(publishers: [sshPublisherDesc(configName: 'docker-server', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'docker build --tag kdhdaehyun/devops_exam1 -f Dockerfile .', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '.', remoteDirectorySDF: false, removePrefix: 'target', sourceFiles: 'target/*.war')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
        //     }
        // }
    }
}

빌드 후 console 확인해보면

slave1에 빌드가되었고 만들어진 경로가 보이게된다.

 

slave1의 cmd에 들어가서 확인해보면 생성이 정확히 됬는지 확인해보고 

slave2에도 한번 실행해보겠습니다.

 

My-Third-Project구성에 스크립트에서 slave1을 slave2로 변경한뒤 빌드시작

빌드 후 해당 디렉토리에 생성된 hello-world.war파일 확인된다면 성공

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함