部署Jenkins

一、介绍 Jenkins

、Jenkins概念

  Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许持续集成。

2、Jenkins目的

① 持续、自动地构建/测试软件项目。

② 监控软件开放流程,快速问题定位及处理,提示开放效率。

3、特性

① 开源的java语言开发持续集成工具,支持CI,CD。

② 易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。

③ 消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。

④ 分布式构建:支持Jenkins能够让多台计算机一起构建/测试。

⑤ 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。

⑥ 丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。

4、产品发布流程

产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 -> 运维人员发布上线

持续集成(Continuous integration,简称CI)

持续交付(Continuous delivery)

持续部署(continuous deployment)

二、安装Jenkins

1、安装JDK

Jenkins是Java编写的,所以需要先安装JDK,这里采用yum安装,如果对版本有需求,可以直接在Oracle官网下载JDK;也可自己编译安装。

2、安装Jenkins

1、上传 jdk11 tomcat jenkins.war

#下载地址


[root@jenkins ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.83.tar.gz  ip_fixed.sh  jdk-17_linux-x64_bin.tar.gz  jenkins.war  yum-server.sh

2、安装依赖插件 

#安装依赖插件
[root@jenkins ~]# yum -y install dejavu-sans-fonts fontconfig xorg-x11-server-Xvfb

 3、解压tar包,改包名

# 解压jdk
[root@jenkins ~]# tar xf jdk-17_linux-x64_bin.tar.gz -C /usr/local/

# 解压tomcat
[root@jenkins ~]# tar xf apache-tomcat-9.0.83.tar.gz -C /usr/local/
[root@jenkins ~]# cd /usr/local/
[root@jenkins local]# ls
apache-tomcat-9.0.83  bin  etc  games  include  jdk-17.0.7  lib  lib64  libexec  sbin  share  src

# 改包名
[root@jenkins local]# mv apache-tomcat-9.0.83/ tomcat
[root@jenkins local]# mv jdk-17.0.7/ java
[root@jenkins local]# ls
bin  etc  games  include  java  lib  lib64  libexec  sbin  share  src  tomcat

 4、配置环境,检测jdk环境是否安装成功

[root@jenkins local]# vim /etc/profile.d/java.sh
JAVA_HOME=/usr/local/java
TOMCAT_HOME=/usr/local/tomcat
PATH=$PATH:$JAVA_HOME/bin:$TOMCAT_HOME/bin

# 重载环境
[root@jenkins local]# source /etc/profile.d/java.sh

# 检测Java环境是否安装成功
[root@jenkins local]# java -version
java version "17.0.7" 2023-04-18 LTS
Java(TM) SE Runtime Environment (build 17.0.7+8-LTS-224)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.7+8-LTS-224, mixed mode, sharing)

5、启动tomcat,浏览器查看是否启动成功 

[root@jenkins local]# cd /usr/local/tomcat/
[root@jenkins tomcat]# ./bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.

浏览器查看    ip:8080

部署Jenkins_第1张图片

 6、将jenkins.war包拷贝到/usr/local/tomcat/webapps/目录下

[root@jenkins tomcat]# cp /root/jenkins.war webapps/
[root@jenkins tomcat]# ./bin/shutdown.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
[root@jenkins tomcat]# ./bin/startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.

访问 ip:8080/jenkins (192.168.58.145:8080/jenkins)

首先需要解锁Jenkins,请在/var/lib/jenkins/secrets/initialAdminPassword中查看文件。

[root@jenkins ~]# cat /root/.jenkins/secrets/initialAdminPassword
d7da6b00ad444d10b6c001d255d73fac
[root@jenkins ~]# 

部署Jenkins_第2张图片

选择需要安装的插件

选择默认推荐即可,会安装通用的社区插件,剩下的可以在使用的时候再进行安装。  

部署Jenkins_第3张图片

部署Jenkins_第4张图片

设置Admin用户和密码  

部署Jenkins_第5张图片 成功登录Jenkins

部署Jenkins_第6张图片

部署Jenkins_第7张图片

3、安装完后,简单的配置
1、将语言更改为中文

部署Jenkins_第8张图片

部署Jenkins_第9张图片
2、系统配置

部署Jenkins_第10张图片

部署Jenkins_第11张图片

部署Jenkins_第12张图片

部署Jenkins_第13张图片

