自动化部署工具Jenkins的介绍以及Centos系统下的源码搭建

一、Jenkins介绍
Jenkins是一个开源的、可扩展的持续CI【集成】、CD【交付】、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的什么平台,可以处理任何类型的构建或持续集成。
Jenkins是一个非常有名的CI工具,开源、免费,通过jenkins可以更加智能、快速的持续集成,尽早的发现代码里的问题并及时的部署上去。

二、Jenkins特性
1、Jenkins是利用java语言编写的,支持CI,CD;
2、易于安装部署配置:可通过yum安装,或下载rar包以及通过docker容器快速实现安装部署,可方便web界面配置管理;
3、消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告;
4、分布式构建:支持Jenkins能够让多台计算机一起构建/测试;
5、文件识别:Jenkins能能够跟踪哪次构建生成哪些jar包,哪次构建使用哪个版本的jar等;
6、丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。

三、Jenkins安装
注:安装最低配置:不少于256Mb内存,不低于1G磁盘,JDK版本>=8(openjdk也可以)
这里在安装Jenkins时,需要搭建的环境:
系统环境:1、Centos7【本机】
2、jdk-8u191-linux-x64.tar.gz
jdk下载地址:
链接:jdk-8u211-linux-x64.tar.gz下载
提取码:6r5f

3、apache-tomcat-9.0.14.tar.gz
官方安装包下载:
http://archive.apache.org/dist/tomcat/tomcat-9/v9.0.33/bin/apache-tomcat-9.0.33.tar.gz

4、jenkins源码包
下载路径:https://github.com/jenkinsci/jenkins/archive/jenkins-2.19.3.tar.gz
可通过wget下载,也可直接网页下载然后上传至服务器

1、部署jdk环境

tar zxvf jdk-8u191-linux-x64.tar.gz
mv jdk1.8.0_191/ /usr/local/jdk
echo 'PATH=$PATH:/usr/local/jdk/bin' >> /etc/profile
source /etc/profile

2、部署tomcat

tar zxvf apache-tomcat-9.0.14.tar.gz
mv apache-tomcat-9.0.14 /usr/local/tomcat
cd /usr/local/tomcat/bin/
./startup.sh 

如下,说明启动成功
在这里插入图片描述

这里,启动tomcat:
./startup.sh
关闭tomcat:
./shutdown.sh

在这里插入图片描述
1、然后测试是否成功
打开网站输入,IP:8080 ,显示如下,出现Apache Tomcat主页【小猫咪】,说明Tomcat已经启动成功
在这里插入图片描述
2、然后配置自启动,设置开启自启动
2.1、首先编辑/etc/rc.d/rc.local

vim /etc/rc.d/rc.local
在底部添加如下内容:
touch /var/lock/subsys/local  
/usr/local/tomcat/bin/startup.sh

重启下,检验是否生效

2.2、将tomcat加入系统服务
由于采用的是源码包安装的方式,无法像yum安装那样直接通过service tomcat9 status/start/stop,这里需要我们手动将tomcat9添加到系统服务
2.3、首先,我们需要将/usr/local/tomcat/bin目录下的catalina.sh脚本复制到目录/etc/init.d中,重命名为tomcat,文件名即为以后的服务名

cp /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat

2.3、然后修改刚才复制的脚本

vim /etc/init.d/tomcat
添加如下两行:
# chkconfig: 2345 10 90
# description:Tomcat service

在这里插入图片描述
注:这里第一行是服务的配置:第一个数字是服务的运行级,2345表明这个服务的运行级是2、3、4和5级(Linux的运行级为0到6);第二个数字是启动优先级,数值从0到99;第三个数是停止优先级,数值也是从0到99。
第二行是对服务的描述,如果该注释有误,在添加服务时会出现“tomcat不支持chkconfig”的错误提示。

注意:如果本机上已经安装了openjdk1.8.0,则不需要如下安装,如果没有,则执行如下操作:
安装openjdk

yum install java-1.8.0-openjdk-devel -y
# 然后配置环境变量
vim /etc/profile
# 添加如下配置
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64
export JRE_HOME=$JAVA_HOME/jre
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
# wq保存退出后,执行如下:
source /etc/profile
# 安装完成后,查看openjdk的安装路径
find / -name java
# 默认路径安装在 /usr/lib下
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/

2.4、接下来需要编译CATALINA_HOME和JAVA_HOME**
【这里的这两项需要以自己的jdk和tomcat安装目录为准,注意去掉行首的#】

CATALINA_HOME=/usr/local/tomcat  
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64 

在这里插入图片描述
wq保存退出

2.5、接下来添加权限和自启动

chmod 755 /etc/init.d/tomcat 
chkconfig --add tomcat 
#然后执行chkconfig --list查看是否添加成功
chkconfig --list

在这里插入图片描述
可以看到,tomcat已经存在于服务列表了~

