在項目中佈置測試環境,需要用 jenkins的ssh插件通過跳板機訪問到目標主機(圖1)。
嘗試了jump host相關的配置,沒有成功。 之後發現只使用ssh命令就可以做到,把設置過程
以及遇到坑做了個小結,希望能對大家有用。
1. ssh命令前置知識
其實整個過程中最核心的是 ssh 命令相關知識,可以參考以下鏈接,建議認真的看完。
https://www.cnblogs.com/z-books/p/7453053.html
另外這一類符號也需要了解: $() `
https://www.cnblogs.com/lidabo/p/6394523.html
2. jenkins任務中添加ssh插件
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?),查了網上相關資料並不是太多,可能
是太過簡單沒人寫。由於本職工作是碼代碼,這方面不太專業,有更好的做法歡迎一起討論。