참고 사이트

https://www.jenkins.io/blog/2017/02/07/declarative-maven-project/

 

Declarative Pipeline for Maven Projects

The next thing we’ll add in this Pipeline is a tools section to let us use Maven. The tools section is one of several sections we can add under pipeline, which affect the configuration of the rest of the Pipeline. (We’ll look at the others, including a

www.jenkins.io

 

 

script
pipeline {
    agent any
    tools { 
      maven 'maven3.9.5'
    }
    stages {
        stage('github clone') {
            steps {
                git branch: 'main', url: 'https://github.com/manupul/hello' 
            }
        }
        
        stage('build') {
            steps {
                sh '''
                    echo build start
                    mvn clean compile package -DskipTests=true
                '''
            }
        }
    }
}

 

 

windows tomcat에 app 배포

새 프로젝트 생성

 

 

설명 기입

 

 

빨간 박스 내용 추가

 

 

Pipeline Syntax에서 배포에 대한 내용 입력

 

 

파란 박스 클릭 후 내용 복사

 

 

복사한 내용 붙여넣기

 

 

빌드 성공!

 

 

배포 확인

 

 

실제 디렉토리 확인

 

 

docker-server2에 image 빌드

SSH에 docker-server2 추가

 

 

12project에 script에서 빨간 박스 부분 추가

 

 

Pipeline Syntax에서 빌드에 대한 내용 입력

 

 

수행 명령어 'docker build -t jingukang/jenkins_docker_pipeline -f Dockerfile .'까지 모두 입력

 

 

파란 박스를 클릭해서 내용 복사

 

 

복사한 내용 붙여넣기

 

 

빌드 완료

 

 

docker-server2에서 이미지 확인

 

 

트러블 슈팅

Maven의 이름과 매칭이 되지 않아 생기는 오류메시지

 

 

자신이 지정한 이름을 확인

 

 

수정하면 오류 해결

'docker' 카테고리의 다른 글

pipe-line 연습문제  (0) 2023.10.19
pipeline-view  (0) 2023.10.19
Docker hub를 이용한 container 생성  (0) 2023.10.18
ansible 내 tomcat SCM  (0) 2023.10.18
Ansible-server에 tomcat 생성  (1) 2023.10.17
script1
pipeline {
    agent any
    stages {
        stage('Compile') {
            steps {
                echo "Compiled successfully!";
            }
        }

        stage('JUnit') {
            steps {
                echo "JUnit passed successfully!";
            }
        }

        stage('Code Analysis') {
            steps {
                echo "Code Analysis completed successfully!";
            }
        }

        stage('Deploy') {
            steps {
                echo "Deployed successfully!";
            }
        }
    }
}

 

 

script2
pipeline {
    agent any
    stages {
        stage('Compile') {
            steps {
                echo "Compiled successfully!";
            }
        }

        stage('JUnit') {
            steps {
                echo "JUnit passed successfully!";
            }
        }

        stage('Code Analysis') {
            steps {
                echo "Code Analysis completed successfully!";
            }
        }

        stage('Deploy') {
            steps {
                echo "Deployed successfully!";
            }
        }
    }

    post {
      always {
        echo "This will always run"
      }
      success {
        echo "This will run when the run finished successfully"
      }
      failure {
        echo "This will run if failed"
      }
      unstable {
        echo "This will run when the run was marked as unstable"
      }
      changed {
        echo "This will run when the state of the pipeline has changed"
      }
    }
}

 

 

실습1

새 프로젝트 생성 시 Pipeline 선택

 

 

이름 기입

 

 

script1 기입

 

 

빌드 시 view 확인 가능

 

 

scripte2의 post 추가 입력

 

 

빌드 시 view 확인 가능

 

 

script3
pipeline {
    agent any
    stages {
        stage('Git clone') {
            steps {
                git branch: 'main', url: 'https://github.com/manupul/jenkins_pipeline_script'
            }
        }

        stage('Compile') {
            steps {
                echo "Compiled successfully!";
                sh './build.sh'
            }
        }

        stage('JUnit') {
            steps {
                echo "JUnit passed successfully!";
                sh './unit.sh'
            }
        }

        stage('Code Analysis') {
            steps {
                echo "Code Analysis completed successfully!";
                sh './quality.sh'
            }
        }

        stage('Deploy') {
            steps {
                echo "Deployed successfully!";
                sh './deploy.sh'
            }
        }
    }
}

 

 

실습2

새 repository 생성

 

 

파일 올리기

 

 

새 프로젝트 생성

 

 

설명 기입

 

 

빨간 박스 클릭

 

 

url 및 branch 기입

 

 

파란 박스 클릭 후 나오는 내용 복사

 

 

script3 넣은 후 git clone 주소 부분에 복사한 것으로 수정

 

 

빌드 시 모습

 

 

오류 메시지를 보니 허가권 문제였다

 

 

jenkins에 bash로 들어가서 확인해보자.

스크립트를 실행하기 위한 허가권이 없음

 

 

명령어 sh를 활용하면 실행됨

 

 

스크립트 수정

 

 

잘 실행 됨

 

 

post 부분을 뒤에 입력

 

 

빌드 성공

'docker' 카테고리의 다른 글

pipeline을 이용한 app 배포  (1) 2023.10.19
pipeline-view  (0) 2023.10.19
Docker hub를 이용한 container 생성  (0) 2023.10.18
ansible 내 tomcat SCM  (0) 2023.10.18
Ansible-server에 tomcat 생성  (1) 2023.10.17
필요 plugin

install

 

 

첫번째 타입 선택

 

 

이름 기입

 

 

설정

01project 빌드 후 조치에서 Build other projects 선택 후 02 project 기입

 

 

빌드 시 뷰에서 한 번에 내용을 확인 가능

 

 

완료

 

 

02project 빌드 후 조치에서 Build other projects 선택 후 03 project 기입

 

 

빌드 후 view에서 진행 중 모습 확인 가능

 

 

빌드 완료

'docker' 카테고리의 다른 글

pipeline을 이용한 app 배포  (1) 2023.10.19
pipe-line 연습문제  (0) 2023.10.19
Docker hub를 이용한 container 생성  (0) 2023.10.18
ansible 내 tomcat SCM  (0) 2023.10.18
Ansible-server에 tomcat 생성  (1) 2023.10.17
실습 준비

시작하기 전 Docker Hub에 이미지를 올릴 서버는 'Docker login'을 통해 로그인 하자.

 

 

ansible-server

Docker Hub에 이미지 올리기 위한 파일 생성

 

 

container 생성을 위한 파일

 

 

문법 체크

 

 

문법 체크

 

 

작업 목록 확인

 

 

작업 목록 확인

 

 

05playbook과  06playbook을 각각 실행하기 위한 server의 ip 주소 입력

 

 

Jenkins

새 프로젝트 생성

 

 

이전 프로젝트 copy

 

 

설명 입력

 

 

각 playbook 파일이 실행될 ip 주소 지정

 

 

빌드 성공

 

 

결과 확인

Docker Hub에 이미지가 잘 업로드 됨

 

 

Docker Hub에 이미지 올린 server에는 이미지가 남아있지 않음

 

 

container 실행한 server에는 잘 실행됨

'docker' 카테고리의 다른 글

pipe-line 연습문제  (0) 2023.10.19
pipeline-view  (0) 2023.10.19
ansible 내 tomcat SCM  (0) 2023.10.18
Ansible-server에 tomcat 생성  (1) 2023.10.17
ansible-server에 app 배포 [Jenkins, GitHub, SSH 이용]  (1) 2023.10.17
실습

기존 container를 지우고 다시 빌드할 수 있도록 스크립트 구성

 

 

SCM 매분마다 활성화

 

 

새 스크립트가 작동되도록 명령어 실행

 

 

webpage 수정

 

 

github에 올리기

 

 

빌드 성공

 

 

app 배포 확인

 

 

image가 새로 올라간 것을 확인

 

 

웹페이지를 수정 후 1분 기다리면 다시 빌드됨

 

 

이미지 다시 빌드된 것 확인

 

 

웹페이지 내용 수정됨

 

 

트러블 슈팅

빌드 실패

 

 

기존 빌드된 container가 삭제되지 않아서 생긴 오류메시지

 

 

기존 container를 지우고 다시 빌드할 수 있도록 스크립트 구성

'docker' 카테고리의 다른 글

pipeline-view  (0) 2023.10.19
Docker hub를 이용한 container 생성  (0) 2023.10.18
Ansible-server에 tomcat 생성  (1) 2023.10.17
ansible-server에 app 배포 [Jenkins, GitHub, SSH 이용]  (1) 2023.10.17
Ansible playbook  (1) 2023.10.17
tomcat 이미지 생성

playbook 파일 생성

 

 

Dockerfile 생성

 

 

문법 체크

 

 

작업 리스트

 

 

ansible-server 주소 입력

 

 

hosts 파일에 기재된 주소를 대상으로 playbook 수행

 

 

이미지 확인

 

 

jenkins를 이용해서 ansible-server 내 tomcat 생성 및 접속

컨테이너 및 이미지 모두 지우기

 

 

playbook 파일 생성

 

 

문법 체크

 

 

작업 리스트 확인

 

 

명령어 'ansible-playbook -i hosts 04.playbook.yml' 실행되도록 설정

 

 

빌드 성공

 

 

이미지 확인

 

 

컨테이너 확인

 

 

ansible-server 안 tomcat에 접속

 

 

아래 명령어를 통해 tomcat에 접속하자

docker exec -it f7 /bin/bash

 

 

app 배포 확인

 

 

배포된 웹페이지에 접속

 

 

webapps.dist 내 모든 파일을 webapps 내에 복사 후 도커 재시작 및 tomcat 재접속

'docker' 카테고리의 다른 글

Docker hub를 이용한 container 생성  (0) 2023.10.18
ansible 내 tomcat SCM  (0) 2023.10.18
ansible-server에 app 배포 [Jenkins, GitHub, SSH 이용]  (1) 2023.10.17
Ansible playbook  (1) 2023.10.17
Ansible 실습  (0) 2023.10.16

+ Recent posts