티스토리 뷰
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파일 확인된다면 성공
'CI CD > JenKins' 카테고리의 다른 글
Jenkins(Mac m1) 27 Jenkins AWS Cloud (0) | 2023.07.03 |
---|---|
AWS EC2 인스턴스 생성 (0) | 2023.07.03 |
Jenkins(Mac m1) 25 Jenkins multi nodes 구성 (Master + Slaves) (0) | 2023.07.03 |
Jenkins(Mac m1) 24 Jenkins + sonarqube연동 pipeline (0) | 2023.07.03 |
Jenkins(Mac m1) 23 SonarQube bad code (0) | 2023.06.30 |