jenkins SSH 远程执行命令

jenkins安装完成后,需要在jenkins安装插件

在这里插入图片描述
Publish Over SSH
SSH Agent Plugin
SSH Pipeline Steps

安装完成后,重新启动Jenkins

在被远程的服务器上执行命令

 ssh-keygen -t rsa -b 4096

在这里插入图片描述

会生成2个文件 在目录 /root/.ssh

id_rsa id_rsa.pub

然后再执行命令

cat id_rsa.pub >> authorized_keys

当前目录下会多一个命令 authorized_keys文件

然后在Jenkins创建凭证
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
ID 不填会自动生成
username 就是服务器登录名
在这里插入图片描述
这里把id_rsa内容填在这个地方 保存即可

流水线远程测试代码

pipeline {
  agent any
  environment {
		SSH_CREDENTIALS_ID = 'd06eb529-1326-6cfa-82eb-dc78e532f1b2'
		SSH_REMOTE_PORT = 22
		SSH_REMOTE_HOST = '192.168.0.100'
	}
  stages {
    stage('部署') {
      steps {
        echo '部署中...'
        script {
            sh '''
cat > test.yaml << EOF
999999
EOF
'''
          // 把「CODING 凭据管理」中的「凭据 ID」填入 credentialsId,而 id_rsa 无需修改
          withCredentials([sshUserPrivateKey(
              credentialsId: "${SSH_CREDENTIALS_ID}", 
              keyFileVariable: 'identity',
              passphraseVariable: '',
              usernameVariable: 'userName')]) {
            // 声明服务器信息
            def remote = [:]
            remote.name = 'web-server'
            remote.allowAnyHosts = true
		    remote.port = SSH_REMOTE_PORT.toInteger()
		    remote.host = "${SSH_REMOTE_HOST}"
            remote.user = userName
            remote.identityFile = identity
            // SSH 上传文件到远端服务器
            sshPut remote: remote, from: 'test.yaml', into: '/tmp/'
            // 解压缩
            sshCommand remote: remote, command: "ifconfig"
            sshCommand remote: remote, sudo: true, command: "mkdir -p /opt/jenkins_abc"
          }
        }
 
        echo '部署完成'
      }
    }
  }
}

该示例执行完后,会生成 目录在 /tmp/test.yaml
在这里插入图片描述

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值