jenkins远程服务器执行shell

axing
2025-08-03 / 0 评论 / 5 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2025年08月03日,已超过20天没有更新,若内容或图片失效,请留言反馈。

一、jenkins免密登录配置
1.1安装插件

Publish Over SSH

mdv8wiau.png

1.2配置SSH免密登录

在jenkins主机执行操作。
root@k8s-03:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:bIagD4/Gebf8fslUICpXfV6Qf6+7nw+Z8vX/5ETwWcc root@k8s-03
The key's randomart image is:
+---[RSA 3072]----+
|         .  .o   |
|        o o o .. |
|    .  o . + o. E|
|   ...oo    o .o=|
|  o  o. S  .   o+|
| . *   o  .    +.|
|  = + .  o .. +.+|
| . . o .  +  o.*o|
|      ooo.    +=@|
+----[SHA256]-----+
root@k8s-03:~# ssh-copy-id 192.168.30.181
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.30.181's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.30.181'"
and check to make sure that only the key(s) you wanted were added.

root@k8s-03:~# ssh-copy-id 192.168.30.180
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.30.180's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.30.180'"
and check to make sure that only the key(s) you wanted were added.

root@k8s-03:~# ssh 192.168.30.180
Welcome to Ubuntu 22.04.4 LTS (GNU/Linux 5.15.0-151-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

  System information as of Sun Aug  3 05:39:01 AM UTC 2025

  System load:  0.3642578125       Processes:                314
  Usage of /:   28.4% of 49.48GB   Users logged in:          1
  Memory usage: 13%                IPv4 address for docker0: 172.17.0.1
  Swap usage:   0%                 IPv4 address for ens33:   192.168.30.180

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

Expanded Security Maintenance for Applications is not enabled.

66 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status

New release '24.04.2 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Sun Aug  3 04:48:27 2025 from 192.168.30.1
root@k8s-01:~# exit
logout
Connection to 192.168.30.180 closed.

1.3插件配置

在Jenkins中【系统管理】—【系统配置】,找到“Publish over SSH”来配置该插件信息。
#key通过查看jenkins服务器cat .ssh/id_rsa获取。
#或者填写path to key路径/root/.ssh/id_ras。
root@k8s-03:~# cat .ssh/id_rsa
id_rsa      id_rsa.pub  
root@k8s-03:~# cat .ssh/id_rsa
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----

mdv99e8c.png

二、验证测试
2.1创建自由风格项目
mdv9ay7j.png
2.2创建测试脚本

在jenkins服务器ssh-test目录下
root@k8s-03:~# mkdir -p /var/lib/jenkins/workspace/ssh-test
root@k8s-03:~# cd /var/lib/jenkins/workspace/ssh-test/
root@k8s-03:/var/lib/jenkins/workspace/ssh-test# ls
root@k8s-03:/var/lib/jenkins/workspace/ssh-test# pwd
/var/lib/jenkins/workspace/ssh-test
root@k8s-03:/var/lib/jenkins/workspace/ssh-test# vi test.sh
root@k8s-03:/var/lib/jenkins/workspace/ssh-test# cat test.sh 
#!/bin/bash
date >> /tmp/date.txt

2.3添加构建步骤
mdv9ht8m.png

Name:“系统管理>系统配置”设置的SSH Sverver的名字Name。

Source files:允许为空,复制到远程主机上的文件,**/*意思是当前工作目录下所有问题

Remove prefix:允许为空,文件复制时要过滤的目录。

Remote directory:允许为空,文件得到到远程机上的目录,如果填写目录名则是相对于“SSH Server”中的“Remote directory”的,如果不存在将会自动创建。

Exec command:在这里填写在远程主机上执行的命令。

2.4工作空间

要理解的细节
1、Jenkins是k8s部署起来的时候,如果没有固定pod的启动的节点则是会变化的。那么pod挂载卷对应的目录也会变化。
2、如果要指定节点则需要配置(General)里面加上对应的节点,节点必须提前配置好https://axzys.cn/index.php/archives/572/

mdvp4x77.png
2.5构建查看结果
mdvp5mgg.png

由控制台打印内容可知,已经成功传输一个文件。

登录服务器查看执行结果。
root@k8s-02:~# cd /opt/jenkins/
root@k8s-02:/opt/jenkins# ls
remoting  test.sh
root@k8s-02:/opt/jenkins# cat test.sh 
#!/bin/bash
date >> /tmp/date.txt
root@k8s-02:/opt/jenkins# cat /tmp/date.txt 
Sun Aug  3 09:35:34 AM UTC 2025
root@k8s-02:/opt/jenkins# 
0

评论 (0)

取消