详细介绍: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'
            """
        }
    }
}

}

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

//构建

在这里插入图片描述

//验证

在这里插入图片描述

posted @ 2025-11-30 09:20  yangykaifa  阅读(0)  评论(0)    收藏  举报