Jenkins部署详细教程

Jenkins简介

Jenkins 是一个可扩展的持续集成引擎。是一个自成一体的开源自动化服务器, 可用于自动化与构建、测试、交付或部署软件相关的各种任务; Jenkins是一个高度可扩展的产品, 其功能可以通过安装插件来扩展。

在gitlab里可以完成源代码的管理,但是对于研发将代码推送到对应的分支,以及仓库里之后,它应该如何触动自动化的构建,打包,以及上线。这个就需要Jenkins去完成,在jenkins里的所完成的工作叫流水线工作。

在项目里完成的成品,就是将公司研发所写的代码上线到对应的生产服务器中,或者测试的服务器集群中,完成这一系列动作,都是在Jenkins里进行完成的,有一个单元叫job,使用单元job就可以完成在里面所要完成的一些代码下载等等一系列动作。

Jenkins部署

在正常的生产环境中,有主服务器,从服务器。

主服务器只负责将对应的任务调度(安排)到从服务器中进行运行,真正运行打包构建下载代码以及上线服务的是agent也就是从服务器在工作。

可以只部署一台jenkins,但是要完成操作的话,需要两台机器,可以把他们的配置调小一点,每台机器给两个G的空间应该就差不多够用,把它组建起来试一下,今后在去操作的时候,直接用主服务器去操作也可以,主服务器也可以工作,假设没有指定从服务器,主服务器也可以操作。

在正常的生产配置,Jenkins主服务器大概给到两核八G就够用。但正常情况下,Jenkins里由于是对于cpu网络的要求比较高,最好是8核8G或者16核64G。毕竟主服务负责调度任务,cpu吃的比较高,所以就8核8G,16核16G都可以。做实验2核8G.slave机器会运行相关的流水线任务,所以它对内存的要求高一些,对于cpu的要求最少是4核,内存最好给到16G,保持1:4的比列。自己做实验可以1核2G.2核4G.做实验耗费不了那么大的资源,但要保证它起来。

主服务器部署Jenkins

下图圆圈,LTS代表长期支持版本,一旦有bug,立马就会给更新。右边是开发版本,他不会给你更新,除非你主动更新。

 这种方式看着有点low,但是在企业用这种方式的话,升级非常方便,如果用war包再部署到tomcat里,这种升级方式,要是把war包替换成新版的war包,里面的插件还要重新下载一遍,里面的配置也要重新配置一遍,相当于从头再做一遍,所以不推荐用war包,war包在安装完成之后和yum安装完之后的效果是一模一样,没有任何区别,而且关于后续的升级也很麻烦。

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo  先下载证书

rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key  导入Jenkins安装仓库里所需要的一些验证的key

yum -y install fontconfig java-11-openjdk-devel  安装前置的配置,以及java jdk的环境,顺便安装devel

yum -y install jenkins   安装Jenkins

安装完毕Jenkins之后,要调一个地方

vim /usr/lib/systemd/system/jenkins.service  进入配置文件

 把超时时间改为900秒

systemctl enable --now jenkins   启动起来

如果启动报错,再接着起     是因为java的应用有一个特点,启动慢,有时候cpu,内存有阻塞,它就hang着,一直hang到超时时间才启动。它不是报错,是因为java程序启动的过程中对环境的要求比较高,仅限于java。写的好的程序不会有这种问题。
验证 去浏览器访问    ip:8080   

 能访问  返回装一个ngixn做反向代理,因为公司内部人员包括测试,研发,它们不会去加8080端口的,它们只会去输域名,所以要用nginx做解析,且给它做一个反向代理,代理过去。哪台机器都可以。

 装nginx

在Jenkins机器中装一个nginx

cd /etc/nginx/conf.d/

vim jenkins.ggjt.work.conf  写一个配置文件

去Jenkins的官网找

 

 

 上图右边就是nginx里要添的反向代理到Jenkins的配置。复制到配置文件。

 设置一下我要复制,set pase

 改ip,改域名

 nginx -t 检查一下语法

 nginx -s reload  重新加载一下配置

去域名的dns解析记录里,将域名解析到nginx服务上面,不是解析到Jenkins的机器,是解析到代理Jenkins的那台nginx机器的ip。

 然后去浏览器访问: jenkins.ggjt.work

但是提示不安全, 去申请证书。申请一个jenkins

 生成证书

[root@jenkins conf.d]# certbot certonly --manual --preferred-challenges dns -d jenkins.ggjt.work  生成密钥

[root@jenkins jenkins.gkjt.work]# mkdir /var/lib/jenkins/ssl/

[root@jenkins jenkins.gkjt.work]# mv fullchain1.pem  privkey1.pem /var/lib/jenkins/ssl/

去域名的dns解析记录里,解析证书。

nginx存放密钥的路径

   nginx -t 检查一下语法,没问题之后去 nginx -s reload ,然后去浏览器访问。

 

 

 

 

 这里就是不能用ip访问的原因,一旦设定改起来非常难。

 

 安装完毕。

【注意】少熬夜,多看书。

猜你喜欢

转载自blog.csdn.net/weixin_53150440/article/details/127697205