部署Jenkins_第14张图片

部署Jenkins_第15张图片

部署Jenkins_第16张图片

部署Jenkins_第17张图片 通过配置相应的系统信息,最后在测试配置,出现上述信息则表示测试邮箱信息发送成功,也可以在邮箱中查看信息。 

部署Jenkins_第18张图片

 3、安装插件

maven、blue ocean 、nodejs、gitlab

部署Jenkins_第19张图片

部署Jenkins_第20张图片

部署Jenkins_第21张图片 

部署Jenkins_第22张图片

部署Jenkins_第23张图片

4、配置工具

部署Jenkins_第24张图片

部署Jenkins_第25张图片 安装git

[root@jenkins ~]# yum - y install git

 在网页端添加git的相关信息部署Jenkins_第26张图片

 安装maven,并在页面填写maven相关的信息

[root@jenkins ~]# ls
anaconda-ks.cfg                jdk-17_linux-x64_bin.tar.gz
apache-maven-3.8.5-bin.tar.gz  jenkins.war
apache-tomcat-9.0.83.tar.gz    yum-server.sh
ip_fixed.sh
                     
[root@jenkins ~]# tar xf apache-maven-3.8.5-bin.tar.gz  -C /usr/local/
[root@jenkins ~]# cd /usr/local/
[root@jenkins local]# mv apache-maven-3.8.5/ maven

[root@jenkins local]# vim /etc/profile.d/maven.sh
MAVEN_HOME=/usr/local/maven
PATH=$PATH:$MAVEN_HOME/bin

[root@jenkins local]# source /etc/profile.d/maven.sh
[root@jenkins local]# mvn -version
Apache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0)
Maven home: /usr/local/maven
Java version: 17.0.7, vendor: Oracle Corporation, runtime: /usr/local/java
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"
[root@jenkins local]# 

部署Jenkins_第27张图片

保存信息。

4、部署项目

1、新建任务

部署Jenkins_第28张图片

2、配置项目

以下要用到gitlab的相关部署信息,可以参考http://t.csdnimg.cn/nrPaF

部署Jenkins_第29张图片

部署Jenkins_第30张图片

 在gitlab服务器端获取私钥,并填写在页面相应位置

[root@gitlib ~]# cat .ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAtS6vhJiLwWFkrNH05WsrJrgcKjLzkyZfvviEktcWEb7bQS9E
pOFnvHIdHs7ncPjTDci0sktvZlVbAsSiy+p4CU0iIAeMcXAECe4QXw+5JxPDBewj
UStKvHW+stDHXUNbW935/GRKJxgMvgYJItVlci0libg2b5FNt7l+SQg8mfOxdtDk
qqrSmx9TBWf5bKt1x7XGsJP3xsFGbVY3eU8eJfqXQlkWWakXBLNOUhTVwQtktlM8
F3rkemigTgTh1zWij8LcP0wUc922EKa8BaC4sA0TcGcz1UVsz9Wj/SVMEYmMZbDI
G+KPrOynYL2/nv6vvOtDd11kNFSBPnIhoEiGCwIDAQABAoIBAQCsO8EmL01Le6YU
k1JWdNYEbKh5hQ3/KE+EXwLIBCc6n1AWWzTJ+GyAu4nrK4zf2+nmBJGhnAw+H43w
x7RqXG3XibeS8xoTDAUK24A8ndnIyARwsNWx55GYLeYmXknm4o0Ke62UvFGxcC9M
xLgSoQFa1IgGr1MwI9TZfkAKdQYG4gRyEY1VCLoQxP1ec4DI/Ry15M6Qx2/c6b/N
B3A4WPCrNxo7KamJdn8a1JMt1f/nQUk//ZEJgB/CTiNZTPClj+Vmh2h8Uo2xhtiu
j5UPtvU/IA8ca8TyWKhNRBaXGtUIFEi2i2VAVruIccpfGW8WnD/2FWk5QZXBfUv3
PDoZR55hAoGBAN7Q0Q+lyaN7MoyipCElqjUA2EXIZtMtJEXSUNt+bsobgaDznLjw
2NvwXO28svUQoCj+Nl31k2NDP5zFIxMqmm/KxEIm8WVwOhCkiBYTb2+Zv/BBWrxK
5SUz/KSAORqp2cqgeLvL9wJp49LeMzThDcuvLjlPR3Yo8mVQmHVkGJSHAoGBANAq
iS3EHGipv+kik5cSRLwWl8tGqX/nZq0tq9+Sf8aJoICtjxh6WeKL5gZenFoZ4zwb
wZuEzG2x+6zEqSingjgNWFmMurKt4yXq+e4wE4POd9BoOEPOTU0OzbkcGvAn/UTG
XnpKYYz4KQz7f7e6jsliSFvvI0OVlga9egGd9iddAoGBALp1Lm4Uw69d+kg8FnNy
rIPcaB/Fe16/CPqw7F8x546UBB9nncAaNK+g7nM4FN4FgrGrQl3Qkv1fGk2bnyV7
4m8o1KGzKxFDICQrO4KV0wwmMrvgRQkK98TxQzt53c+VUZ9COKaXIebQLAmbTmiy
6LOJrnnhASE9VNM55cte7z7jAoGAQw7w0gVzAWRtpjS1Rt1jtxOwIpPI1qM8uF0W
GReggdykD8/ZYRFJE2nt1+9yfrQIN7zZSbgmAtBrOuS/eZE8qcHizDZBjn3lxrlD
ei+SmctRXZm1RmKXFFPIgfFD3EmFlToyBUMg2cC3uK7sHcvDY6x9kuAehA8UHWe8
ffjc6yECgYBB+3Qi6TaJU5kug1nrL+WIuYUC/8YYExlXsmXGLs8GeHBhdytKCIb1
BQiLYIGvrhxwqhvlsjKrfQNgUiT7cKkh5XzPB5MfSgfGb93PwarZhh0YLVqI3YsB
zqHgbpc3ZBI5Zjm33LZGq0a8ZPeC/MMBy3Jkp07035G2gPxwhOfBbA==
-----END RSA PRIVATE KEY-----
[root@gitlib ~]# 

