jenkins pipeline执行shell

58 篇文章 3 订阅

jenkins安装sshPublishe插件配置ssh
在这里插入图片描述
生成流水线
在这里插入图片描述

片段

            stage('Deploy') {
            steps {       
                
     sshPublisher(publishers: [sshPublisherDesc(configName: 'aws', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'free -m; ifconfig', execTimeout: 300, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])
               }
                   }	    
               		  }
						}
                		}

完整pipeline

pipeline {
  agent {
    kubernetes {
      yaml '''
        apiVersion: v1
        kind: Pod
        metadata:
          labels:
            some-label: jenkins
        spec:
          containers:
          - name: docker
            image: registry-intl.cn-shenzhen.aliyuncs.com/sztest/sz:dockerding
            command:
            - dockerd
            - --host=unix:///var/run/docker.sock
            - --host=tcp://0.0.0.0:8000
            securityContext:
              privileged: true
            tty: true
            
          - name: kubectl
            image: registry.cn-shenzhen.aliyuncs.com/jbjb/csi:kubectl
            command:
            - cat
            tty: true
          - name: golang
            image: golang:1.17.8-alpine3.15
            command:
            - cat
            tty: true

          - name: agent
            image: registry-intl.cn-shenzhen.aliyuncs.com/sztest/sz:inbound-agent
            command:
            - cat
            tty: true
        '''
   		 }
	 }
	 
environment {

    name="gaservers"
    image="regiliyuncs.com/sztest/sz:${name}$BUILD_ID"
        }

options{  
timestamps () 
disableConcurrentBuilds() 
buildDiscarder(logRotator(numToKeepStr: '8'))
					}

    stages {
      stage('Get Code && Build Package') {
        steps {  
             container('golang') {
          checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'gitpull', url: 'https://g.gonga.cc/ga/ga_server_new.git']]])
            sh '''
			go build -o server .
            '''
            
         }
           } 
            }

      				    
    stage('Docker Build') {
      steps {
        container('docker') {
   withCredentials([usernamePassword(credentialsId: 'dockers', passwordVariable: 'Password', usernameVariable: 'Username')]) {
                    sh ''' 
                    docker login -u$Username -p$Password registry-intl.cn-shenzhen.aliyuncs.com
                    docker build -t ${image} -f Dockerfile-k8s .   
                    docker push ${image}
                    echo ${image}
                    docker rmi ${image}
                     '''

                }
		        }
      			    }
      				    }
      		
            stage('Deploy') {
            steps {       
                
     sshPublisher(publishers: [sshPublisherDesc(configName: 'aws', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'free -m; ifconfig', execTimeout: 300, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])
               }
              }    
     			 }
					}
					}
     
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Jenkins可以通过SSH插件远程执行shell脚本。具体步骤如下: 1. 安装SSH插件:在Jenkins的插件管理页面中搜索SSH插件并安装。 2. 配置SSH连接:在Jenkins的系统管理页面中,点击“系统设置”,找到“SSH远程执行”一栏,配置SSH连接信息,包括SSH服务器地址、端口、用户名、密码或私钥等。 3. 创建构建任务:在Jenkins的主界面中,点击“新建任务”,选择“自由风格项目”,配置任务名称和描述等基本信息。 4. 配置构建步骤:在任务配置页面中,找到“构建”一栏,点击“增加构建步骤”,选择“执行远程命令”,在“命令”文本框中输入要执行shell脚本命令。 5. 保存并运行任务:完成以上步骤后,保存任务配置并点击“立即构建”按钮,Jenkins会自动连接SSH服务器并执行指定的shell脚本命令。 ### 回答2: Jenkins是一个用于自动化构建、测试和部署应用程序的开源工具。它为开发人员提供了一种有效的方式来自动化构建和测试应用程序,并能够为部署提供持续集成和交付的支持。 为了实现Jenkins的自动化部署,我们可以使用远程执行shell脚本的方式。 首先,我们需要在Jenkins服务器上安装SSH插件,并将我们的目标服务器添加到Jenkins中作为可用节点。 接下来,可以创建一个新的Jenkins项目,并在项目的“构建环境”中配置“Execute shell script on remote host using ssh”选项。在配置中,我们需要提供远程服务器的IP地址、SSH用户名和密码,以及我们希望在远程服务器上运行的shell脚本。 在此之后,我们可以编写我们的shell脚本,并将其上传到Jenkins服务器中,然后将其添加到Jenkins构建的“构建步骤”中。然后,当Jenkins项目运行时,系统将远程连接到我们的目标服务器,并在服务器上执行我们的shell脚本。 在执行远程shell脚本时,需要注意远程服务器的用户权限和目录结构。我们需要确保在目标服务器上运行的脚本具有足够的权限来访问所需的资源,并且要确保脚本被正确地放置在目标服务器上的正确位置。 总之,Jenkins远程执行shell脚本是一个非常强大的工具,可以帮助我们自动化部署应用程序,并且可以透明地处理所有的系统和用户权限。当你开始掌握Jenkins自动化部署的技巧时,你会发现它是一种非常有用的技能,能够加速你的工作流程并提高你的效率。 ### 回答3: Jenkins是一个用于构建和测试软件项目的工具,它支持远程执行shell脚本,可以帮助开发人员在持续集成和持续交付过程中自动化构建和测试。Jenkins远程执行shell脚本的过程主要分为两步:设置Jenkins的远程执行环境和创建Shell脚本。 第一步,为了设置Jenkins的远程执行环境,需要在Jenkins服务器中添加SSH Plugin插件,此外还需要设置服务器的凭据,确定Jenkins用哪个用户账号来连接远程服务器。通过“构建环境”的设置,可选择在远程机器上运行构建。同时,在构建的设置中,可以设置要执行的远程Shell脚本的路径。 第二步是创建远程执行Shell脚本,这个过程主要包括编写脚本和上传脚本。编写Shell脚本的时候,需要注意脚本的格式和内容,最好通过测试本地Shell脚本来保证远程执行的顺利。上传脚本的方式有很多,可以手动上传,也可以使用Jenkins提供的Publish Over SSH插件来自动上传文件。 在设置好Jenkins的远程执行环境和创建好Shell脚本后,即可通过Jenkins来远程执行Shell脚本。执行的过程中,可以通过Jenkins的Console输出来查看执行情况,也可以通过Jenkins的构建历史记录来查看执行结果和异常情况。同时,Jenkins还提供了一些插件和工具来帮助优化执行效率和监控执行过程,如Build Monitor插件和Performance Plugin插件等。 总之,Jenkins的远程执行Shell脚本功能是非常有用的,可以帮助开发人员在持续集成和持续交付中自动化构建和测试,提高开发效率和代码质量。为了实现远程执行,开发人员需要了解Jenkins的相关设置和Shell脚本编写技巧,进一步提高自身的技术水平和开发能力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值