在进行jenkins插件安装与jenkins全局工具配置以后,正式开始jenkins的系统配置:
关于jenkins插件安装、jenkins全局工具配置与devops流水线搭建相关内容,可打开:
1.添加jenkins-server访问web-server凭据
打开jenkins服务页面,点击manage credentials,进行凭信的管理
点击domains下的 (global),添加凭信
点击add credentials,进行添加
输入以下内容
类型应该选择:Username with password
范围为全局
用户名一般都是root
密码是root对应的密码(一时不知道没关系,可以看后面的解决办法,重置成自己想要的密码)
Id号可以随意填写(确保jenkins中的凭信有唯一id即可)
描述则根据该凭信的实际情况进行填写即可
2.配置ssh协议连接主机
在jenkins服务页面点击manage Jenkins,点击configure system
跳转后,找到SSH remote hosts,点击添加信息
Web-server虚拟机ip为:192.168.61.133
这时候不能连接到目标主机,有可能是一下几种原因之一或组合
可能是目标主机的22端口没打开
可能是凭信内容有问题
可能是目标主机没有安装/打开ssh服务
…
尝试了很多办法,最终解决了这个坑
个人总结了一套排错的方法:
通用的步骤为:
① 检查web-server(目标主机)是否安装了ssh
方法即使用
# ps -e | grep ssh命令
如果输出了两个进程,那么说明ssh是启动成功的
其中一个是客户端进程,一个是服务端进程
如果没有启动成功,即没有输出两条信息,则需要安装ssh
② 如果已经确定自己安装好了ssh,但ssh服务跑不起来
说明配置文件可能出现了问题
配置文件即, /etc/ssh/sshd_config
这个问题在于,配置文件不存在或者配置文件内容不正确
在此,我放一个可以使用的配置文件内容
Port 22
AddressFamily any
SyslogFacility AUTHPRIV
PermitRootLogin yes
MaxAuthTries 6
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
UsePrivilegeSeparation yes
UseDNS no
Subsystem sftp /usr/sbin/sftp-server
(原配置文件中会有很多注释,在此只放了非注释的内容)
配置好以后,使用以下命令将ssh服务跑起来
# /etc/init.d/ssh start
③ 服务跑起来以后,如果还是不能访问,也许和凭信正确性有关
很有可能一开始创建的凭信中,密码是错误的
因此可以在web-server修改root对应的密码
然后将新修改的root + 密码写入jenkins的凭信中
对root的密码进行重置的命令:
# passwd root
将root的密码自定义之后,需要重启ssh服务
# service ssh restart
在web-server虚拟机上重启ssh之后,
返回jenkins-server虚拟机,配置jenkins凭信
④ 很重要的一步
如果解决到这里还没有接上连接
很有可能与防火墙有关系
使用ssh连接主机,访问的是目标主机的22端口
因此需要查看目标主机的防火墙状态
对于Ubuntu
查看防火墙状态的命令:
# ufw status
与防火墙相关的其他指令我也一并放上来了:
关闭防火墙的命令:
# ufw disable
开启防火墙的命令:
# ufw enable
允许外部访问某端口的命令:
# ufw allow 端口号