jenkins环境搭建

jenkins环境搭建

  • 1.环境说明
  • 2.环境准备
    • 1.jdk安装
    • 2.安装Git
    • 3.安装sshpass
    • 4.安装Maven
  • 3.安装Jenkins(war包方式安装)
    • 1.安装
    • 2.镜像加速
  • 4.官网提供的yum方式安装
  • 5.访问

1.环境说明

keyvalue
环境centos7
jdk版本11
git2.43.0
maven3.9.6
jenkins最新版本http://mirrors.jenkins-ci.org/war/latest/

2.环境准备

1.jdk安装

安装方式请参考博主之前的文章:https://blog.csdn.net/weixin_44702984/article/details/128906562

centos7安装jdk

2.安装Git

yum安装git方式

  1. 执行命令:yum install -y git ;
  2. 验证是否安装成功:git --version

1.通过官网下载git:https://mirrors.edge.kernel.org/pub/software/scm/git/
在这里插入图片描述

2.下载的git上传到/opt目录下,进行解压

tar -zvxf git-2.43.0.tar.gz

3.安装源代码编译环境

yum install -y curl-devel expat-devel openssl-devel zlib-devel gcc-c++ 
yum install -y perl-ExtUtils-MakeMaker automake autoconf libtool make

3.配置git安装目录

cd git-2.43.0
./configure --prefix=/opt/git

4.执行git安装命令

make install

5.添加环境变量

vi /etc/profile
export GIT_HOME=/opt/git
export PATH=${GIT_HOME}/bin:$PATH 

6.环境变量生效

source /etc/profile

3.安装sshpass

 yum install -y sshpass

4.安装Maven

.1.maven下载页面:https://maven.apache.org/download.cgi

2.将下载的压缩包apache-maven-3.9.6-bin.tar.gz上传到/opt目录下,进行解压

apache-maven-3.9.6-bin.tar.gz

3.重名名

 mv apache-maven-3.9.6 maven-3.9.6

4.添加环境变量

vi /etc/profile
export MAVEN_HOME=/opt/maven-3.9.6
export PATH=${MAVEN_HOME}/bin:$PATH

5.环境变量生效

source /etc/profile

6.修改maven基本配置

vi /opt/maven-3.9.6/conf/settings.xml

maven下的 conf/settings.xml 找到和标签,在其中添加如下内容(镜像加速):

<!-- 配置镜像加速 -->
<mirror>
    <id>alimaven</id>
    <name>alimaven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

配置本地仓库地址

<localRepository>/opt/maven-3.9.6/repository</localRepository>

3.安装Jenkins(war包方式安装)

1.安装

1.创建jenkins安装目录进入该目录后下载jenkins

mkdir /opt/jenkins && cd /opt/jenkins/

2.下载Jenkins(并且上传)

  • Jenkins安装包下载页:https://www.jenkins.io/download/

  • 各版本war索引页:https://mirrors.jenkins-ci.org/war/

3.添加启动脚本

在Jenkins安装目录/opt/jenkins下创建jenkins启动脚本

vi jenkins.sh

脚本内容如下

#!/bin/bash
args=$1
#注意修改jenkinswar包的目录
jenkins_war_path="/opt/jenkins"
#jenkins开放端口
jenkins_http_port="8888"
#java安装路径
java_home="/usr/local/jdk-11.0.18"
function isRuning(){
        local jenkinsPID=`ps -ef|grep jenkins.war|grep -v grep|awk '{print $2}'`
        if [ -z ${jenkinsPID} ];then
                echo "0"
        else
                echo ${jenkinsPID}
        fi
}

#停止jenkins
function stop(){
        local runFlag=$(isRuning)
        if [ ${runFlag} -eq "0" ];then
                echo "Jenkins is already stoped."
        else
                `kill -9 ${runFlag}`
                echo "Stop jenkins success."
        fi
}

#启动jenkins
function start(){
        local runFlag=$(isRuning)
        echo "${runFlag}"
        if [ ${runFlag} -eq "0" ];then
                `${java_home}/bin/java -jar ${jenkins_war_path}/jenkins.war --httpPort=${jenkins_http_port} &` > /dev/null
                if [ $? -eq 0 ];then

                        echo "Start jenkins success."
                        exit
                else
                        echo "Start jenkins fail."
                fi
        else
                echo  "Jenkins is running now."
        fi
}

#重启jenkins
function restart(){
        local runFlag=$(isRuning)
        if [ ${runFlag} -eq "0" ];then
                echo "Jenkins is already stoped."
                exit
        else
                stop
                start
                echo "Restart jenkins success."
        fi
}

