五、Jenkins系列_使用scp命令進行遠端檔案複製遇到的坑
阿新 • • 發佈:2018-12-27
一、場景介紹
專案為微服務專案,使用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複製檔案就免輸密碼了。