Aprenda la integración continua de Jenkins (cuatro) Jenkins implemente el paquete war e implemente el paquete jar

Cero, configurar Tomcat

De forma predeterminada, Tomcat no tiene configurados los permisos de función de usuario.
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Sin embargo, los proyectos de implementación de Jenkins posteriores al servidor de Tomcat deben usar usuarios de Tomcat, así que modifique la siguiente configuración de Tomcat, agregue usuarios y permisos

vi /opt/tomcat/conf/tomcat-users.xml
# 内容如下:
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/> 

El usuario y la contraseña son: tomcat Nota: Para que el usuario recién configurado pueda iniciar sesión en Tomcat, es necesario modificar la siguiente configuración
Inserte la descripción de la imagen aquí

vi /opt/tomcat/webapps/manager/META-INF/context.xml
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
# 把上面这行注释掉即可!

Inserte la descripción de la imagen aquí

Reinicie Tomcat, acceda a la prueba,
Inserte la descripción de la imagen aquí
ingrese tomcat tomcat para
Inserte la descripción de la imagen aquí
configurar las credenciales de Tomcat
Inserte la descripción de la imagen aquí

1. Despliegue remoto de paquetes de guerra para proyectos de estilo libre

1. Crea un proyecto de estilo libre

Inserte la descripción de la imagen aquí

2. Agregar pasos de compilación

Compilar y empaquetar
Inserte la descripción de la imagen aquí

3. Agregar operaciones posteriores a la compilación

Despliegue remoto
Inserte la descripción de la imagen aquí

4. Construye ahora

Inserte la descripción de la imagen aquí

5. Ver la salida de la consola

Inserte la descripción de la imagen aquí

En segundo lugar, cree un proyecto de canalización para implementar de forma remota el paquete de guerra

La selección del proyecto es Pipeline流水线项目,

  1. El concepto
    Pipeline, en términos simples, es un conjunto de marco de flujo de trabajo que se ejecuta en Jenkins, que
    conecta tareas que originalmente se ejecutan de forma independiente en uno o varios nodos , y realiza un trabajo de visualización y orquestación de procesos complejos que es difícil de completar con una sola tarea.
  2. El uso de Pipeline tiene las siguientes ventajas (de la traducción de documentos oficiales):
    Código: Pipeline se implementa en forma de código y generalmente se registra en el control del código fuente, lo que permite al equipo editar, revisar e iterar su proceso de entrega. Durable: ya sea que se trate de un reinicio del servidor planificado o no planificado, Pipeline es recuperable. Se puede detener: la canalización puede recibir información interactiva para determinar si continuar con la canalización. Multifuncional: Pipeline admite requisitos complejos de entrega continua en el mundo real. Admite bifurcación / unión, ejecución de bucle y ejecución paralela de tareas. Extensible: el complemento Pipeline admite extensiones personalizadas de su DSL y múltiples opciones para la integración con otros complementos.
  3. ¿Cómo crear Jenkins Pipeline?
    El script Pipeline se implementa mediante el lenguaje Groovy, pero no es necesario que aprendamos Groovy
    Pipeline por separado. Admite dos gramáticas: gramática declarativa (declarativa) y Scripted Pipeline (scripted).
    Pipeline también tiene dos métodos de creación: Sí Ingrese el script directamente en la interfaz de la interfaz de usuario web de Jenkins; también puede crear un archivo de script Jenkinsfile y colocarlo en la biblioteca de código fuente del proyecto (generalmente recomendamos cargar Jenkinsfile Pipeline directamente desde el control de código fuente (SCM) en Jenkins). ).

Instalar el complemento Pipeline Administrar Jenkins-> Administrar complementos-> Complementos opcionales
Después de instalar los complementos, hay más tipos de "pipeline" al crear proyectos
Inserte la descripción de la imagen aquí

1. Extrae el código

Configure el repositorio de git, haga clic en流水线语法
Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí
Haga clic para generar secuencia de comandos de canalización
Inserte la descripción de la imagen aquí

2. Construya y compile

 		stage('编译构建') {
    
    
            steps {
    
    
                sh label: '', script: 'mvn clean package -Dmaven.test.skip=true'
            }
        }

Inserte la descripción de la imagen aquí

3. Implementación remota

