Bootstrap

Jenkins部署与应用

Jenkins

简介

Jenkins是一个开源的持续集成/持续交付(CI/CD)工具,旨在帮助开发团队通过自动化构建、测试和部署软件项目来提高产品质量和开发效率。


工作原理

Jenkins的工作原理主要基于事件驱动和插件架构。它通过监听代码仓库的变化或定期轮询触发构建任务,并根据事先定义的构建流程,从源代码获取最新的代码、编译构建应用程序、运行自动化测试、打包、部署和发布等一系列操作。Jenkins通过丰富的插件生态系统,可以与各种构建工具、测试工具、部署工具和版本控制系统进行集成,具有广泛的适用性和灵活性。

工作流程

Jenkins的常见工作流程包括:

  1. 触发器:触发构建任务的事件,如代码提交、定时触发等。
  2. 获取源代码:从版本控制系统中获取最新的代码。
  3. 编译构建:将源代码编译成可执行的应用程序或库。
  4. 测试:运行各种自动化测试(单元测试、集成测试、端到端测试等)以验证代码质量。
  5. 打包:将编译好的代码打包成可发布的软件包。
  6. 部署:将软件包部署到目标环境中。
  7. 发布:将部署完成的应用程序发布给用户或其他相关团队。

优缺点

Jenkins的优点包括:

  1. 灵活性:通过插件架构和丰富的插件生态系统,可以满足各种不同的需求和集成场景。
  2. 可扩展性:能够支持大规模的构建和部署,适应不断增长的项目和团队。
  3. 自动化:通过自动化构建、测试和部署等流程,减少了人工操作的工作量和错误率。
  4. 可视化界面:提供直观易用的图形界面,方便管理和监控构建任务和结果。
  5. 社区支持:作为开源项目,Jenkins拥有活跃的社区,能够提供丰富的文档和技术支持。

Jenkins的缺点包括:

  1. 学习成本较高:初学者需要花一些时间学习和掌握Jenkins的概念和工作原理。
  2. 配置复杂:复杂的配置过程和设置,可能需要一些技术背景和经验。
  3. 界面不够现代化:相对于一些新兴的CI/CD工具,Jenkins的用户界面可能显得相对老旧。
  4. 资源消耗较大:大规模的构建和部署可能需要较多的硬件资源和时间。

总体而言,Jenkins是一个强大而灵活的CI/CD工具,广泛应用于软件开发团队中,帮助提高开发效率和产品质量。


Jenkins部署

说明

Jenkins要部署在Tomcat上
在企业中,正确且合理的做法是Jenkins和项目要分开部署
tomcat多实例部署请阅读Tomcat主页配置&Tomcat多实例部署


环境
操作系统Tomcat版本Jenkins版本
centos-8tomcat-9.0.79Jenkins 2.414.2

前期准备
//配置yum源,推荐使用阿里云源
[root@wanf ~]# rm -rf /etc/yum.repos.d/*
[root@wanf ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
[root@wanf ~]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
[root@wanf ~]# yum clean all 
18 files removed
[root@wanf ~]# yum makecache 

//永久关闭防火墙和selinux
[root@wanf ~]# systemctl disable --now firewalld.service 
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@wanf ~]# setenforce 0
[root@wanf ~]# sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

