Jenkins

Jenkins

一、使用tomcat容器安装jenkins

1、部署tomcat,tomcat下载https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat,此时下载9.0版本的,10版本部署有bug,无法实现。

先要卸载centos7中自带得jdk

复制代码
[root@ws ~]# rpm -qa | grep java
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64
tzdata-java-2018e-3.el7.noarch
java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
javapackages-tools-3.4.1-11.el7.noarch
[root@ws ~]# rpm -e java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64 --nodeps
[root@ws ~]# rpm -e java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64 --nodeps

//部署网络源

//时钟同步

//安装jdk

复制代码
[root@ws yum.repos.d]# yum -y install java-11-openjdk

//解压tomcat,并部署安装

复制代码
[root@ws local]# tar -xzvf apache-tomcat-9.0.67.tar.gz -C /usr/local/
[root@ws ~]# cd /usr/local/
[root@ws local]# ls
apache-tomcat-9.0.67  bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@ws local]# ln -s apache-tomcat-9.0.67/ tomcat

//启动tomcat,测试能否访问tomcat首页

复制代码
[root@ws 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.

1、部署jenkins

//下载jenkins到/usr/local/tomcat/webapps/目录下

//下载下来后会自动解压

//启动服务

复制代码
[root@ws tomcat]# bin/catalina.sh stop
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:   
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@ws tomcat]# bin/catalina.sh start
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@ws tomcat]# cd webapps/
[root@ws webapps]# ls
docs  examples  host-manager  jenkins  jenkins.war  manager  ROOT
[root@ws webapps]# 

//浏览器访问jenkins

//查看上图框出来的文件,该文件中记录这密码,复制密码并登录

复制代码
[root@ws webapps]# cat /root/.jenkins/secrets/initialAdminPassword
6e75422e88de464587840ca4ec2be037

3、自定义jenkins

//选择插件来安装

//选择无,进行安装,后期需要什么插件就安装什么插件

//创建管理员用户admin,密码为admin

//此时登录进去是英文界面,我们进行替换国内源

//点击 Advanced ---> 更新为国内源 ---> Submit

原国外插件源地址:https://updates.jenkins.io/update-center.json

国内插件源地址:https://mirrors.huaweicloud.com/jenkins/updates/update-center.json

//安装简体中文插件

//安装Git GitHub GitLab Gitee插件

安装完成后,会重启jenkins

Jenkins流水线项目发布流程

主机名称 ip地址 需要的应用服务 工具包 系统

ansible 192.168.110.110 tomcat、jenkins git maven RHEL9

app 192.168.110.66 tomcat 无 RHEL9

1、关闭防火墙和selinux

2、在node1上部署服务tomcat和jenkins(上面已经部署),重新部署,登录web界面时选择安装推荐的插件,部署好后,设置国内源

3 配置yum源

复制代码
[root@absible yum.repos.d]# cat server.repo 
[baseos]
name=baseos
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/BaseOS/x86_64/os/
enabled=1
gpgcheck=0

[appstream]
name=app
baseurl=https://mirrors.aliyun.com/centos-stream/9-stream/AppStream/x86_64/os/
enabled=1
gpgcheck=0

3、先在ansible主机上生成一个密钥,传给app主机

