以下为具体步骤顷埋:
[图片上悔携耐传中...(image-872fa3-1618915357011-5)]
[图片上传中碧春...(image-aaa2bd-1618915357011-4)]
[图片上传隐配中...(image-c9d4ed-1618915357372-7)]
[图片上传中...(image-2392d9-1618915357372-3)]
[图片上传中...(image-4fa57-1618915357372-2)]
[图片上传中...(image-5b1056-1618915357372-1)]
[图片上传中...(image-7a8f2c-1618915357372-0)]
可以删除目录(仅能删除你自己目录部分)
问题:宽猛Jenkins默认使用jenkins用户去启动,jenkins用户并没有权限去执行ssh免密登陆,所以导致执行失败
注:配置linux双机互信后,jenkins也需要将公钥加入到目标机器,才能达到shell脚本中scp免密传输的条枯激件
一、验证登录
1、切换jenkins用户
# su jenkins
切换后还是root账号
2、分析解决:
2.1 应该是/etc/passwd文件中的/bin/bash被yum安装的时候变成了/bin/false
# vim /etc/passwd
jenkins:x:990:988:Jenkins Automation Server:/var/lib/jenkins:/bin/false( bash)
将bin/false改为/bin/bash
再次执行切换
# su jenkins
bash-4.1$
2.2 结果命令提示符的用户名不是jenkins而变成了 bash-4.1$,原因是在安装jenkins时,jenkins只是创建了jenkins用户,并没有为其创建home目录
# vim ~/.bash_profile
在文件的最后添加 export PS1='[\u@\h \W]\$',执行文件使修改项起作用
# source ~/.bash_profile
验证是否成功 # su jenkins
二、为jenkins系统用户开启免密登录
1、在Jenkins的使用过程中,如果在脚本中使用到sudo命令,有可能出现如下所示的错误:
sudo: no tty present and no askpass program specified
这是因为Jenkins服务器在执行sudo命令时的上下文有误,导致这个命令执行的异常。
2.1 解决方法:
# sudo visudo
在文件末尾加上jenkins ALL=(ALL) NOPASSWD: ALL
2.2 重启jenkins,测试
# su jenkins
# sudo su -s /bin/bash jenkins
测试成功,jenkins免密登录成功。
PS:如果误 *** 作修改了/etc/sudoers的权限来修改上述文件,则会导致如下所示的错误:
sudo :/etc/sudoers is world writable
sudo : no valid sudoers source found, quitting
sudo : unable to initialize poling plugin
这是Linux的一种保护机制。因此,如果出现上述误 *** 作,则需要执行如下命令来解决:
$ pkexec chmod 0440 /etc/sudoers
三、jenkins用户开通ssh免没巧袜密登录
1、安装ssh
# yum install ssh
1.1 将ssh服务设置开机自启
# sudo systemctl enable sshd
1.2 启动ssh
# sudo systemctl start sshd
2、生成jenkins用户秘钥证书
# su jenkins
# ssh-keygen -t rsa
2.1 查看是否生成成功
# /var/lib/jenkins/.ssh/
# ls
3、将公钥传输到目标linux系统
ssh-copy-id -i /var/lib/jenkins/.ssh/id_rsa.pub root@目标ip:path
------------------------------------------------------------------------------------------
参考:https://blog.csdn.net/weixin_43840640/article/details/90371472
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)