部署Jenkins_第31张图片

部署Jenkins_第32张图片

 在jenkins所在的主机上安装nginx,在将代码拉去下来之后,将/usr/share/nginx/html/下的文件备份,将新拉取的代码拷贝到/usr/share/nginx/html/下,并修改权限。

echo "代码拉取完毕,开始推送" 
tar czf /opt/nginx_html_`date "+%F-%H_%M_%S"`.tar.gz /usr/share/nginx/html/
rm -rf /usr/share/nginx/html/*
cp -r /root/.jenkins/workspace/nginx_test/love-master/* /usr/share/nginx/html/
chmod 777 -R /usr/share/nginx/html/

部署Jenkins_第33张图片

部署Jenkins_第34张图片

将下述内容填写相应位置

# Default Subject

项目 【$PROJECT_NAME】 第【$BUILD_NUMBER】次构建 - $BUILD_STATUS! 

# Default Content

    
    
    
    
${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志    
    

    
    

本邮件由系统自动发出,请勿回复!


各位同事,大家好,以下为${PROJECT_NAME }项目构建信息
构建结果 - ${BUILD_STATUS}

构建信息

最近提交


    ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="
  • %d [%a] %m
  • "}
详细提交: ${PROJECT_URL}changes

部署Jenkins_第35张图片

部署Jenkins_第36张图片

部署Jenkins_第37张图片

部署Jenkins_第38张图片

部署Jenkins_第39张图片

gitlab服务端的文件:

[root@gitlib yun2304]# ls
java_code  love-master  README.md  web_code  后端  开发人员信息  前端

在jenkins服务端进行验证:

[root@jenkins nginx_test]# ll
总用量 12
drwxr-x---. 2 root root   22 11月 22 19:38 java_code
drwxr-x---. 4 root root  195 11月 22 19:38 love-master
-rw-r-----. 1 root root 6170 11月 22 19:38 README.md
drwxr-x---. 3 root root   41 11月 22 19:38 web_code
drwxr-x---. 2 root root   22 11月 22 19:38 后端
-rw-r-----. 1 root root   99 11月 22 19:38 开发人员信息
drwxr-x---. 2 root root   22 11月 22 19:38 前端

 浏览器访问 :192.168.58.153:85  (这里修改了nginx的默认端口,避免冲突)

部署Jenkins_第40张图片

你可能感兴趣的:(软件安装,jenkins,运维)