Centos 8.2 本地部署 Jenkins

news2024/11/23 12:09:34

在这里插入图片描述

文章目录

    • 1. 简介
    • 2. 准备条件
    • 3. 安装依赖工具
    • 4. 配置 jenkins 源
    • 5. 安装 java 17
    • 6. 安装 Jenkins
    • 7. 登陆
    • 8. 安装插件
      • 8.1 kubernets 插件
      • 8.2 git 插件
      • 8.3 docker 插件
    • 9. 创建 pipeline job
      • 9.1 加载本地 Jenkinsfile 构建
      • 9.2 git 构建
    • 10. 问题

1. 简介

Jenkins 是一个 CI/CD 工具。这里CI是指持续集成,CD是指持续交付。Jenkins 也被认为是自动化工具或服务器,它有助于自动化与构建、测试和部署相关的软件开发。

2. 准备条件

  • 系统:centos 8.2
  • cpu:4
  • 内存:8G
  • 硬盘:40G

3. 安装依赖工具

  1. 安装依赖
sudo dnf -y install make autoconf automake cmake perl-CPAN libcurl-devel libtool gcc gcc-c++ glibc-headers zlib-devel git-lfs telnet lrzsz jq expat-devel openssl-devel
  1. 安装 Git

cd /tmp
wget --no-check-certificate https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.38.1.tar.gz
tar -xvzf git-2.38.1.tar.gz
cd git-2.38.1/
./configure
make
sudo make install
$ git --version          # 输出 git 版本号,说明安装成功
git version 2.38.1

4. 配置 jenkins 源

  • 官方 Linux 本地安装 Jenkins
echo "192.168.10.90 jenkins_master " | sudo tee -a /etc/hosts

dnf 命令软件更新

sudo dnf update -y
sudo dnf repolist

下载 jenkins 源

sudo dnf install wget -y
sudo wget http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo -O /etc/yum.repos.d/jenkins.repo

运行以下 rpm 命令以导入 Jenkins 包的 GPG 密钥

sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

5. 安装 java 17

查询 java 版本

