中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jenkins,自動部署scp傳輸錯誤的坑

發布時間:2020-07-05 11:46:21 來源:網絡 閱讀:754 作者:飯特希 欄目:系統運維

環境:centos7

版本:jenkins-2.176.3-1.1.noarch.rpm

問題:使用root帳號安裝jenkins之后,配置自動部署,打包完成項目不能scp到項目服務器,(測試服務器ssh端口默認22改為6688之后)提示
Host key verification failed. lost connection
[JENKINS] Archiving /opt/jenkins/workspace/test-microservice/base-zuul/target/base-zuul-0.0.1-SNAPSHOT.jar to com.zjgf/base-zuul/0.0.1-SNAPSHOT/base-zuul-0.0.1-SNAPSHOT.jar
[test-microservice] $ /bin/bash /tmp/jenkins8821230735005579726.sh
channel stopped
Host key verification failed.
lost connection
upload files fail

解決方法:
1、rpm包安裝的jenkins默認添加jenkins用戶 默認shell為:
jenkins:x:992:989:Jenkins Automation Server:/var/lib/jenkins:/bin/false

2、修改默認shell
jenkins:x:992:988:Jenkins Automation Server:/var/lib/jenkins:/bin/bash

3、切換到jenkins用戶
[root@node60 ~]#su - jenkins
bash-4.2$

4、解決變量問題
可以看到jenkins用戶沒有變量,原因是在安裝jenkins時,jenkins只是創建了jenkins用戶,并沒有為其創建home目錄。所以系統就不會在創建用戶的時候,自動拷貝/etc/skel目錄下的用戶環境變量文件到用戶家目錄,也就導致這些文件不存在,出現-bash-4.2#的問題了。

5、修改jenkins用戶變量
以下命令是在切換到 jenkins用戶下執行的(重要事項再說一次,su - jenkins 之后再執行命令)!(只是用戶現在顯示的是-bash-4.2)這個時候不要慌,執行下面步驟:

vim ~/.bash_profile

執行上面的命令,即使沒有.bash_profile文件,linux會自動創建。
然后再添加這句

export PS1='[\u@\h \W]\$'

:wq (保存退出)

然后再刷新.bash_profile文件,使其起作用

source ~/.bash_profile
然后就看到當前的變量生效了

[jenkins@node60 root]$

現在可以看到jenkins用戶shell變量正常了。

6、再次測試
再次執行jenkins任務,發現還是報錯,在Jenkins的使用過程中,如果在腳本中使用到sudo命令,有可能出現如下所示的錯誤:
sudo: no tty present and no askpass program specified
這是因為Jenkins服務器在執行sudo命令時的上下文有誤,導致這個命令執行的異常。

7、解決方案:
切換到root或者管理員賬戶

[root@node60 ~]# visudo
在文件中加上一行
Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
jenkins ALL=(ALL) NOPASSWD: ALL

再次執行jenkins任務,發現還有報錯,經過排查需要在測試服務器上添加jenkins用戶的密鑰

cat /var/lib/jenkins/.ssh/id_rsa.pub

系統提示我 - -!
cat: /var/lib/jenkins/.ssh/id_rsa.pub: 沒有那個文件或目錄
于是
創建jenkins用戶的公鑰文件id_rsa.pub (su - jenkins 以下命令在jenkins用戶shell中執行!!!)

[jenkins@node60 root]$ ssh-keygen -t rsa

一路回車下去,然后再查看生成的jenkins密鑰對

[jenkins@node60 root]$ cat /var/lib/jenkins/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaWGfcK3(太長了,默默的刪除一部分)WEDv64dQ+oG/IN2lDQa/ jenkins@node60

然后復制jenkins生產的公鑰,登錄測試服務器,添加到測試服務器部署帳號的~/.ssh/authorized_keys

[jenkins@test1 ~]$ vim ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaW0Mqv0xwKGfcK3WEDv645lPuhXXReY3jGdQ+onGwqym9G/IN2lDQa/ jenkins@node60
保存退出

8、再次測試
再次編輯jenkins任務 JOB*{需要注意,scp和ssh使用的指定端口號參數 -P 和 -p 在jenkins中區分大小寫}
以下為我測試時編寫的測試腳本
···
!/bin/bash
上傳路徑
UPLOAD="/opt/MService/file/upload"
scp -P 6688 /opt/jenkins/workspace/test-aaa-master/target/aaa-0.0.1-SNAPSHOT.jar jenkins@test1:$UPLOAD;
執行測試服務器更新腳本
ssh -t -p 6688 jenkins@test1 'sh /home/jenkins/.sh/aaa.sh';
···
至此,問題解決!完事

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴里| 宁武县| 汉寿县| 玉林市| 防城港市| 临汾市| 高台县| 民乐县| 怀安县| 和政县| 临桂县| 嘉禾县| 涞源县| 祥云县| 余江县| 绥德县| 威海市| 永善县| 金坛市| 石屏县| 定兴县| 邵东县| 涪陵区| 延吉市| 凤冈县| 观塘区| 高雄市| 昭苏县| 阿鲁科尔沁旗| 个旧市| 乐都县| 博湖县| 资兴市| 龙门县| 新密市| 云和县| 闽清县| 永城市| 沙湾县| 句容市| 靖宇县|