五、Jenkins系列_使用scp命令進行遠程文件複製遇到的坑

一、場景介紹

項目爲微服務項目,使用jenkins進行統一部署。基本思路是
1. 在jenkins服務器上使用git插件拉取項目代碼
2. 使用gradle進行打包
3. 將打好的jar包使用scp遠程複製到部署服務器上
4. 執行遠程shell腳本啓動jar包項目

二、坑

scp命令copy文件時需要輸入密碼,然而shell腳本中對密碼輸入的處理還是很麻煩的。有以下兩種方式:

1.使用密碼插件,自動輸入密碼

2.使服務器之間相互信任,這樣scp命令就不需要輸入密碼了

第一種方式,網上搜了下,感覺很麻煩,就沒有去嘗試了。第二種方式的配置過程如下:

1.複製jenkins服務器用戶目錄下的.ssh/id_rsa.pub中的內容

(沒有這個文件的話可以網上查查怎麼生成)。

cat ~/.ssh/id_rsa.pub

2.將上面複製的內容添加到應用服務器(也就是需要遠程部署應用的服務器)的.ssh/authorized_keys文件中。

一般這個文件初始都是空的,直接使用vim命令複製進去就好。

#如果文件是空的可以直接使用以下命令複製進去
echo 複製的內容 >> ~/.ssh/authorized_keys

這個時候環境配置就準備好了。

3.這個時候使用jenkins構建時,仍然失敗,提示權限不夠,這就是坑。

原因:雖然我們已經配置了相許信任,但是第一次使用scp命令需要先自己手動在shell中端中執行一次纔可以。那麼我們使用scp隨意複製個文件過去,輸入密碼。

之後再用jenkins複製文件就免輸密碼了。

發佈了158 篇原創文章 · 獲贊 184 · 訪問量 66萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章