1. 程式人生 > >五、Jenkins系列_使用scp命令進行遠端檔案複製遇到的坑

五、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

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

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

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

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

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

之後再用jenkins複製檔案就免輸密碼了。