在项目中布置测试环境,需要用 jenkins的ssh插件通过跳板机访问到目标主机(图1)。

尝试了jump host相关的配置,没有成功。 之后发现只使用ssh命令就可以做到,把设置过程

以及遇到坑做了个小结,希望能对大家有用。

Jenkins ssh跳板机 设置笔记_跳板机



1. ssh命令前置知识

其实整个过程中最核心的是 ssh 命令相关知识,可以参考以下链接,建议认真的看完。

https://www.cnblogs.com/z-books/p/7453053.html

 

另外这一类符号也需要了解:  $()  `
https://www.cnblogs.com/lidabo/p/6394523.html

 

 

2. jenkins任务中添加ssh插件

Jenkins ssh跳板机 设置笔记_ssh单引号_02

 

 3. ssh插件中编写脚本

这里的例子使用单引号的方式,在ssh中执行多个命令,来修改远端主机上zip_info.csv 中特定字符串。

--------------------------------------------------------------------------------------

ssh 192.168.0.226 '

 

newaddress="http://192.168.0.211/testFile/${foldername}/"

 

cd /home/root/server_test

 

oriaddress=$(awk -F "," '"'"'{if (NR==2){print $4}}'"'"' data/resourcedata/zip_info.csv)

result=$(sed -i "s|$oriaddress|$newaddress|" data/resourcedata/zip_info.csv)

echo $result

 

'

--------------------------------------------------------------------------------------

 

 

注意点:

- ssh 单引号中使用单引号,相应字符串为: '"'"'

- 如果命令中没有$() 等符号,使用EOF 也可以,

  例:

--------------------------------------------------------------------------------------

#开始

ssh 192.168.0.226 <<EOF        

 

exit

#结束

EOF            

--------------------------------------------------------------------------------------


    以上是在jenkins中配置通过跳板机在目标主机执行命令的一种方式,另外利用jenkins的配

置构造跳板机的方式我没有试验成功(jump host?),查了网上相关资料并不是太多,可能

是太过简单没人写。由于本职工作是码代码,这方面不太专业,有更好的做法欢迎一起讨论。