Jenkins安装/配置

248 阅读1分钟

一.什么是jenkins

Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。

二.安装jenkins

该文档是假设已经安装完成jdk环境的情况下编写的,假如你 java -version 找不到java命令或版本低于11请先安装Java JDK版本

1.创建目录

mkdir -p /opt/jenkins

2.下载jenkins

前往官网下载war包,到/opt/Jenkins目录 www.jenkins.io/zh/doc/pipe…

3.启动jenkins

cd /opt/Jenkins
nohup  java -jar jenkins.war --httpPort=8080 2>&1 &

4.访问Jenkins 并完成引导

三.配置jenkins

1.依赖项目

  • git
  • subversion
  • maven

2.CI&CD流程

微信截图_20230304201304.png

3.面板介绍

截屏2023-03-04 19.08.57.png
截屏2023-03-04 19.12.08.png
截屏2023-03-04 19.16.39.png
截屏2023-03-04 19.17.31.png
语法查询
截屏2022-12-05 10.06.40.png

4.插件介绍

jenkins提供了非常多的插件来满足用户的需求,我们可以通过以下路径来管理插件
首页-》Manage Jenkins-》Manage Plugins
截屏2023-03-04 19.23.18.png
这里可以搜索我们想要的插件,安装/删除或者更新它

五.pipeline脚本/模板

pipeline {
    agent any
    parameters {
        text defaultValue: 'default', description: '''代码分支''', name: 'branch'
    }
    tools {
        maven "maven3"
    }
    stages {
        stage('拉取代码') {
            steps {
                script {
                    try {
                        checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, credentialsId: '5778223d-ae2e-4399-916e-bb342eeb1079', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: 'http://svn.51diaocha.cn/51diaocha.v1.5/trunk/51diaocha.v1@HEAD']], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])
                        echo '拉取代码成功'
                    } catch (Exception ex) {
                        echo '拉取代码失败'
                    }
                }
            }
        }
        stage('构建项目工程') {
            steps {
                sh """
                  mvn clean package -Dmaven.test.skip=true
                """
                echo '构建项目完成'
            }
        }
        stage('发送项目') {
            steps {
                sh """
                scp -r ./wydc.site/*/target/war/*.war root@192.168.110.50:/data/51diaochaCode/service
                scp -r ./*serviceImpl/*/target/jar/*.jar root@192.168.110.50:/data/51diaochaCode/serviceImpl
                """
                echo 'publish project'
            }
        }
        stage('启动项目工程') {
            steps {
                echo '全部启动成功'
            }
        }
    }
}

以上代码中,我们使用了变量参数|maven工具

1.参数使用

text defaultValue: 'default', description: '''代码分支''', name: 'branch'

此处我们在jenkins job中设置了一个参数名称叫做 branch ,这个参数内容可以在webui中填写,而在pipeline脚本中想获取到它的参数, 我们可以使用${branch}
插件使用

2.引入插件/使用

tools {
    maven "maven3"
}
stage('构建项目工程') {
     steps {
        sh """
           mvn clean package -Dmaven.test.skip=true
           """
        echo '构建项目完成'
   }
}

六.其他

1.如何关闭防火墙:

#centos8 
#开放指定端口
firewall-cmd --zone=public --add-port=xxxx/tcp --permanent
firewall-cmd --zone=public --add-port=xxxx/udp --permanent
#重启防火墙服务
systemctl restart firewalld.service

2.如何配置免密登录

#假如我们有3个服务器 linux1 linux2 linux3
#假设我们将jenkins安装在 linux1上,需要配置免密登录请通过如下设置
ssh-keygen -t rsa
cd /root/.ssh/
cp id_rsa.pub authorized_keys
chmod 600 authorized_keys
#当本机配置完成后,我们前往目标服务器配置 【在linux2重复以上步骤】
vim authorized_keys
#将【linux1】的【id_rsa.pub】 添加在authorized_keys开头或结尾
#在linux1上测试一下
ssh xxx@linux2
#如果没有让其输入密码则测试成功

3.如何查询进程/关闭

kill `ps -ef | grep -E 'tomcat.*account' | grep -v grep | awk '{print $2}'`

三.引用

jenkins官方文档:www.jenkins.io/zh/doc/

四.遇上的问题

java.lang.NullPointerException: Cannot load from short array because "sun.awt.FontConfiguration.head" is null
blog.csdn.net/sushiyi651/…