Inserte la descripción de la imagen aquí
Haga clic para generar secuencia de comandos de canalización
Inserte la descripción de la imagen aquí

		 stage('远程部署') {
    
    
            steps {
    
    
            deploy adapters: [tomcat8(credentialsId: 'a2672517-c02b-4f62-ab3c-e6f70d08b98e', path: '', url: 'http://wangyitong.club:8080/')], contextPath: null, war: 'target/*.war'
            }
        }

Guión completo:

pipeline {
    
    
    agent any

    stages {
    
    
        stage('拉取代码') {
    
    
            steps {
    
    
            checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '614e4281-db76-4388-befc-c50588f5e751', url: 'https://gitee.com/L1692312138/ssm_web_war_jenkins.git']]])
            }
        }
        stage('编译构建') {
    
    
            steps {
    
    
                sh label: '', script: 'mvn clean package -Dmaven.test.skip=true'
            }
        }
         stage('构建完成') {
    
    
            steps {
    
    
                echo '构建完成'
            }
        }
        stage('远程部署') {
    
    
            steps {
    
    
            deploy adapters: [tomcat8(credentialsId: 'a2672517-c02b-4f62-ab3c-e6f70d08b98e', path: '', url: 'http://wangyitong.club:8080/')], contextPath: null, war: 'target/*.war'
            }
        }
    }
    post {
    
    
          always {
    
    
             emailext(
                subject: '构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!',
                body: '${FILE,path="email.html"}',
                to: '[email protected]'
             )
          }
    }
}


Installation Pipeline Script desde el complemento SCM
, solo estamos escribiendo código directamente en la interfaz de interfaz de usuario de Jenkins Pipeline, por lo que el script no es un mantenimiento conveniente, se recomienda colocar el script Pipeline
en el proyecto (con control de versiones) 1) establecer el archivo Jenkinsfile en el directorio raíz del proyecto, Copie el contenido en el archivo
Inserte la descripción de la imagen aquí
2)
Inserte la descripción de la imagen aquí
Haga referencia al archivo en el proyecto Haga clic en Crear para ver la salida de la consola
Inserte la descripción de la imagen aquí

En segundo lugar, implemente el paquete jar

1. Crea un proyecto de estilo libre

Proceso:
agregue pasos de operación posteriores a la compilación, luego configure la información ssh, escriba scripts, luego ejecute los scripts después de enviar el paquete, detenga el proceso e inicie el proceso.

2. Instale el complemento Publish Over SSH

Publicar sobre el complemento SSH

Inserte la descripción de la imagen aquí
Luego configura ssh
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

3. Agregue pasos de compilación para compilar y empaquetar

Inserte la descripción de la imagen aquí

4. Agregar pasos operativos posteriores a la compilación

Proyecto de configuración: "Agregar artefactos de compilación Sned a través de SSH para los pasos de la operación posterior a la compilación
Inserte la descripción de la imagen aquí

  1. Directorio de archivos de origen después de que se construya el proyecto

  2. Quitar prefijo

  3. Directorio de lanzamiento de directoty remoto

  4. El comando Exec emitió el comando ejecutado

Inserte la descripción de la imagen aquí

5. Escriba un script de shell

Primero busque el número de puerto del proyecto en ejecución por el nombre del proyecto, si existe, finalice el proceso
y luego reinicie el proyecto nuevamente.

Script de shell:

#!/bin/env bash

#PID=`ps -ef |grep 项目名称  |grep -v grep | awk '{print $2}'`
PID=`ps -ef |grep 'wxthepublic-1.0-SNAPSHOT.jar'  |grep -v grep | awk '{print $2}'`
if [ ! "$PID" ]
then # 这里判断TOMCAT进程是否存在
    echo $PID"进程不存在"
else
    echo "进程存在 杀死进程PID$PID"
    kill -9 $PID
fi
nohup java -jar 'wxthepublic-1.0-SNAPSHOT.jar' >/dev/null 2>log &
#根据重启后是否有当前应用判断启动是否成功
pid=$(ps -ef | grep java| grep 'wxthepublic-1.0-SNAPSHOT.jar'|awk -F '[ ]+' '{print $2}')
echo $pid
if [ -z $pid ]
then
  echo "启动失败"
  exit 1
else
  echo 'wxthepublic-1.0-SNAPSHOT.jar' :  $pid  "启动成功"
fi

6. Construya ahora

Haga clic en Generar ahora para ver
Inserte la descripción de la imagen aquí
el paquete jar que se ha escrito en el directorio de salida de la consola .
Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/DreamsArchitects/article/details/109325350
Recomendado
Clasificación