dnf list java* --showduplicates  | sort -r
Last metadata expiration check: 0:00:38 ago on Tue 06 Dec 2022 12:00:53 PM CST.
javapackages-tools.noarch                    5.3.0-1.module_el8.0.0+11+5b8c10bd appstream
javapackages-filesystem.noarch               5.3.0-1.module_el8.0.0+11+5b8c10bd appstream
java-atk-wrapper.x86_64                      0.33.2-6.el8                       appstream
java-1.8.0-openjdk.x86_64                    1:1.8.0.312.b07-2.el8_5            appstream
java-1.8.0-openjdk.x86_64                    1:1.8.0.312.b07-1.el8_4            appstream
java-1.8.0-openjdk-src.x86_64                1:1.8.0.312.b07-2.el8_5            appstream
java-1.8.0-openjdk-src.x86_64                1:1.8.0.312.b07-1.el8_4            appstream
java-1.8.0-openjdk-slowdebug.x86_64          1:1.8.0.312.b07-2.el8_5            appstream
java-1.8.0-openjdk-slowdebug.x86_64          1:1.8.0.312.b07-1.el8_4            appstream
java-1.8.0-openjdk-javadoc-zip.noarch        1:1.8.0.312.b07-2.el8_5            appstream
java-1.8.0-openjdk-javadoc-zip.noarch        1:1.8.0.312.b07-1.el8_4            appstream
java-1.8.0-openjdk-javadoc.noarch            1:1.8.0.312.b07-2.el8_5            appstream
java-1.8.0-openjdk-javadoc.noarch            1:1.8.0.312.b07-1.el8_4            appstream
java-1.8.0-openjdk-headless.x86_64           1:1.8.0.312.b07-2.el8_5            appstream
java-1.8.0-openjdk-headless.x86_64           1:1.8.0.312.b07-1.el8_4            appstream
java-1.8.0-openjdk-headless-slowdebug.x86_64 1:1.8.0.312.b07-2.el8_5            appstream
java-1.8.0-openjdk-headless-slowdebug.x86_64 1:1.8.0.312.b07-1.el8_4            appstream
java-1.8.0-openjdk-devel.x86_64              1:1.8.0.312.b07-2.el8_5            appstream
java-1.8.0-openjdk-devel.x86_64              1:1.8.0.312.b07-1.el8_4            appstream
java-1.8.0-openjdk-demo.x86_64               1:1.8.0.312.b07-2.el8_5            appstream
java-1.8.0-openjdk-demo.x86_64               1:1.8.0.312.b07-1.el8_4            appstream
java-1.8.0-openjdk-accessibility.x86_64      1:1.8.0.312.b07-2.el8_5            appstream
java-1.8.0-openjdk-accessibility.x86_64      1:1.8.0.312.b07-1.el8_4            appstream
java-17-openjdk.x86_64                       1:17.0.1.0.12-2.el8_5              appstream
java-17-openjdk.x86_64                       1:17.0.0.0.35-4.el8                appstream
java-17-openjdk-static-libs.x86_64           1:17.0.1.0.12-2.el8_5              appstream
java-17-openjdk-static-libs.x86_64           1:17.0.0.0.35-4.el8                appstream
java-17-openjdk-src.x86_64                   1:17.0.1.0.12-2.el8_5              appstream
java-17-openjdk-src.x86_64                   1:17.0.0.0.35-4.el8                appstream
java-17-openjdk-jmods.x86_64                 1:17.0.1.0.12-2.el8_5              appstream
java-17-openjdk-jmods.x86_64                 1:17.0.0.0.35-4.el8                appstream
java-17-openjdk-javadoc-zip.x86_64           1:17.0.1.0.12-2.el8_5              appstream
java-17-openjdk-javadoc-zip.x86_64           1:17.0.0.0.35-4.el8                appstream
java-17-openjdk-javadoc.x86_64               1:17.0.1.0.12-2.el8_5              appstream
java-17-openjdk-javadoc.x86_64               1:17.0.0.0.35-4.el8                appstream
java-17-openjdk-headless.x86_64              1:17.0.1.0.12-2.el8_5              appstream
java-17-openjdk-headless.x86_64              1:17.0.0.0.35-4.el8                appstream
java-17-openjdk-devel.x86_64                 1:17.0.1.0.12-2.el8_5              appstream
java-17-openjdk-devel.x86_64                 1:17.0.0.0.35-4.el8                appstream
java-17-openjdk-demo.x86_64                  1:17.0.1.0.12-2.el8_5              appstream
java-17-openjdk-demo.x86_64                  1:17.0.0.0.35-4.el8                appstream
java-11-openjdk.x86_64                       1:11.0.13.0.8-4.el8_5              appstream
java-11-openjdk.x86_64                       1:11.0.13.0.8-3.el8_5              appstream
java-11-openjdk.x86_64                       1:11.0.13.0.8-1.el8_4              appstream
java-11-openjdk-static-libs.x86_64           1:11.0.13.0.8-4.el8_5              appstream
java-11-openjdk-static-libs.x86_64           1:11.0.13.0.8-3.el8_5              appstream
java-11-openjdk-static-libs.x86_64           1:11.0.13.0.8-1.el8_4              appstream
java-11-openjdk-src.x86_64                   1:11.0.13.0.8-4.el8_5              appstream
java-11-openjdk-src.x86_64                   1:11.0.13.0.8-3.el8_5              appstream
java-11-openjdk-src.x86_64                   1:11.0.13.0.8-1.el8_4              appstream
java-11-openjdk-jmods.x86_64                 1:11.0.13.0.8-4.el8_5              appstream
java-11-openjdk-jmods.x86_64                 1:11.0.13.0.8-3.el8_5              appstream
java-11-openjdk-jmods.x86_64                 1:11.0.13.0.8-1.el8_4              appstream
java-11-openjdk-javadoc-zip.x86_64           1:11.0.13.0.8-4.el8_5              appstream
java-11-openjdk-javadoc-zip.x86_64           1:11.0.13.0.8-3.el8_5              appstream
java-11-openjdk-javadoc-zip.x86_64           1:11.0.13.0.8-1.el8_4              appstream
java-11-openjdk-javadoc.x86_64               1:11.0.13.0.8-4.el8_5              appstream
java-11-openjdk-javadoc.x86_64               1:11.0.13.0.8-3.el8_5              appstream
java-11-openjdk-javadoc.x86_64               1:11.0.13.0.8-1.el8_4              appstream
java-11-openjdk-headless.x86_64              1:11.0.13.0.8-4.el8_5              appstream
java-11-openjdk-headless.x86_64              1:11.0.13.0.8-3.el8_5              appstream
java-11-openjdk-headless.x86_64              1:11.0.13.0.8-1.el8_4              appstream
java-11-openjdk-devel.x86_64                 1:11.0.13.0.8-4.el8_5              appstream
java-11-openjdk-devel.x86_64                 1:11.0.13.0.8-3.el8_5              appstream
java-11-openjdk-devel.x86_64                 1:11.0.13.0.8-1.el8_4              appstream
java-11-openjdk-demo.x86_64                  1:11.0.13.0.8-4.el8_5              appstream
java-11-openjdk-demo.x86_64                  1:11.0.13.0.8-3.el8_5              appstream
java-11-openjdk-demo.x86_64                  1:11.0.13.0.8-1.el8_4              appstream
Available Packages

