jenkins pipeline 通过withCredentials连接项目服务器进行自动部署

news/2024/7/12 2:29:04 标签: jenkins, 自动化

场景

在项目服务器上已经存在发布更新脚本(包含从git拉取代码,更新代码,发布),只需执行就可以,但是必须在服务器的指定目录下执行, 所以需要在Jenkins pipeline,能实现远程登录到项目服务器,并且去执行对应的脚本来更新

withCredentials实现方式

pipeline {
    agent any
    stages {
        stage('update enviroment') {
            steps{
                echo "update ****"
                dir('exist_dir') {  // 到指定目录执行一下内容
                   sh 'pwd'
                   checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '5806fc55-141d-4f26-9204-955b18c66ac0', url: 'https://****.git']]])
                    .....
                 }
            script{
                def remote = [:]    //定义远程连接的remote
                remote.name = "name***"
                remote.host = '*.*.*.*'
                remote.port = 22
                remote.allowAnyHosts = true
                withCredentials([sshUserPrivateKey(credentialsId: 'c71e7770-a7e0-4ef4-aa91-052a12250350', keyFileVariable: 'identity', usernameVariable: 'username')]) {   // 通过Pipeline Syntax 自动生成
                    remote.user = username
                    remote.identityFile = identity
                    echo "update ** "
                    sh "scp -r -P ${remote.port}  ${env.WORKSPACE}/exist_dir/* ${remote.user}@${remote.host}:/*/*/*"   //在Jenkins服务器上执行scp命令,把前面exist_dir中需要的文件拷贝到指定目录
                    sshCommand remote: remote, command: '/bin/bash **.sh' //链接远程服务器,执行脚本
                    sshCommand remote: remote, command: 'export PATH=$PATH:/**/** && /bin/bash **/deploy.sh' //通过export添加执行脚本需要的环境变量
                }
              }
            }
       }
       .....
    }
}

http://www.niftyadmin.cn/n/5018264.html

相关文章

Web Components详解-Shadow DOM插槽

前言 插槽实际上也属于组件通信的一种方式,但是由于其强大的api和实用性,我将其单独拆开来介绍。 定义 Slot(插槽)是Web Components中一个重要的特性,它允许在组件内部定义占位符,以便父组件可以向其中插…

CCF-CSP 25次 第三题【计算资源调度器】

计算机软件能力认证考试系统 这种题题面很长要迅速提取有效信息,可以根据后面的数据范围逐个的写,这样更容易理解题目,再就是选对数据结构很关键,再加上一点复杂的逻辑思维,基本可以满分 参考:AcWing 445…

NTP8928(20W内置DSP双通道D类功放芯片)

由工采网代理的韩国NF(耐福)NTP8928是一款内置DSP双通道D类音频功放芯片,芯片集成了多功能数字音频信号处理功能,高性能,高保真全数字PWM调制器和两个大功率全桥MOSFET。 该芯片工作电压范围:5V~28V;2通道…

springboot 中通过spring-cloud-vault组件绑定valut的配置

先上官网的正文链接: Binding applications to HashiCorps Vault with Spring in Cloud Foundry valut的用途是用来加密保存一些应用中的隐私信息,用户项目中有一些关键信息,但是不想以明文形式保存在代码或者本地配置文件中,因为这样有泄露…

vue项目中如何使用websocket(步骤)

WebSocket是一种在单个TCP连接上进行全双工通信的协议。Vue是一种流行的JavaScript框架,用于构建用户界面。结合WebSocket和Vue,可以实现实时数据通信和动态更新UI的效果。 在本教程中,我们将学习如何在Vue应用程序中使用WebSocket。 步骤1…

滑动窗口的最大值(双端队列,单调队列)

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 class Solution {public int[] maxSlidingWindow(int[] nums, int k) {LinkedList<Integer> deque new LinkedList<>();//双端队列&#xff0c;存储单调队列的下标int ans[] new int[nu…

基于小波神经网络的多分类预测,基于ANN的分类预测

目标 背影 BP神经网络的原理 BP神经网络的定义 BP神经网络的基本结构 BP神经网络的神经元 BP神经网络的激活函数, BP神经网络的传递函数 小波神经网络(以小波基为传递函数的BP神经网络) 代码链接:基于小波神经网络的多分类代码,基于自适应学习率动量因子梯度下降BP神经网…

如何使用SQL系列 之 如何在SQL中使用联合(UNION)

引言 许多数据库传播信息在不同的表基于它们的含义和上下文。在检索数据库中保存的数据信息时&#xff0c;经常需要同时引用多个表。 结构化查询语言(SQL)提供了多种从不同表中检索数据的方法&#xff0c;例如集合操作。更具体地说&#xff0c;集合运算符UNION在大多数关系数…