jenkins,自动部署scp传输错误的坑
admin
2023-02-26 18:21:03
0

环境: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';
···
至此,问题解决!完事

相关内容

热门资讯

特朗普对美伊达成协议再表乐观 ... 新华社华盛顿5月6日电 美国总统特朗普6日接受美国公共广播公司电话采访时,对美国同伊朗达成协议的前景...
美对伊战事或为白宫记协晚宴枪手... 当地时间5月6日,总台记者获悉,美国国土安全部在一份情报评估中指出,美国对伊朗发起的军事行动可能是白...
权威数读丨尽显中国活力!五一假... 全社会跨区域人员流动量超15亿人次,消费相关行业销售收入同比增长14.3%,电影票房突破7.5亿元…...
“最美婚姻登记点”长啥样 郑州市金水区民政局婚姻登记处为新人举行户外颁证仪式。 受访者供图三门峡市天鹅湖婚姻登记处设置的创意路...
消息人士称伊朗预计将于7日回应... △伊朗首都德黑兰(资料图)当地时间5月6日,据一位地区消息人士表示,伊朗预计将于5月7日向调解人提交...
大数据透视“五一”假期消费亮点 刚刚过去的“五一”假期,国内消费市场活力十足。5月1日至4日,商务部重点监测的78个步行街(商圈)客...
河南超有品 第十个“中国品牌日... 4月30日,走进位于新县的羚锐制药贴膏剂生产基地,没有印象中传统药材加工的浓郁气味,也没有传统车间的...
假日出游正当时 文旅市场活力涌 “五一”假期,全省接待国内游客6611.7万人次,实现旅游收入381.1亿元假日出游正当时 文旅市场...
坚定不移沿着习近平总书记指引的... 大风起兮风车转。支撑这个“追风巨人”不停转动的“芯”,主要产自洛阳。5月6日,在洛阳轴承集团股份有限...
燃气灶为什么换了感应针还是熄灭 问题:燃气灶为什么换了感应针还是熄灭回答:原因是电池有没有电,这是平时容易碰见的问题,发现点不着火时...