jenkins使用shell指令碼必須切換jenkins使用者
https://blog.csdn.net/cdnight/article/details/81078191
安裝這篇解決的
正確使用指令碼的方式:
1、指令碼必須使用jenknins使用者,且所有命令必須使用sudo 否則報錯
#!/bin/bash -ilex
sudo su -s /bin/bash jenkins
sudo scp -r /var/lib/jenkins/jobs/moven-test/workspace/target/ssoserver.war [email protected]:/usr/local/apache-tomcat-8.5.31/webapps/
2、要有使用sudo的所有許可權,就是使用scp等命令不需要密碼
新增如下內容到 visudo裡面,然後強制儲存 wq!
[[email protected] ~]#visudo
jenkins ALL=(ALL) NOPASSWD: ALL
3、jenkins使用者必須可以免密登入
[[email protected] root]$ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
[[email protected] root]$ssh [email protected]
Last login: Tue Sep 25 15:51:41 2018 from 192.168.0.76
報錯解決:
1、
sudo: no tty present and no askpass program specified
解決:
切換到root下
vi /etc/sudoers
為使用者新增免密碼
jenkins ALL=(ALL) NOPASSWD: ALL
2、
Host key verification failed
原因是沒有用jenkins賬號,指令碼必須使用 sudo jenkins;且沒有在jenkins使用者下配置免密遠端登入tomcat主機