Centos7配置Jenkins

Centos7配置Jenkins

jenkins 官方下载地址:https://mirrors.jenkins-ci.org/redhat/

maven 官方下载地址:https://archive.apache.org/dist/maven/maven-3/

tomcat 官方下载地址:https://tomcat.apache.org/download-90.cgi

1、配置jdk

下载后将文件上传到云服务器上
在这里插入图片描述

我们这里选择rpm安装方式(主要是比较方便

rpm -ivh jdk-11.0.16_linux-x64_bin.rpm
which java

在这里插入图片描述

这样就成功了

2、安装jenkins

安装jenkins

rpm -ivh jenkins-2.346-1.1.noarch.rpm

在这里插入图片描述

卸载jenkins

rpm -e jenkins
find / -iname jenkins | xargs -n 1000 rm -rf
which jenkins

3、jenkins配置、启动

修改配置文件1

vim /usr/lib/systemd/system/jenkins.service

设置信息1

Environment="JENKINS_PORT=8999"

修改配置文件2

vim /etc/sysconfig/jenkins

设置信息2

JENKINS_USER="root"
JENKINS_PORT="8999"

配置文件生效

systemctl daemon-reload

启动jenkins(你可能会遇到启动超时的错误,不要担心多试几遍,虽然我也不知道为什么

systemctl start jenkins

访问:http://10.112.18.11:8080
在这里插入图片描述

获取密码,解锁jenkins

cat /var/lib/jenkins/secrets/initialAdminPassword

跳过插件安装
在这里插入图片描述
在这里插入图片描述

创建管理员
在这里插入图片描述

实例配置
在这里插入图片描述

进入jenkins
在这里插入图片描述
在这里插入图片描述

4、jenkins插件

Jenkins->Manage Jenkins->Manage Plugins

Localization: Chinese (Simplified)
Role-based Authorization Strategy
Credentials Binding Plugin
Git
Deploy to container
pipeline
Generic Webhook Trigger
Email Extension Template
SonarQube Scanner

在这里插入图片描述

等待所有插件下载完毕,在插件页面重启或者通过systemctl restart jenkins重启后即安装成功

5、jenkins权限

修改授权策略

jenkins->系统管理->全局安全配置

修改授权策略为Role-based Strategy(做的所有操作,一定记得保存
在这里插入图片描述

创建角色

Jenkins->系统管理->Manage and Assign Roles
在这里插入图片描述
在这里插入图片描述
添加用户

Jenkins->系统管理->管理用户
在这里插入图片描述
在这里插入图片描述
授予角色
在这里插入图片描述

6、配置git

yum install git -y

创建项目
在这里插入图片描述

7、jenkins凭证

比如连接gitlab需要的一些凭证

用户密码凭证

添加凭证
在这里插入图片描述
在这里插入图片描述
保存,立即构建
在这里插入图片描述
在这里插入图片描述
进入目录/var/lib/jenkins/workspace/poem-test-username
在这里插入图片描述
SSH凭证

SSH不知道为什么一直配置不成功,,,,,这里就暂时跳过

8、配置maven

tar -zxvf apache-maven-3.6.3-bin.tar.gz
vim /opt/apache-maven-3.6.3/conf/setting.xml
<localRepository>/opt/apache-maven-3.6.3/repo/</localRepository>
<mirror><id>nexus-aliyun</id>  <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>  <name>Nexus aliyun</name>  <url>http://maven.aliyun.com/nexus/content/groups/public</url> 
</mirror>
vi /etc/profile
export MAVEN_HOME=/opt/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
source /etc/profile
mvn -v
# 记得加权限
chmod 777 /opt/apache-maven-3.6.3/repo/

在这里插入图片描述

9、自动构建

jenkins->系统管理->全局工具配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
jenkins->系统配置
在这里插入图片描述
添加构建步骤
在这里插入图片描述
测试
在这里插入图片描述

10、配置tomcat

注意服务器需要有jdk

tar -zxvf apache-tomcat-9.0.50.tar.gz
/opt/apache-tomcat-9.0.50/bin/startup.sh

在这里插入图片描述

为tomcat配置用户角色权限

vim /opt/apache-tomcat-9.0.50/conf/tomcat-users.xml
<!-- Inside <CATALINA_HOME>/conf/tomcat-users.xml -->
<!-- Inside the <tomcat-users> element --><!-- Roles for Web Application Manager /manager/html/ -->
<role rolename="manager-gui" />
<role rolename="manager-script" />
<role rolename="manager-jmx" />
<role rolename="manager-status" />
<!-- Role for Virtual Host Manager /host-manager/html/ -->
<role rolename="admin-gui" /><!-- Create user and assign roles -->
<user username="jenkins" password="xumeng" roles="manager-script,manager-gui,manager-jmx,manager-status,admin-gui" />
12345678910111213
vim /opt/apache-tomcat-9.0.50/webapps/manager/META-INF/context.xml
1
<?xml version="1.0" encoding="UTF-8"?>
<!--Licensed to the Apache Software Foundation (ASF) under one or morecontributor license agreements.  See the NOTICE file distributed withthis work for additional information regarding copyright ownership.The ASF licenses this file to You under the Apache License, Version 2.0(the "License"); you may not use this file except in compliance withthe License.  You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.
-->
<Context antiResourceLocking="false" privileged="true" ><CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"sameSiteCookies="strict" /><Valve className="org.apache.catalina.valves.RemoteAddrValve"allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|\d+\.\d+\.\d+\.\d+" /><Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

重启输入账户密码即可进入tomcat管理界面
在这里插入图片描述

配置好登陆进去后回到jenkins配置构建后的步骤(Credentials中填写的是tomcat中填写的账号密码
在这里插入图片描述

立即构建
在这里插入图片描述

构建成功后去tomcat查看
在这里插入图片描述
在这里插入图片描述

在编译器中改变代码,提交到gitlab,重新构建
在这里插入图片描述

11、Pipeline

就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点 的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。

语法主要分为两种

  • Declarative
  • Scripted

Declarative

新建流水线项目
在这里插入图片描述

语法形式
在这里插入图片描述

语法生成

  • 从git拉取代码
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 构建
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 部署
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    Scripted

因为2.x建议使用Declarative语法,这里不再记录

12、内置构建触发器

  • 触发远程构建
  • 其他工程构建后触发(Build after other projects are build)
  • 定时构建(Build periodically)
  • 轮询SCM(Poll SCM)

触发远程构建(远程触发构建)
在这里插入图片描述
触发构建
在这里插入图片描述

查看效果(这里乱码了,不过问题不大,看出来更新了,,,,,,,
在这里插入图片描述

其他工程构建后触发(Build after other projects are build)

填写项目名称选择触发类型即可
在这里插入图片描述

定时构建(Build periodically)

使用的是一种类似cron表达式的方式

依次为:分 时 日 月 周

每30分钟构建一次
在这里插入图片描述

轮询SCM(Poll SCM)

指定时扫描本地代码仓库的代码是否有变更,如果代码有变更就触发项目构建
在这里插入图片描述

13、webhook自动触发构建

在项目中开启:Build when a change is pushed to GitLab. GitLab webhook URL: xxx
在这里插入图片描述

在GitLab webhook构建触发器中设置令牌
在这里插入图片描述

gitlab设置webhook地址

gitlab->setting->integrations
在这里插入图片描述

测试webhook
在这里插入图片描述

200成功
在这里插入图片描述

查看jenkins构建结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14、参数化构建

git分支命名规则

分支命名说明
主分支master主分支,所有提供给用户使用的正式版本,都在这个主分支上发布
开发分支dev开发分支,永远是功能最新最全的分支
功能分支feature-*新功能分支,某个功能点正在开发阶段
发布版本release-*发布定期要上线的功能
修复分支bug-*修复线上代码的 bug

设置参数
在这里插入图片描述

修改流水线脚本
在这里插入图片描述

选择参数
在这里插入图片描述
构建
在这里插入图片描述
结果
在这里插入图片描述

15、邮件

开启邮箱POP3/SMTP服务
在这里插入图片描述

配置email凭证
在这里插入图片描述

jenkins->系统管理->系统配置

系统管理员邮件地址
在这里插入图片描述
Extended E-mail Notification

配置邮件服务器、邮件内容格式
在这里插入图片描述

配置默认收件人、邮件内容
在这里插入图片描述

邮件测试
在这里插入图片描述

配置构建后发送邮件1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置构建后发送邮件2

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>${ENV,var="JOB_NAME"}-${BUILD_NUMBER}</title>
</head><body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
<table width="95%" cellpadding="0" cellspacing="0"style="font-size: 11pt; font-family: Tahoma,Arial,Helvetica,sans-serif"><tr><td>THIS EMAIL IS SENT BY JENKINS AUTOMATICALLY, PLEASE DON'T REPLY!</td></tr><tr><td><h2><font color="#0000FF">BUILD RESULT - ${BUILD_STATUS}</font></h2></td></tr><tr><td><br /><b><font color="#0B610B">DETAILS:</font></b><ht size="2" width="100%" byte="center" /></td></tr><tr><td><ul><li>PROJECT NAME&nbsp;:&nbsp;${PROJECT_NAME}</li><li>PROJECT URL&nbsp;:&nbsp;<a href="${PROJECT_URL}">${PROJECT_URL}</a></li><li>BUILD NUMBER&nbsp;:&nbsp;${BUILD_NUMBER}</li><li>STARTED BY&nbsp;:&nbsp;${CAUSE}</li><li>BUILD URL&nbsp;:&nbsp;<a href="${BUILD_URL}">${BUILD_URL}</a></li><li>BUILD LOG&nbsp;:&nbsp;<a href="${BUILD_URL}console">${BUILD_URL}console</a></li><li>BUILD WORKFLOW&nbsp;:&nbsp;<ahref="${PROJECT_URL}workflow-stage">${PROJECT_URL}workflow-stage</a></li></ul></td></tr><tr><td><font color="#0B610B">BUILD LOG (LAST 200 ROWS):</font></b><hr size="2" width="100%" byte="center" /></td></tr><tr><td><textarea cols="80" rows="30" readonly="readonly"style="font-family: Courier New">${BUILD_LOG,maxLines=200,escapeHtml=true}</textarea></td></tr>
</table>
</body></html>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

16、代码审查

默认已经配置过mysql数据库并且拥有一个名为sonar的数据库
在这里插入图片描述

下载sonar并上传到服务器

https://www.sonarqube.org/downloads/

安装unzip

yum install unzip

解压

unzip sonarqube-9.6.0.59041.zip

创建sonar用户

useradd sonar

更改sonar目录权限

chmod -R 777 /opt/sonarqube-9.6.0.59041/

更改sonar配置文件

vim /opt/sonarqube-9.6.0.59041/conf/sonar.properties
sonar.jdbc.username=root
sonar.jdbc.password=xumeng2233.
onar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

启动sonar

su sonar /opt/sonarqube-9.6.0.59041/bin/linux-x86-64/sonar.sh start

http://81.68.73.248:9000/

默认账号密码是admin-admin

在这里插入图片描述

生成token
在这里插入图片描述

设置凭证
在这里插入图片描述

下载SonarQube Scanner,并上传到服务器(自动安装会使用非预期的jdk,所以我们自己安装

SonarQube Scanner 官网:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

unzip sonar-scanner-cli-4.7.0.2747-linux.zip

配置SonarQube Scanner
在这里插入图片描述

配置sonar服务

jenkins->系统管理->系统配置
在这里插入图片描述

配置项目扫描1

# must be unique in a given SonarQube instance
sonar.projectKey=auto_build
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectName=auto_build
sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set.
sonar.sources=.
sonar.exclusions=**/test/**,**/target/**
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置项目扫描2

在项目下创建sonar-project.properties(src同级

# must be unique in a given SonarQube instance
sonar.projectKey=pipline_build
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectName=pipline_build
sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set.
sonar.sources=.
sonar.exclusions=**/test/**,**/target/**
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8
1234567891011
pipeline {agent anystages {stage('pull') {steps {echo 'pull'checkout([$class: 'GitSCM', branches: [[name: '*/${branch}']], extensions: [], userRemoteConfigs: [[credentialsId: '3f422d18-4cab-4500-8350-59247a4bb63c', url: 'http://150.158.169.42/devops/poem.git']]])}}stage('check') {steps{script {scannerHome = tool 'SonarQube-Scanner'}withSonarQubeEnv('sonar') {sh "${scannerHome}/bin/sonar-scanner"}}}stage('build') {steps {echo 'build'sh 'mvn clean package'}}stage('publish') {steps {echo 'publish'deploy adapters: [tomcat9(credentialsId: '492c2512-8479-4182-991a-232d055112f8', path: '', url: 'http://150.158.187.211:8080')], contextPath: '/poem_war_exploded', war: '**/*.war'}}}post {always {emailext(subject: '构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} -${BUILD_STATUS}!',body: '${FILE,path="email.html"}',to: '2750955630@qq.com')}}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机硬盘用u盘维修,U盘装机大师修复磁盘坏道详细教程

我们都知道当我们的磁盘使用的时间久了就会容易出现各种问题&#xff0c;然而硬盘的坏道是最常见的问题之一。关于磁盘出现坏道有很多原因&#xff0c;诸如硬盘本身质量问题&#xff0c;老化&#xff0c;使用不当等等。我们的硬盘内存太小也会导致应用软件对硬盘频繁访问&#…

多屏幕炒股计算机配置,多屏幕股票交易计算机配置建议使用i59400F计算机主机配置(最多六个屏幕)...

在经历了几年的熊市股市之后&#xff0c;2019年股市似乎有所回升. 最近&#xff0c;许多用户询问多屏股票交易计算机的配置&#xff0c;例如三屏&#xff0c;四屏&#xff0c;和六屏. 实际上&#xff0c;与普通计算机的最大区别是该图形卡需要配备多屏幕图形卡. 一台计算机可以…

小学二年级上学期计算机教案,小学数学二年级上册分苹果教案设计

小学数学二年级上册分苹果教案设计〖教学目标1.经历分苹果等实际操作&#xff0c;初步体会有余数除法与生活的密切联系&#xff0c;进一步体会除法的意义。2.通过实际操作&#xff0c;抽象出有余数除法的书写格式&#xff0c;并体会余数一定要比除数小。〖教材分析分苹果是二年…

生物计算机的主要原材料是(),新材料为生物计算机打造“神经元”和“突触”...

一项最新研究利用复杂的氧化物&#xff0c;打造出了与神经元和突触相似的元件。图片来自pixabay.com虽然电脑的计算速度比人脑快&#xff0c;但在物体识别任务等方面&#xff0c;人脑还是更胜一筹。除此之外&#xff0c;人脑耗费的能量也远低于电脑。大脑的运作方式可以在一定程…

hotmail接收邮件服务器(pop),Microsoft微软邮箱 outlook、hotmail 打开pop和imap的方法

分享个微软邮箱 outlook、hotmail 打开pop和imap的方法只有打开了pop或者imap &#xff0c; foxmail一类的邮件管理客户端才能正常收邮件&#xff1b;打开了smtp才能正常发邮件。设置方法如图&#xff1a;1.登录进去账户以后&#xff0c;点击右上角的设置&#xff0c;齿轮图标&…

MySQL 索引 是如何提高 查询效率 的?

前言 我们都知道当查询数据库变慢时&#xff0c;需要建索引去优化。但是只知道索引能优化显然是不够的&#xff0c;我们更应该知道索引的原理&#xff0c;因为不是加了索引就一定会提升性能。那么接下来就一起探索MYSQL索引的原理吧 什么是索引 索引其实是一种能高效帮助MYS…

FreeMarker详细介绍

FreeMarker 1. 主要内容 2.FreeMarker概述 2.1. FreeMarker概念 FreeMarker 是一款 模板引擎&#xff1a; 即一种基于模板和要改变的数据&#xff0c; 并用来生成输出文本(HTML网页&#xff0c;电子邮件&#xff0c;配置文件&#xff0c;源代码等)的通用工具。 是一个Java类…

SpringBoot整合Freemarker导出word文档表格

freemarker模板里面的template.process()方法里传入的第一个参数Object类型&#xff0c;如果是一个实体类对象在模板上怎么进行渲染&#xff0c;将实体类的值取出 freemarker会调用ObjectWrapper对传入的对象进行warp&#xff0c;具体类型在代码里面用instanceof进行判断。一般…

ambari 修改服务器名,Ambari修改主页面方法

分享下Ambari修改主页面方法&#xff0c;希望对大家有用。[roothdp159 ambari-web]# brunch watch --serverOct 10:22:43 - info: application started on http://localhost:3333/Oct 10:22:47 - info: compiled 891 files into 5 files, copied 260 in 3988msOct 10:23:12 - i…

快速向服务器传文件格式,客户端如何向服务器传文件格式

客户端如何向服务器传文件格式 内容精选换一换语音通话平台通过此接口向客户推送语音通话业务用户呼叫时的状态信息&#xff0c;如呼入、呼出、振铃、应答、挂机等状态的信息。语音通话平台(客户端) → 客户服务器(服务端)前提条件SP在开发应用时&#xff0c;若需订阅呼叫状态通…

MyBatis-Plus--解决逻辑删除与唯一索引的问题--方法/实例

文章目录简介问题复现依赖**建库建表**代码测试解决方案方案1&#xff1a;将字段设置为id&#xff08;推荐&#xff09;建库建表修改Entity测试方案2&#xff1a;将字段设置为当前时间&#xff08;不推荐&#xff09;建库建表修改Entity测试简介 说明 本文用示例介绍MyBatis-…

MybatisPlus 实体类与数据库表映射关系MybatisPlus:ORM思想

实体类与数据库表映射关系 使用mybatisPlus时&#xff0c;会确定实体类和数据的映射关系 具体的映射方法有两种 1、默认&#xff1a;采用驼峰映射规则 例如MyUserTable 对应的数据库表为 my_user_table ; TEMyUserTable 对应表名为t_e_my_user_table; 2、注解TableName 在…

Spring Boot——maven项目常用打包配置

文章目录一、简介二、pom.xml三、效果图3.1 所有的资源打包到指定的目录maven3.2 所有的配置文件都放到config目录3.3 所有的配置文件都不在jar里&#xff0c;防止敏感信息泄露结语一、简介 maven项目打包是我们程序员经常遇到的事&#xff0c;今天就来弄一个常用的打包方式&a…

史上最全ThreadLocal 详解

文章目录一、ThreadLocal简介二、ThreadLocal与Synchronized的区别三、ThreadLocal的简单使用四、ThreadLocal的原理4.1 ThreadLocal的set()方法&#xff1a;4.2 ThreadLocal的get方法4.3 ThreadLocal的remove方法4.4、ThreadLocal与Thread&#xff0c;ThreadLocalMap之间的关系…

Java递归构建树形结构

记录&#xff1a;在Java后台利用递归思路进行构建树形结构数据&#xff0c;返回给前端&#xff0c;能以下拉菜单等形式进行展示。 简明&#xff1a;为了简化代码&#xff0c;引入Lombok的Jar包&#xff0c;可省略实体类set()、get()方法。 <dependency><groupId>or…

HTTP状态码含义:428、429、431、511431状态码详解

1、428 Precondition Required (要求先决条件) ​ 先决条件是客户端发送 HTTP 请求时&#xff0c;必须要满足的一些预设条件。一个好的例子就是 If-None-Match 头&#xff0c;经常用在 GET 请求中。如果指定了 If-None-Match &#xff0c;那么客户端只在响应中的 ETag 改变后才…

Java 异常——Exception详解

异常的介绍 异常的概念 异常 &#xff1a;指的是程序在执行过程中&#xff0c;出现的非正常的情况&#xff0c;最终会导致JVM的非正常停止。 在Java等面向对象的编程语言中&#xff0c;异常本身是一个类&#xff0c;产生异常就是创建异常对象并抛出了一个异常对象。Java处理…

Java中的URL类根据url获取网络文件快速入门Java中的URL(网络编程)

Java中的URL类 远程连接来实现应用。而且&#xff0c;这个平台现在已经可 以对国际互联网以及URL资源进行访问了。Java的URL类可以让访问网络资源就像是访问你本地的文件夹一样方便快捷。我们通过使用Java的URL类 就可以经由URL完成读取和修改数据的操作。 通过一个URL连接&a…

SpringMVC中Controller为什么能够处理并发访问?Springboot中的定时任务是否会发生阻塞?

文章目录SpringMVC中Controller为什么能够处理并发访问&#xff1f;当多个请求同时访问服务器的时候Controller、Service、DAO是线程安全的吗&#xff1f;关于类中的变量Controller、Service、DAO等类都默认为单例模式Controller、Service、DAO等类中的方法当中的并发问题关于D…

Java进阶 - 易错知识点整理

转载&#xff1a;https://blog.csdn.net/qq_33934427/article/details/125903960 文章目录1、JavaEE2、网络基础3、Mysql4、Spring/SpringMVC&#xff08;IOC装配、AOP增强、常用注解&#xff09;5、Spring Boot/Spring Cloud1&#xff09;SpringBoot部分2&#xff09;SpringCl…