自 Jenkins 2.357 和 LTS 2.361.1 以来,Jenkins 需要 Java 11 或 17。

$ dnf list java-17-openjdk-devel --showduplicates  | sort -r
Last metadata expiration check: 0:08:00 ago on Tue 06 Dec 2022 12:06:28 PM CST.
java-17-openjdk-devel.x86_64           1:17.0.1.0.12-2.el8_5           appstream
java-17-openjdk-devel.x86_64           1:17.0.0.0.35-4.el8             appstream

Java 是 Jenkins 的必备条件之一,所以运行下面的 dnf 命令来安装 java

sudo dnf install -y java-17-openjdk-devel

查看 java 版本

$ java -version
openjdk version "17.0.1" 2021-10-19 LTS
OpenJDK Runtime Environment 21.9 (build 17.0.1+12-LTS)
OpenJDK 64-Bit Server VM 21.9 (build 17.0.1+12-LTS, mixed mode, sharing)

设置Java环境

$ sudo vi /etc/profile.d/java.sh
export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac)))))
export PATH=$PATH:$JAVA_HOME/bin
export JRE_HOME=/usr/lib/jvm/jre
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

生效

source /etc/profile.d/java.sh

检查

$ echo $JAVA_HOME
/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64

$ env |grep java
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64
CLASSPATH=.:/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64/jre/lib:/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64/lib:/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64/lib/tools.jar
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64/bin

6. 安装 Jenkins

查询最新 Jenkins 版本

$ dnf list jenkins --showduplicates  | sort -r
Last metadata expiration check: 0:16:30 ago on Tue 06 Dec 2022 12:06:28 PM CST.
jenkins.noarch                        2.89.4-1.1                         jenkins
jenkins.noarch                        2.89.3-1.1                         jenkins
jenkins.noarch                        2.89.2-1.1                         jenkins
jenkins.noarch                        2.89.1-1.1                         jenkins
jenkins.noarch                        2.7.4-1.1                          jenkins
jenkins.noarch                        2.73.3-1.1                         jenkins
jenkins.noarch                        2.73.2-1.1                         jenkins
......

安装

sudo dnf -y install jenkins

查询默认安装版本

