반응형

다음 스크립트가 동작하려면 별도로 sshpass를 install해야함.

젠킨스서버, 대상 클라이언트 서버 모두 설치되어있어야함.

pipeline {
    agent any
    environment {
        REMOTE_HOST = "[클라이언트주소]"
        REMOTE_USER = "root"
        REMOTE_PASS = "[비밀번호]"
        GIT_REPO = "http://[깃리포지토리주소].git"
    }
    stages {
        stage('Deploy to Rocky Linux via SSH') {
            steps {
                sh """
                sshpass -p '$REMOTE_PASS' ssh -o StrictHostKeyChecking=no $REMOTE_USER@$REMOTE_HOST <<'EOF'
                set -e
                cd [패키지경로]
                
                # Git 업데이트
                git pull

                # Docker 빌드 및 배포
                docker build -t [패키지명]:latest .

                # 기존 컨테이너 중지 및 삭제
                docker stop [패키지명] || true
                docker rm [패키지명] || true
                
                cd /root
                nohup bash ./run_docker.sh > /dev/null 2>&1 &

                """
            }
        }
    }
}
728x90

+ Recent posts