Coding构建SSh登录教程

SSH 命令行 (Jenkins 原生)
持续集成中的 SSH 命令行插件通常用于授权构建机登录云服务器执行相应的命令与任务。通过 SSH 命令行插件,构建机可以针对云服务器执行以下操作:

将构建机上的文件推送到云主机;
将云主机上的文件拉取至构建机上;
远程登录云主机上执行命令;
将构建机上的脚本传输至云主机并执行;
远程登录云主机后删除文件;
参考构建计划模板

账号密码凭据 SSH Jenkinsfile 示例

 
pipeline {
  agent any
  stages {
    stage('阶段-1') {
      steps {
        checkout([
          $class: 'GitSCM',
          branches: [[name: env.GIT_BUILD_REF]],
          userRemoteConfigs: [[
            url: env.GIT_REPO_URL,
            credentialsId: env.CREDENTIALS_ID
          ]]])
        }
      }
 
 
      stage("阶段名称") {
        steps {
          withCredentials([usernamePassword(
            credentialsId: "${REMOTE_CRED}",
            passwordVariable: 'password',
            usernameVariable: 'userName'
          )]) {
            script {
                remoteConfig = [:]
                remoteConfig.name = "my-remote-server"
                remoteConfig.host = "${REMOTE_HOST}"
                remoteConfig.allowAnyHosts = true
                remoteConfig.user = userName
                // SSH 登录密码
                remoteConfig.password = password
                writeFile(file: 'test.sh', text: 'ls')
                sshCommand(remote: remoteConfig, command: 'for i in {1..5}; do echo -n \"Loop \$i \"; date ; sleep 1; done')
                sshScript(remote: remoteConfig, script: 'test.sh')
                sshPut(remote: remoteConfig, from: 'test.sh', into: '.')
                sshGet(remote: remoteConfig, from: 'test.sh', into: 'test_new.sh', override: true)
                sshRemove(remote: remoteConfig, path: 'test.sh')
            }
          }  
        }
      }
  }
}

私钥凭据 SSH Jenkinsfile 示例

pipeline {
  agent any
  stages {
    stage('阶段-1') {
      steps {
        checkout([
          $class: 'GitSCM',
          branches: [[name: env.GIT_BUILD_REF]],
          userRemoteConfigs: [[
            url: env.GIT_REPO_URL,
            credentialsId: env.CREDENTIALS_ID
          ]]])
        }
      }
 
 
      stage("阶段名称") {
        steps {
            // 使用当前项目下的凭据管理中的 SSH 私钥 凭据
          withCredentials([sshUserPrivateKey(
                  credentialsId: "${REMOTE_CRED}",
                  keyFileVariable: "privateKeyFilePath"
          )]) {
            script {
                remoteConfig = [:]
                remoteConfig.name = "my-remote-server"
                remoteConfig.host = "${REMOTE_HOST}"
                remoteConfig.allowAnyHosts = true
                remoteConfig.user = userName
                // SSH 私钥文件地址
                remoteConfig.identityFile = privateKeyFilePath
                writeFile(file: 'test.sh', text: 'ls')
                sshCommand(remote: remoteConfig, command: 'for i in {1..5}; do echo -n \"Loop \$i \"; date ; sleep 1; done')
                sshScript(remote: remoteConfig, script: 'test.sh')
                sshPut(remote: remoteConfig, from: 'test.sh', into: '.')
                sshGet(remote: remoteConfig, from: 'test.sh', into: 'test_new.sh', override: true)
                sshRemove(remote: remoteConfig, path: 'test.sh')
            }
          }  
        }
      }
  }
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三好学生~张旺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值