$ rpm -q jenkins
jenkins-2.375.1-1.1.noarch

启动

sudo systemctl enable jenkins && sudo systemctl start jenkins
$ sudo systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration Server
   Loaded: loaded (/usr/lib/systemd/system/jenkins.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-12-06 12:50:29 CST; 12s ago
 Main PID: 2516 (java)
    Tasks: 52 (limit: 49495)
   Memory: 1.7G
   CGroup: /system.slice/jenkins.service
           └─2516 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/>

Dec 06 12:49:53 jenkins_master jenkins[2516]: Jenkins initial setup is required. An admin user has been created and a p>
Dec 06 12:49:53 jenkins_master jenkins[2516]: Please use the following password to proceed to installation:
Dec 06 12:49:53 jenkins_master jenkins[2516]: 92b6f311ba9b433e894b5242cd4ab23c
Dec 06 12:49:53 jenkins_master jenkins[2516]: This may also be found at: /var/lib/jenkins/secrets/initialAdminPassword
Dec 06 12:49:53 jenkins_master jenkins[2516]: *************************************************************
Dec 06 12:50:29 jenkins_master jenkins[2516]: 2022-12-06 04:50:29.241+0000 [id=34]        INFO        jenkins.InitReact>
Dec 06 12:50:29 jenkins_master jenkins[2516]: 2022-12-06 04:50:29.269+0000 [id=25]        INFO        hudson.lifecycle.>
Dec 06 12:50:29 jenkins_master systemd[1]: Started Jenkins Continuous Integration Server.
Dec 06 12:50:30 jenkins_master jenkins[2516]: 2022-12-06 04:50:30.302+0000 [id=53]        INFO        h.m.DownloadServi>
Dec 06 12:50:30 jenkins_master jenkins[2516]: 2022-12-06 04:50:30.303+0000 [id=53]        INFO        hudson.util.Retri>

如果 firewalld 启动:

YOURPORT=8080
PERM="--permanent"
SERV="$PERM --service=jenkins"

firewall-cmd $PERM --new-service=jenkins
firewall-cmd $SERV --set-short="Jenkins ports"
firewall-cmd $SERV --set-description="Jenkins port exceptions"
firewall-cmd $SERV --add-port=$YOURPORT/tcp
firewall-cmd $PERM --add-service=jenkins
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload

或者关闭firewalld

systemctl stop firewalld.service
systemctl disable firewalld.service

7. 登陆

访问:`http://192.168.10.90:8080

在这里插入图片描述
获取自动生成的密码

$ sudo  cat /var/lib/jenkins/secrets/initialAdminPassword
92b6f311ba9b433e894b5242cd4ab23c

安装插件
在这里插入图片描述
在这里插入图片描述
设置管理用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
界面
在这里插入图片描述
用户状态
在这里插入图片描述
在这里插入图片描述

8. 安装插件

8.1 kubernets 插件

在这里插入图片描述

8.2 git 插件

在这里插入图片描述

8.3 docker 插件

在这里插入图片描述
安装完插件进行重启
在这里插入图片描述

9. 创建 pipeline job

https://github.com/Ghostwritten/jenkins-example-private-repo.git
在这里插入图片描述
在这里插入图片描述

9.1 加载本地 Jenkinsfile 构建

如果SCM 选择 None
在这里插入图片描述
保存后,点击build构建。
console output:
在这里插入图片描述

/var/lib/jenkins/workspace/hello@script/bc6d5aaac091397cf6a4e48610337eabdad7c6ec8ff38cf8699e4e8a0aaaa1c8/Jenkinsfile

我们创建该文件,并编写一个jenkinsfile

$ vim /var/lib/jenkins/workspace/hello@script/bc6d5aaac091397cf6a4e48610337eabdad7c6ec8ff38cf8699e4e8a0aaaa1c8/Jenkinsfile
pipeline {
  agent any
  stages {
    stage('hello') {
      steps {
        sh 'echo "Hello World"'
      }
    }
  }
}

保存后再次构建
在这里插入图片描述

9.2 git 构建

在这里插入图片描述

在这里插入图片描述
获取 github Token
在这里插入图片描述
加载Credentials,选择好分支,确认 Script path,保存。
在这里插入图片描述

10. 问题

在这里插入图片描述
尝试 systemctl restart jenkins

参考:

  • Java requirements
  • Linux install Jenkins
  • How to Add Git Credentials in Jenkins

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

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

相关文章

Transformer是如何进军点云学习领域的?

点击进入—>3D视觉工坊学习交流群0.笔者个人体会:这个工作来自于牛津大学、香港大学、香港中文大学和Intel Labs,发表于ICCV2021。我们知道,Transformer在近两年来于各个领域内大放异彩。其最开始是自然语言处理领域的一个强有力的工具。后…

Unity 动画系统(Animation,Animator,Timeline)

文章目录1. Animation1.1 创建Animation1.2 Animation 属性2. Animator2.1 Animator 组件2.2 Animation 状态2.3 状态控制参数2.4 代码中控制状态3. 代码控制动画的播放/暂停/继续播放1. Animation 1.1 创建Animation 选中需要添加动画的物体,打开Animation面板 …

乡村科技杂志乡村科技杂志社乡村科技编辑部2022年第20期目录

三农资讯 科技特派员助力柘城县大豆玉米带状复合种植见成效 宋先锋;贾志远; 1《乡村科技》投稿:cnqikantg126.com 河南省科技特派员赴遂平县指导多花黑麦草防治 蒋洪杰;欧阳曦; 2 河南省肉牛产业科技特派员服务团到光山县开展技术培训服务 翟媛媛;朱燚波…

la3_系统调用(上)

1. 实验内容 理解操作系统接口;系统调用的实现: 应用程序 调用库函数 (API)API 将 系统调用号 放入 EAX 中, 然后通过中断调用 使系统进入内核态;内核中的中断处理函数 根据系统调用号, 调用对…

通过postgres_fdw实现跨库访问

瀚高数据库 目录 文档用途 详细信息 介绍Postgresql跨库访问中postgres_fdw的使用方法 详细信息 PostgreSQL 外部数据包装器,即 PostgreSQL Foreign Data Wrappers,是现实数据库使用场景中一个非常实用的功能,PostgreSQL 的 FDW 类似于 Ora…

2022年12月编程语言排行榜,数据来了!

2022年迎来了最后一个月,我们可以看到,在这一年中编程语言起起伏伏,有的语言始终炙手可热,而有的语言却逐渐“没落”… 日前,全球知名TIOBE编程语言社区发布了12月编程语言排行榜,有哪些新变化&#xff1f…

木聚糖-聚乙二醇-透明质酸,Hyaluronicacid-PEG-Xylan,透明质酸-PEG-木聚糖

木聚糖-聚乙二醇-透明质酸,Hyaluronicacid-PEG-Xylan,透明质酸-PEG-木聚糖 中文名称:木聚糖-透明质酸 英文名称:Xylan-Hyaluronicacid 别称:透明质酸修饰木聚糖,HA-木聚糖 存储条件:-20C,避光&#xff…

农产品商城毕业设计,农产品销售系统毕业设计,农产品电商毕业设计论文方案需求分析作品参考

项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于web网页的多用户商城系统,整个网站项目使用了B/S架构,基于python的Django框架下开发;用户通过登录网站,查询商品,购买商品,下单&am…

奋勇拼搏绿茵场,永不言败足球魂——2022卡塔尔世界杯纪念

“我从来都不惧怕压力,老实说,我享受这种压力。”——C罗 第一部分:🇶🇦卡塔尔世界杯 2022年卡塔尔世界杯(英语:FIFA World Cup Qatar 2022)是第二十二届世界杯足球赛,是历史上首次在卡塔尔和中…

Apple官方优化Stable Diffusion绘画教程

Apple官方优化Stable Diffusion绘画教程 苹果为M1芯片优化Stable Diffusion模型,其中Mac Studio (M1 Ultra, 64-core GPU)生成512*512的图像时间为9秒。想要1秒出图,可以在线体验3090显卡AI绘画。 AI绘图在线体验 二次元绘图 在线体验地址:Stable Di…

AI模型神预测谁是卡塔尔世界杯冠军

推荐教程:AI模型神预测谁是冠军 2022年卡塔尔世界杯 猜猜他们是谁? 谁是最后的冠军? 2022年FIFA世界杯已经拉开帷幕,全世界的球迷都热切地想要知道:谁将获得那梦寐以求的 大力神杯? 2018年俄罗斯世界杯 方…

1,2-二苯基-1,2-二(4-羧基苯)乙烯 ;CAS: 1609575-40-7

英文名称: 4,4-(1,2-Diphenylethene-1,2-diyl)dibenzoic acid 中文名称: 1,2-二苯基-1,2-二(4-羧基苯)乙烯 MF: C28H20O4 MW: 420.46 CAS: 1609575-40-7 AIE聚集诱导发光材料的特点: 1.在固态下有强…

学编程:Python入门考级必备[11]

目录 1.查找字符串 2.字符串的格式化 3.字符串的转义字符 \ \" 4. 修改字符串 5.字符串连接与分割 附件代码: 炼 知识模块(11) 名符其实--字符串 1.查找字符串 # 1.1用 in 函数 a aa in acacacacaabaac print(a) # 1.2 用index 找不到就报错 b h…

ArcGIS_地质多样性评价方法

详细内容请自行查看参考文献 [1] Forte J P , Brilha J , Pereira D I , et al. Kernel Density Applied to the Quantitative Assessment of Geodiversity[J]. Geoheritage, 2018, 10:205-217. https://doi.org/10.1007/s12371-018-0282-3 本文只介绍如何在ArcGIS中实现该…

PostGIS数据测试-一百万点要素

PostGIS数据测试-一百万点要素 小小测试一下,看看单表百万数据的情况 服务器配置 系统版本:Centos7.9.2009CPU:两颗Intel Xeon Gold 6226R CPU 2.90GHz处理器,共32核心内存:DDR4 256G硬盘:Raid5 共24T数…

树选择排序(Tree Selection Sorting)介绍

简介 或许你有一个疑问:为什么堆排序使用二叉树,但是叫堆排序,而不是树排序? 因为堆排序的前身正是叫做树选择排序(Tree Selection Sorting),使用树结构,但是要稍微简单一些。 高德…

CNN卷积参数量计算

参考:轻量级网络-Mobilenet系列(v1,v2,v3) - 知乎 盘点下每种类型的层计算可学习参数的数量 Input layer:输入层所做的只是读取输入图像,因此这里没有可以学习的参数。 Convolutional layers:一个卷积层,其输入为l个特…

cassandra安装及配置

Cassandra介绍 Cassandra是一个开源的、分布式、无中心节点、弹性可扩展、高可用、容错、一致性协调、面向列的NoSQL数据库。 Cassandra的主要组成部分主要有: • 节点(Node):Cassandra节点是存储数据的地方。 • 数据中心(Data center):数据中心是相关节点的集合。 • 集群…

Vue3 企业级优雅实战 - 组件库框架 - 8 搭建组件库 cli

前面的文章分享了组件库的开发、example、组件库文档,本文分享组件库 cli 开发。 1 为什么要开发组件库 cli 回顾一个新组件的完整开发步骤: 1 在 packages 目录下创建组件目录 xxx: 1.1 使用 pnpm 初始化 package.json,修改 n…

【正点原子FPGA连载】第二十八章 以太网ARP测试实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第二十八章 以太…