复制代码
[root@absible ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.110.66
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.110.66 (192.168.110.66)' can't be established.
ED25519 key fingerprint is SHA256:Vx2iAClKk4iu5uccKPyvHZ0Qc0E179q28tXIIWNvxUM.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.110.66's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.110.66'"
and check to make sure that only the key(s) you wanted were added.

4、在app上部署tomcat

5、在ansible中配置jenkins

//创建任务

//创建流水线任务

发布流水线的方法我在这里给大家介绍两种,一种是脚本的方式,一种是使用文本参数的方式

首选都需要在jinkins所在服务器,也就是ansible中安装git和maven

复制代码
[root@absible ~]#  yum -y install git 
[root@absible ~]# yum -y install maven-openjdk11.noarch

https://github.com/devopsbyhari/JenkinsTomcatExample.git

第一种方法:使用脚本

pipeline {

agent any

stages {

stage('pull code') {

steps {

git 'https://github.com/devopsbyhari/JenkinsTomcatExample.git'

}

}

}

}

//绿色为构建成功

//添加第二部分脚本执行

pipeline {

agent any

stages {

stage('pull code') {

steps {

git 'https://github.com/devopsbyhari/JenkinsTomcatExample.git'

}

}

stage('package') {

steps {

sh """

mvn clean

mvn package

"""

}

}

}

}

复制代码
//再次进行构建--此时构建时间非常长

第二次构建就是为了安装软件包,生成站点,站点

复制代码
/root/.jenkins/workspace/test/target/目录下,通过日志文件可以看到

该目录下就有个压缩文件为java-tomcat-maven-example.war

复制代码
//第三次构建的时候,就是需要把这个文件使用scp的方式发送给app的tomcat中

pipeline {

agent any

复制代码
stages {
    stage('pull code') {
        steps {
            git 'https://github.com/devopsbyhari/JenkinsTomcatExample.git'
        }
    }
    stage('package') {
        steps {
            sh """
            mvn clean
            mvn package
            """
        }
    }
    stage('deploy') {
        steps {
            sh """
            scp target/java-tomcat-maven-example.war root@192.168.110.66:/usr/local/tomcat/webapps/
            ssh root@192.168.110.66 '/usr/local/tomcat/bin/catalina.sh stop && /usr/local/tomcat/bin/catalina.sh start'
            """
        }
    }
}

}

此时我们去app中的去验证

复制代码
[root@app ~]# cd /usr/local/tomcat/webapps/
[root@app webapps]# ls
docs  examples  host-manager  java-tomcat-maven-example  java-tomcat-maven-example.war  manager  ROOT
[root@app webapps]# 

//访问app的tomcat

//能够成功访问该页面,说明我们此次jenkins流水线项目部署成功

第二种方法呢,就是通过文本参数来实现流水线项目发布

为了实验效果呢,我们首先把app中刚刚接收到的站点给删除掉

//新建流水线项目lq

//添加文本参数

//添加git下载信息https://github.com/devopsbyhari/JenkinsTomcatExample.git

//添加字符参数,打包

//添加字符参数 定义tomcat路径

//添加文本参数 定义客户端ip

//编写流水线脚本

pipeline {

agent any

复制代码
stages {
    stage('pull code') {
        steps {
            git "${git_url}"
        }
    }
    stage('package') {
        steps {
            sh """
            mvn clean
            mvn package
            """
        }
    }
    stage('deploy') {
        steps {
            sh """
            scp target/${maven_package}.war root@${client_ip}:${tomcat_path}/webapps/
            ssh root@${client_ip} '${tomcat_path}/bin/catalina.sh stop && ${tomcat_path}/bin/catalina.sh start'
            """
        }
    }
}

}

//刚刚定义好的变量参数值

//构建

//验证

相关推荐
学术小白人7 小时前
11月即将召开-IEEE-机械制造方向会议 |2025年智能制造、机器人与自动化国际学术会议 (IMRA 2025)
运维·人工智能·机器人·自动化·制造·rdlink研发家
王者鳜錸8 小时前
JAVA后端结合网页搜图+阿里万相2.5实现自动化修图与返回
运维·自动化·图片优化·图片大模型编辑·图片修改
金仓拾光集8 小时前
告别“凭感觉”告警,金仓数据库替换MongoDB让运维更精准
运维·数据库·mongodb·kingbase·数据库平替用金仓·金仓数据库·kingbasees·
叽里咕噜怪8 小时前
VMware-三种网络模式
linux·运维·服务器
scriptsboy9 小时前
可用 Docker (DockerHub) 国内镜像源加速列表 - 长期维护(截至 2025 年 06 月 15 日)
运维·docker·容器
matrixlzp9 小时前
Jenkins Pipeline 快速开始
运维·jenkins
头发那是一根不剩了9 小时前
Jenkins安装教程并实现一键部署流程
运维·jenkins
维尔切9 小时前
Jenkins 持续集成与部署
运维·ci/cd·jenkins