一、場景介紹
項目爲微服務項目,使用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複製文件就免輸密碼了。