3、部署Jenkins

wget https://github.com/jenkinsci/jenkins/archive/jenkins-2.19.3.tar.gz
tar -xf jenkins-jenkins-2.19.3.tar.gz
cd jenkins-jenkins-2.19.3

安装完成后,如下:
在这里插入图片描述

#然后将jenkins安装包移动到/usr/local下
mv jenkins-jenkins-2.19.3/ /usr/local/
cd /usr/local/
# 重命名jenkins
mv jenkins-jenkins-2.19.3/ jenkins

3.1、部署完jenkins后,然后需要进行nexus仓库的搭建【如果本地已经有搭建,则忽略】
3.1.1、修改pom.xml文件
jenkins源码下载完毕后,我们来修改jenkins源码中pom.xml文件。
【注意:jenkins源码中的pom.xml文件有多个,因为不同的源码中有不同的模块。这里,我们牵涉到的pom.xml文件主要是源码根目录的下pom.xml文件和war目录下的pom.xml文件。】
其中根目录下pom.xml文件,主要是jenkins编译时所使用的,war目录下的pom.xml文件主要是jenkins打包时所使用的。

因为我们的jenkins是自己编译和打包的,需要对相关的pom.xml文件做以下修改:
比如:修改jenkins打包后的名称和jenkins页面刷新频率。

3.1.2、修改jenkins仓库
为了比较快的编译、打包jenkins,需要我们修改jenkins的nexus仓库地址。
jenkins源码中,要修改nexus仓库地址,我们只需要修改源码根目录下的pom.xml文件即可。
我们只需要把该pom.xml文件中的http://repo.jenkins-ci.org/public/修改为自己搭建的maven仓库相关地址即可。

如果没有搭建maven仓库服务,可查询该篇文章:
https://blog.csdn.net/xu710263124/article/details/118307921

4、安装git【如果本机有git,则不需安装】

yum install git
# 查看是否成功
git --version
# 查看git命令地址
which -a git
#/usr/bin/git

到此,环境已经搭建完毕,开始对maven仓库进行私服,gitlab搭建。
4.1、gitlab搭建
4.2、新建 /etc/yum.repos.d/gitlab-ce.repo

vim /etc/yum.repos.d/gitlab-ce.repo

写入如下数据:

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

4.3、接下来安装gitlab-ce和makecache

sudo yum makecache
sudo yum install gitlab-ce-12.0.4 #(指定版本号)

安装完毕后。接下来,进行gitlab的url配置
4.4、配置 external_url

vim /etc/gitlab/gitlab.rb
# 修改external_url地址 为: http://本机地址:端口号/
external_url http://xxx.xxx.xxx.xxx:xxx/

在这里插入图片描述
这里的端口需设置一个没有没占用的端口
可通过 netstat -antup | grep xxx 查看
4.5、重启gitlab配置

gitlab-ctl reconfigure
gitlab-ctl restart #启动    

# gitlab其他操作
# gitlab-ctl start|stop|status|restart

执行如下所示:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

配置启动完毕后,接下来进行web访问
4.6、访问

http://本机地址:端口号/

在这里经常会遇到一个问题:
gitlab报错502,如下所示:
在这里插入图片描述
查阅资料,有的人说是机器内存太小,感觉不太可靠,还有说是需要提高服务器内存等。
其实不然,只是因为配置存在问题。
实际解决方案:
1、先停止gitlab,修改以下权限

sudo gitlab-ctl stop
# 执行命令
sudo chmod 755 /var/opt/gitlab/postgresql
# 执行命令
sudo systemctl restart gitlab-runsvdir

2、修改 /etc/gitlab/gitlab.rb 配置文件

vim /etc/gitlab/gitlab.rb

在这里插入图片描述

# 修改如下:
unicorn['port'] = 8890  # 注意,这里的端口不能和上面的external_url 的gitlab的端口冲突
unicorn['listen'] = 'xxx.xxx.xxx.xxx'  # 修改listen 为本机IP
gitlab_rails['webhook_timeout'] = 90
postgresql['shared_buffers'] = "256MB"
postgresql['max_connections'] = 200

2、然后使命令配置生效,重启服务

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

禁止 Gitlab 开机自启动:systemctl disable gitlab-runsvdir.service
启用 Gitlab 开机自启动:enable gitlab-runsvdir.service

可以通过查看gitlab日志

gitlab-ctl tail  # 查看日志
# 或者
gitlab-rake gitlab:check SANITIZE=true --trace  # 检查gitlab;

3、再次访问
在这里插入图片描述
问题解决~

之后需要进行编译和打包jenkins

3.1.3、启动jenkins
Jenkins编译和打包完毕后,我们现在来启动jenkins。

可通过java命令启动。如下:
java -jar xxx.war

3.1.4、Jenkis的web访问
IP地址:8080

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值