//重启主机
[root@wanf ~]# reboot
部署Tomcat
//安装Java环境
[root@wanf ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
[root@wanf ~]# java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)
[root@wanf ~]# 

//下载tomcat软件包
[root@wanf ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.79/bin/apache-tomcat-9.0.79.tar.gz
[root@wanf ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.79.tar.gz

//解压部署,解压到哪个目录,该目录就是安装目录
[root@wanf ~]# tar -xf apache-tomcat-9.0.79.tar.gz -C /usr/local/
[root@wanf ~]# cd /usr/local/
[root@wanf local]# ls
apache-tomcat-9.0.79  etc    include  lib64    sbin   src
bin                   games  lib      libexec  share

//软链接
[root@wanf local]# ln -s apache-tomcat-9.0.79/ tomcat
[root@wanf local]# ls
apache-tomcat-9.0.79  etc    include  lib64    sbin   src
bin                   games  lib      libexec  share  tomcat
[root@wanf local]# 

//启动tomcat服务
[root@wanf local]# /usr/local/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
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@wanf local]# 

//8005和8080端口已经起来了
[root@wanf local]# ss -anlt
State   Recv-Q  Send-Q        Local Address:Port   Peer Address:Port Process 
LISTEN  0       128                 0.0.0.0:22          0.0.0.0:*            
LISTEN  0       1        [::ffff:127.0.0.1]:8005              *:*            
LISTEN  0       80                        *:3306              *:*            
LISTEN  0       100                       *:8080              *:*            
LISTEN  0       511                       *:80                *:*            
LISTEN  0       128                    [::]:22             [::]:*            
[root@wanf local]# 
部署Jenkins

Jenkins官网https://www.jenkins.io/download/

//安装Jenkins所需要的Java17
[root@wanf ~]# yum -y install java-17-openjdk java-17-openjdk-devel

//由于安装tomcat时安装的Java1.8,但是Jenkins需要Java17,所以切换一下Java版本
[root@wanf ~]# alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64/jre/bin/java)
   2           java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64/bin/java)

Enter to keep the current selection[+], or type selection number: 2  //选择2
[root@wanf ~]# 


//下载Jenkins的.war包
[root@wanf ~]# yum -y install wget
[root@wanf ~]# wget https://get.jenkins.io/war-stable/2.414.2/jenkins.war
[root@wanf ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.79.tar.gz  jenkins.war
[root@wanf ~]# java -jar jenkins.war

//把Jenkins包cp/usr/local/tomcat/webapps/去
[root@wanf ~]# cp jenkins.war /usr/local/tomcat/webapps/

//重启tomca服务,就会自动解压Jenkins.war
[root@wanf ~]#/usr/local/tomcat/bin/shutdown.sh
[root@wanf ~]#/usr/local/tomcat/bin/startup.sh

[root@wanf ~]# cd /usr/local/tomcat/webapps/
[root@wanf webapps]# ls
docs  examples  host-manager  jenkins  jenkins.war  manager  ROOT
[root@wanf webapps]# 

访问Jenkins页面

IP地址后接:8080/jenkins

在这里插入图片描述

[root@wanf ~]# cat /root/.jenkins/secrets/initialAdminPassword
1defbc8f72f6415087002bbfa705afb9    //这个就是密码

在这里插入图片描述

输入密码,点击继续,稍等片刻


选择安装推荐的插件

在这里插入图片描述

在这里插入图片描述


创建一个账户

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


创建Jenkins项目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述



在主机上安装git命令和maven打包工具

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

[root@wanf ~]# yum -y install maven

重新编辑流水线脚本

在这里插入图片描述

下划

在这里插入图片描述

保存并应用

//流水线脚本如下
pipeline {
    agent any
    stages {
        stage("pull code"){
            steps {
                git 'https://gitee.com/forgotten/tomcat-java-demo.git'
            }
        }
        stage("make pkg"){
            steps {
                sh """
                    mvn clean package -Dmaven.test.skip=true
                """
            }
        }
        stage("publish"){
            steps {
                sh """
                    cp /root/tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps/
                    /usr/local/tomcat/bin/catalina.sh stop && /usr/local/tomcat/bin/catalina.sh start
                """
            }
        }
    }
}

在这里插入图片描述

//查看刚刚构建的项目
[root@wanf ~]# cd /usr/local/tomcat/webapps/
[root@wanf webapps]# ls
docs          ly-simple-tomcat-0.0.1-SNAPSHOT
examples      ly-simple-tomcat-0.0.1-SNAPSHOT.war
host-manager  manager
jenkins       ROOT
jenkins.war
[root@wanf webapps]# 

访问这个项目

在这里插入图片描述

可以成功访问

;