#根据输入的参数执行不同的动作
#参数不能为空
if [ -z ${args} ];then
        echo "Arg can not be null."
        exit
#参数个数必须为1个
elif [ $# -ne 1 ];then
        echo "Only one arg is required:start|stop|restart"
#参数为start时启动jenkins
elif  [ ${args} = "start" ];then
        start
#参数为stop时停止jenkins
elif [ ${args} = "stop" ];then
        stop
#参数为restart时重启jenkins
elif [ ${args} = "restart" ];then
        restart
else
        echo "One of following args is required: start|stop|restart"
        exit 0
fi

4.jenkins.sh添加执行权限

chmod u+x jenkins.sh

5.启动

./jenkins.sh start

6.启动报错
在这里插入图片描述
7.解决方案

./jenkins.sh stop
yum -y install fontconfig.x86_64

8.再次启动
在这里插入图片描述

2.镜像加速

1.jenkins默认镜像地址:https://updates.jenkins.io/update-center.json

2.镜像地址列表

常见的jenkins镜像地址有以下地址

镜像名镜像地址
清华大学https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
华为https://mirrors.huaweicloud.com/jenkins/updates/update-center.json
xmissionhttp://mirror.xmission.com/jenkins/updates/update-center.json

也可参见官方网站提供的可用镜像地址:http://mirrors.jenkins-ci.org/status.html

3.配置加速

修改jenkins配置(插件站点更新,加速联网)

vi /root/.jenkins/hudson.model.UpdateCenter.xml

将XML内的url的值替换为:http://mirror.xmission.com/jenkins/updates/update-center.json

<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>http://mirror.xmission.com/jenkins/updates/update-center.json</url>
  </site>
</sites>

4.官网提供的yum方式安装

1.安装密钥

 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
 sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

2.安装

  yum install fontconfig java-17-openjdk
  yum install jenkins

5.访问

1.浏览器访问jenkins,端口8888: http://ip:8888/

2.获取管理员密码

cat /root/.jenkins/secrets/initialAdminPassword

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(收藏)数据治理:一文讲透数据安全

数据治理&#xff1a;一文讲透数据安全 数据安全是数据治理的核心内容之一&#xff0c;随着数据治理的深入&#xff0c;我不断的碰到数据安全中的金发姑娘问题&#xff08;指安全和效率的平衡&#xff09;。 DAMA说&#xff0c;降低风险和促进业务增长是数据安全活动的主要…

【从零开始学习Java重要集合】深入解读ThreadLocal类

目录 前言&#xff1a; ThreadLocal&#xff1a; ThreadLocal的内部结构&#xff1a; ThreadLocal的常用方法&#xff1a; 1.set方法&#xff1a; 2.get方法&#xff1a; 3.setInitialValue方法 remove方法&#xff08;&#xff09;&#xff1a; ThreadLocalMap&…

第十二章 Java内存模型与线程(一)

文章目录 12.3 Java内存模型12.3.1 主内存与工作内存12.3.2 内存间交互操作小结12.3.3 对于volatile型变量的特殊规则12.3.5 原子性、可见性与有序性12.3.6 先行发生原则 12.3 Java内存模型 12.3.1 主内存与工作内存 1.Java 内存模型规定了所有的变量都存储在主内存&#xff…

Java反转单链表

/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/ //核心思想&#xff0c;利用cur和Curnex…

驱动树莓派直流电机(二)——python

一、安装spyder 我喜欢用spyder编写python 有两种方法安装spyder&#xff0c;第一种&#xff08;版本更新&#xff09;&#xff0c;但是我更细化第二种&#xff0c;简单 方法一&#xff1a;在ubuntu PC端输入如下代码 wait~~~~~~~~~~~ 安装的慢就用下面这个代码 或者设置切…

脱离于ASP.NET 和Visual Studio编辑Razor脚本

Razor Pad是一个编辑Razor脚本的工具&#xff0c;脱离于ASP.NET 和Visual Studio。 github地址&#xff1a;https://github.com/RazorPad/RazorPad 如果在编译源码时出现&#xff1a;签名时出错: 未能对 bin\Debug\app.publish\RazorPad.exe 签名。SignTool Error: No certifi…

JFinal学生信息管理系统

JFinal学生信息管理系统 项目地址&#xff1a;mendianyu/StudentManage: JFinal学生信息管理系统 (github.com) 环境介绍&#xff1a; IDE&#xff1a;IDEA 2021.2.3 jdk:1.8 maven:3.6.3 项目介绍&#xff1a;JFinal框架实现的学生信息管理系统&#xff0c;完成简单的学生信…

一文解析低代码平台

一、低代码概念 低代码开发平台是一种无需编码或者只需要少量代码即可快速生成应用程序的开发平台&#xff0c;通过可视化进行应用程序开发的方法&#xff0c;让不同经验水平的开发人员可以通过图形化的用户界面&#xff0c;使用拖拽组件和模型驱动的逻辑来创建网页和移动应用程…

【QT】多层QTreeWidget与QStackedWidget的关联操作

通过点击多层QTreeWidget来控制QStackedWidget中的page页面切换 treeWidget设计 treeWidget设计&#xff1a; // treeWidget设计ui->treeWidget->clear();ui->treeWidget->setColumnCount(1);//第一层QStringList l;l<<"管理系统";QTreeWid…

JavaScript基础(26)_dom增删改练习

<!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><title>DOM增删改练习</title><link rel"stylesheet" href"../browser_default_style/reset.css"><style>table {borde…

分布式事务:构建无障碍的云原生应用的完美解决方案

目录 一、前言 二、分布式事务概述 2.1 什么是分布式事务 2.2 分布式事务的挑战 2.3 分布式事务的分类 三、传统解决方案分析 3.1 两阶段提交协议&#xff08;2PC&#xff09; 3.2 三阶段提交协议&#xff08;3PC&#xff09; 3.3 补偿事务 3.4 其他传统解决方案 四…

Qt/QML编程学习之心得:slider(34)

滑条slider&#xff0c;有时也成为进度条progressbar&#xff0c;在GUI界面中也是经常用到的。 import QtQuick 2.9 import QtQuick.Controls 2.0 import QtQuick.Layouts 1.2ApplicationWindow {id:rootvisible: truewidth: 1920height: 720//title: qsTr("Hello World&q…

慕尼黑工业大学最新提出!单目实时密集建图的混合隐式场方法

作者&#xff1a;小柠檬 | 来源&#xff1a;3DCV 在公众号「3DCV」后台&#xff0c;回复「原论文」可获取论文pdf 我们提出了一种新颖的方法&#xff0c;它将基于深度学习的密集SLAM与神经隐式场相结合&#xff0c;实时生成密集地图&#xff0c;而无需像以前的方法那样依赖RGB-…

Vue的api接口封装以及使用说明、模块说明

在Api目录下面建立user.js&#xff0c;如果以后有不同的接口请求地址都可以单独创建不同的&#xff0c;目的是方便维护&#xff01; import request from /utils/request 这个代码是引入之前封装好的 request.js 文件&#xff0c;具体可以参考上门一篇文档 Vue的request.js模…

基于springboot生鲜交易系统源码和论文

首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包括软件架构模式、整体功能模块、数据库设计。本项…

Seata TC端协调全局事务

1、Seata server注册器 //来自RM分支事务注册 super.registerProcessor(MessageType.TYPE_BRANCH_REGISTER, onRequestProcessor, messageExecutor); //开启全局事务 super.registerProcessor(MessageType.TYPE_GLOBAL_BEGIN, onRequestProcessor, messageExecutor); //提交全…

ubuntu安装mysql(tar.xz)

0:本机Ubuntu的版本为 腾讯云 18.04 1&#xff1a;下载地址 MySQL &#xff1a;&#xff1a; 下载 MySQL 社区服务器 2&#xff1a;上传文件到服务器 3:解压 sudo sumv mysql-8.2.0-linux-glibc2.17-x86_64-minimal.tar.xz /usrtar -xvf mysql-8.2.0-linux-glibc2.17-x86_6…

谷歌最新医学领域LLM大模型:AMIE

2024年1月11日Google 研究院发布最新医疗大模型AMIE&#xff1a;用于诊断医学推理和对话的研究人工智能系统。 文章链接&#xff1a;Articulate Medical Intelligence Explorer (AMIE) giuthub&#xff1a;目前代码未开源 关于大模型之前有过一篇总结&#xff1a;大语言模型(L…

小程序基础学习(组件传参)

原理&#xff1a;通知在组件标签中传递参数已达到传参的目的 在组件的js的 properties中接受传递来的参数 然后在页面是展示这些数据 源码&#xff1a; <!--components/my-info/my-info.wxml--> <view class"title"> <text class"texts"&g…

【LangChain学习之旅】—(8) 输出解析:用OutputParser生成鲜花推荐列表

【LangChain学习之旅】—&#xff08;8&#xff09; 输出解析&#xff1a;用OutputParser生成鲜花推荐列表 LangChain 中的输出解析器Pydantic&#xff08;JSON&#xff09;解析器实战第一步&#xff1a;创建模型实例第二步&#xff1a;定义输出数据的格式第三步&#xff1a;创…