在进行jenkins插件安装与jenkins全局工具配置以后,正式开始jenkins的系统配置:

关于jenkins插件安装、jenkins全局工具配置与devops流水线搭建相关内容,可打开:

1.添加jenkins-server访问web-server凭据

打开jenkins服务页面,点击manage credentials,进行凭信的管理

devops流水线需求设计文档 devops流水线部署_云计算

点击domains下的 (global),添加凭信

devops流水线需求设计文档 devops流水线部署_devops_02

点击add credentials,进行添加

devops流水线需求设计文档 devops流水线部署_配置文件_03

输入以下内容

devops流水线需求设计文档 devops流水线部署_devops流水线需求设计文档_04

类型应该选择:Username with password

范围为全局

用户名一般都是root

密码是root对应的密码(一时不知道没关系,可以看后面的解决办法,重置成自己想要的密码)

Id号可以随意填写(确保jenkins中的凭信有唯一id即可)

描述则根据该凭信的实际情况进行填写即可

2.配置ssh协议连接主机

在jenkins服务页面点击manage Jenkins,点击configure system

devops流水线需求设计文档 devops流水线部署_云计算_05

跳转后,找到SSH remote hosts,点击添加信息

devops流水线需求设计文档 devops流水线部署_云计算_06

Web-server虚拟机ip为:192.168.61.133

devops流水线需求设计文档 devops流水线部署_devops_07

这时候不能连接到目标主机,有可能是一下几种原因之一或组合

可能是目标主机的22端口没打开

可能是凭信内容有问题

可能是目标主机没有安装/打开ssh服务

尝试了很多办法,最终解决了这个坑

个人总结了一套排错的方法:

通用的步骤为:

① 检查web-server(目标主机)是否安装了ssh

方法即使用

# ps -e | grep ssh命令

devops流水线需求设计文档 devops流水线部署_jenkins_08

如果输出了两个进程,那么说明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

devops流水线需求设计文档 devops流水线部署_devops_09

③ 服务跑起来以后,如果还是不能访问,也许和凭信正确性有关

很有可能一开始创建的凭信中,密码是错误的

因此可以在web-server修改root对应的密码

然后将新修改的root + 密码写入jenkins的凭信中

对root的密码进行重置的命令:

# passwd root

devops流水线需求设计文档 devops流水线部署_配置文件_10

将root的密码自定义之后,需要重启ssh服务

# service ssh restart

devops流水线需求设计文档 devops流水线部署_devops流水线需求设计文档_11

在web-server虚拟机上重启ssh之后,

返回jenkins-server虚拟机,配置jenkins凭信

④ 很重要的一步

如果解决到这里还没有接上连接

很有可能与防火墙有关系

使用ssh连接主机,访问的是目标主机的22端口

因此需要查看目标主机的防火墙状态

对于Ubuntu

查看防火墙状态的命令:

# ufw status

devops流水线需求设计文档 devops流水线部署_jenkins_12

与防火墙相关的其他指令我也一并放上来了:

关闭防火墙的命令:

# ufw disable

开启防火墙的命令:

# ufw enable

允许外部访问某端口的命令:

# ufw allow 端口号