anolis os 8.9安装jenkins
一、系统版本
# cat /etc/anolis-release
Anolis OS release 8.9
二、安装
# dnf install -y epel-release
# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
三、安装jdk node
下载:Java Archive Downloads - Java SE 21
# tar -zxf jdk-21.0.5_linux-x64_bin.tar.gz -C /usr/local/
下载:Index of /dist/v20.13.1/
# tar -xf node-v20.13.1-linux-x64.tar.xz -C /usr/local/
# vi /etc/profile
export JAVA_HOME=/usr/local/jdk-21.0.5
export NODE_HOME=/usr/local/node-v20.13.1-linux-x64
export PATH=${MAVEN_HOME}/bin:$JAVA_HOME/bin:${NODE_HOME}/bin:${PATH}
# source /etc/profile
# java --version
java 21.0.5 2024-10-15 LTS
Java(TM) SE Runtime Environment (build 21.0.5+9-LTS-239)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.5+9-LTS-239, mixed mode, sharing)
# node -v
v20.13.1
[root@jekins-anolis-2-100 local]# npm -v
10.5.2
# npm config set registry http://registry.npmmirror.com
# npm install -g pnpm
# pnpm -v
10.3.0
四、安装jenkins
# dnf install jenkins -y


三、启动
# vi /usr/lib/systemd/system/jenkins.service
Environment="JAVA_HOME=/usr/local/jdk-21.0.5"
# systemctl daemon-reload
# systemctl daemon-reload
# systemctl start jenkins
# systemctl enable jenkins
四、配置




修改密码:

点击继续使用admin账户后的密码,如果忘记修改密码退出后,按下面操作:
# cat /var/lib/jenkins/secrets/initialAdminPassword
五、安装插件



语言:






六、配置
6.1 nodejs配置

6.2 git配置

七、kubernetes配置
7.1 账户配置






7.2 clouds配置



八、jenkins使用docker问题解决
8.1 提示docker:permission denied
# cd /var/run/
# ls -lh docker.sock
srw-rw---- 1 root docker 0 2月 12 11:39 docker.sock
# chmod o+rw docker.sock
# ls -lh docker.sock
srw-rw-rw- 1 root docker 0 2月 12 11:39 docker.sock
8.2 denied: requested access to the resource is denied
# docker login 192.168.x.x
会在宿主目录生成下面文件:
# ls .docker/
config.json
拷贝到/var/lib/jenkins下,并修改权限:
# cp -r .docker /var/lib/jenkins/
# chown -R jenkins:jenkins /var/lib/jenkins/.docker
# ls -lh /var/lib/jenkins/.docker
-rw------- 1 jenkins jenkins 80 2月 12 14:14 config.json
九、jenkins配置k8s的managed files



十、测试代码
def gitlab_auth="20968eb7-xxxx-xxxx-xxxx-xxxxxxxxxx"
def gitlab_url="http://git.kyc.com/20220712dev/platform-crm.git"
def k8s_auth = "1b56a2fa-7117-xxxx-xxxx-xxxxxxxxxxxx"
pipeline {agent anyenvironment {IMAGE_BUILD="${BUILD_ID}"JOB_NAME="${env.JOB_NAME}"}parameters {choice (choices: ['master'], description: '指定配置文件',name: 'config')}stages {stage('拉取代码'){steps {checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: "${gitlab_auth}", url: "${gitlab_url}"]]])}}stage('daima代码编译'){steps {sh """cd ${JOB_NAME}echo "代码编译"source /etc/profilenode --versionnpm config set prefix '~/.npm-global'npm config set registry https://registry.npmmirror.comnpm install -g pnpmpnpm installnpm run buildcd dist/tar -czf ../dist.tar ./*"""}}stage('Dockerfile'){steps{sh '''cd ${JOB_NAME}cat > Dockerfile <<EOF
FROM registry.openanolis.cn/openanolis/nginx:1.14.1-8.6
ADD dist.tar /usr/share/nginx/html
EOF'''}}stage('制作上传镜像'){steps{sh '''cd ${JOB_NAME}docker build -t 192.168.2.51/crm/${JOB_NAME}:${IMAGE_BUILD} .docker push 192.168.2.51/crm/${JOB_NAME}:${IMAGE_BUILD}docker rmi 192.168.2.51/crm/${JOB_NAME}:${IMAGE_BUILD}'''}}stage('远程清理'){steps{sh '''cd ${JOB_NAME}rm -rf dist.tar'''}}stage('yaml'){steps{sh '''cat > /var/lib/jenkins/workspace/${JOB_NAME}/${JOB_NAME}/${JOB_NAME}.yaml <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:name: crm-webnamespace: crm
spec:replicas: 2selector:matchLabels:app: crm-webtemplate:metadata:labels:app: crm-webspec:containers:- name: crm-webimage: 192.168.2.51/crm/${JOB_NAME}:${IMAGE_BUILD}ports:- containerPort: 80envFrom:volumeMounts:- name: crm-webmountPath: /usr/share/nginx/html/environment.jssubPath: environment.js- name: tzmountPath: /etc/localtimelivenessProbe:tcpSocket:port: 80initialDelaySeconds: 40periodSeconds: 10readinessProbe:tcpSocket:port: 80initialDelaySeconds: 40periodSeconds: 10volumes:- name: crm-webconfigMap:name: environmentitems:- key: "environment.js"path: "environment.js"- name: tzhostPath:path: /etc/localtimednsPolicy: "None"dnsConfig:nameservers:- 10.96.0.10searches:- svc.cluster.local- cluster.local
---
apiVersion: v1
kind: Service
metadata:name: crm-webnamespace: crm
spec:type: NodePortselector:app: crm-webports:- protocol: TCPport: 80targetPort: 80nodePort: 31641
EOF'''}}stage('应用发布'){steps{configFileProvider([configFile(fileId: "${k8s_auth}", targetLocation: "admin.kubeconfig")]){sh"""cd ${JOB_NAME}kubectl apply -f ${JOB_NAME}.yaml -n crm --kubeconfig=../admin.kubeconfig"""}}}stage("info"){steps{sh """echo "${JOB_NAME}使用的端口号是:192.168.2.34:31641""""}}}
}
--kubeconfig=../admin.kubeconfig
这个需要根据实际目录去写:

相关文章:
anolis os 8.9安装jenkins
一、系统版本 # cat /etc/anolis-release Anolis OS release 8.9 二、安装 # dnf install -y epel-release # wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo # rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.…...
HtmlRAG:RAG系统中,HTML比纯文本效果更好
HtmlRAG 方法通过使用 HTML 而不是纯文本来增强 RAG 系统中的知识表示能力。通过 HTML 清洗和两步块树修剪方法,在保持关键信息的同时缩短了 HTML 文档的长度。这种方法优于现有基于纯文本的RAG的性能。 方法 其实主要看下围绕html提纯思路,将提纯后的…...
TypeScript 中的 reduce计算统计之和
1、计算字符串数组中最大的一项,比如数组:list ["家长会,柘城,喝士大夫","模压,手动阀,阿斯蒂"],求出list中字符串长度之和最大的那项: // 初始化变量来存储字数之和最多的项及其字数之和let maxWord ;let…...
HTTP/2 由来及特性
HTTP/2 的由来 HTTP/1.x 的局限性 性能瓶颈 队头阻塞问题:在HTTP/1.x中,一个TCP连接在同一时间只能处理一个请求,后续请求必须等待前面的请求处理完成并收到响应后才能被处理。例如,当一个页面有多个资源(如图片、脚…...
android 安装第三方apk自动赋予运行时权限
摘要:行业机使用场景点击运行时权限很麻烦,而随着android的演进,对于权限的管控越发严格。故本文通过对系统的修改实现第三方app在运行时直接获取全部权限。 通过属性ro.perms.force_grant控制功能开关。 Index: frameworks/base/services/…...
PyTorch Lightning LightningDataModule 介绍
LightningDataModule 是 PyTorch Lightning 提供的数据模块,用于统一管理数据加载流程(包括数据准备、预处理、拆分、批量加载等)。它的核心作用是将数据处理逻辑与模型解耦,提高代码的可复用性和可读性。 1. LightningDataModule 的作用 ✅ 封装数据预处理:数据下载、清…...
windows平台上 oracle简单操作手册
一 环境描述 Oracle 11g单机环境 二 基本操作 2.1 数据库的启动与停止 启动: C:\Users\Administrator>sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on 星期五 7月 31 12:19:51 2020 Copyright (c) 1982, 2013, Oracle. All rights reserved. 连接到:…...
【网络安全 | 漏洞挖掘】价值3133美元的Google IDOR
未经许可,不得转载。 文章目录 正文正文 目标URL:REDACTED.google.com。 为了深入了解其功能,我查阅了 developer.google.com 上的相关文档,并开始进行测试。 在测试过程中,我发现了一个 XSS 漏洞,但它触发的域名是经过正确沙盒化的 *.googleusercontent.com,这符合 …...
LabVIEW太阳能制冷监控系统
在全球能源需求日益增长的背景下,太阳能作为一种无限再生能源,被广泛应用于各种能源系统中。本基于LabVIEW软件和STM32F105控制器的太阳能制冷监控系统的设计与实现,提供一个高效、经济的太阳能利用方案,以应对能源消耗的挑战。 项…...
10.2 Git 内部原理 - Git 对象
Git 对象 Git 是一个内容寻址文件系统,听起来很酷。但这是什么意思呢? 这意味着,Git 的核心部分是一个简单的键值对数据库(key-value data store)。 你可以向 Git 仓库中插入任意类型的内容,它会返回一个唯…...
作业。。。。。
顺序表按元素删除 参数:删除元素,顺序表 1.调用元素查找的函数 4.根据下表删除 delete_sub(list,sub); //删除元素 void delete_element(int element, Sqlist *list) …...
android 的抓包工具
charles 抓包工具 官网地址 nullCharles Web Debugging Proxy - Official Sitehttps://www.charlesproxy.com/使用手册一定记得看官网 SSL Certificates • Charles Web Debugging Proxy http请求: 1.启动代理: 2.设置设备端口 3.手机连接当前代理 …...
深入剖析推理模型:从DeepSeek R1看LLM推理能力构建与优化
著名 AI 研究者和博主 Sebastian Raschka 又更新博客了。原文地址:https://sebastianraschka.com/blog/2025/understanding-reasoning-llms.html。这一次,他将立足于 DeepSeek 技术报告,介绍用于构建推理模型的四种主要方法,也就是…...
linux中top命令详解
linux中top命令详解 top 是 Linux 中用于实时监控系统资源使用情况的命令,显示包括 CPU、内存、进程等信息的动态视图。以下是 top 命令的详细说明: 命令格式 top [选项] 常用选项 -d:设置刷新间隔时间(秒)。 -n&am…...
前端包管理器的发展以及Npm、Yarn和Pnpm对比
在现代前端开发中,包管理器是不可或缺的核心工具。随着 JavaScript 生态的快速发展,开发者经历了从 npm 一统天下到 Yarn 挑战格局,再到 pnpm 创新突破的技术演进。这里将对三种主流包管理器(npm/Yarn/pnpm)进行全方位…...
node.js+兰空图床实现随机图
之前博客一直用的公共的随机图API,虽然图片的质量都挺不错的,但是稳定性都比较一般,遂打算使用之前部署的兰空图床,自己弄一个随机图 本文章服务器操作基于雨云——新一代云服务提供商的云服务器进行操作,有兴趣的话可…...
【MySQL】高频 SQL 50 题(基础版)
高频SQL50题(基础版) 1.查询 2.连接 MySQL多表查询(联合查询、连接查询、子查询) left join 左连接 我们首先执行LEFT JOIN操作,将两个表的数据基于 id 列进行组合。同样,我们使用 LEFT JOIN 来确保将所…...
盛铂科技 SMF106 低相位噪声贴片式频率综合器模块
在现代通信和电子设备领域,频率综合器作为关键组件,其性能优劣直接影响系统的整体表现。盛铂科技的 SMF106 低相位噪声贴片式频率综合器,以其卓越的性能和独特设计,成为众多高性能系统的选择。 一、频率覆盖范围广,步进…...
C语言如何实现面向对象?——从结构体到自由函数的思考
1. 问题的背景 面向对象编程(OOP)是一种广泛使用的编程范式,其核心思想包括封装、继承和多态。C、Java等语言原生支持OOP,但C语言作为一门面向过程的语言,是否也能实现面向对象?如果可以,如何实…...
深入探索C语言中的字符串处理函数:strstr与strtok
在C语言的字符串处理领域, strstr 和 strtok 是两个非常重要的函数,它们各自承担着独特的功能,为开发者处理字符串提供了强大的支持。 一、strstr函数:字符串查找的利器 strstr 函数用于在一个字符串中查找另一个字符串的首次出现…...
期末复习方法:从知识树到 AI 闪卡,一套更适合大学生的资料整理法
期末复习最常见的误区,是把“资料看完”当成“知识掌握”。很多学生会把课件、教材、PDF、课堂笔记全部打开,从第一页看到最后一页。看时觉得都懂,合上资料却想不起来;刷题时看到熟悉概念,还是不知道该从哪里入手。这不…...
APA 7th Edition多语言引用终极指南:三步解决Word参考文献格式混乱问题
APA 7th Edition多语言引用终极指南:三步解决Word参考文献格式混乱问题 【免费下载链接】APA-7th-Edition Microsoft Word XSD for generating APA 7th edition references 项目地址: https://gitcode.com/gh_mirrors/ap/APA-7th-Edition 还在为APA 7th Edit…...
如何快速实现网易云音乐自动打卡:每天300首轻松冲级LV10的完整指南
如何快速实现网易云音乐自动打卡:每天300首轻松冲级LV10的完整指南 【免费下载链接】neteasy_music_sign 网易云自动听歌打卡签到300首升级,直冲LV10 项目地址: https://gitcode.com/gh_mirrors/ne/neteasy_music_sign 你是否也曾为了提升网易云音…...
在线生成背景:字号层级怎么做才像「正式物料」
🎨 在线生成背景:字号层级怎么做才像「正式物料」在信息爆炸的时代,一份 「看起来就专业」 的物料能迅速赢得信任。当您在线生成报告、海报或演示文稿背景时,文字排版的字号层级是塑造这种正式感与专业度的隐形骨架。它无声地组织…...
3分钟快速指南:MiGPT让小爱音箱秒变AI语音助手完整教程
3分钟快速指南:MiGPT让小爱音箱秒变AI语音助手完整教程 【免费下载链接】mi-gpt 🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。 项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt 还在为小爱音箱的"人工智…...
英雄联盟智能助手Seraphine:5分钟掌握LCU API驱动的战绩查询与自动BP工具
英雄联盟智能助手Seraphine:5分钟掌握LCU API驱动的战绩查询与自动BP工具 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 在英雄联盟的竞技对局中,BP阶段的决策效率直接影响着游戏胜负…...
如何快速掌握WechatDecrypt:微信聊天记录解密的完整指南
如何快速掌握WechatDecrypt:微信聊天记录解密的完整指南 【免费下载链接】WechatDecrypt 微信消息解密工具 项目地址: https://gitcode.com/gh_mirrors/we/WechatDecrypt 你是否曾因更换手机而丢失珍贵的微信聊天记录?或者不小心删除了重要的商务…...
为Godot引擎深度集成Lua:模块编译、特性解析与开发实践
1. 项目概述:为Godot引擎注入Lua灵魂如果你和我一样,既是Godot引擎的忠实拥趸,又对Lua脚本语言那简洁、高效和易于嵌入的特性情有独钟,那么你肯定也想过一个问题:为什么Godot不能原生支持Lua呢?GDScript固然…...
Proteus仿真Arduino光敏电阻,新手最容易忽略的分压电路配置(附完整代码)
Proteus仿真Arduino光敏电阻:分压电路设计的黄金法则与实战避坑指南 在电子设计入门阶段,光敏电阻因其简单易用的特性常被选作第一个模拟量传感器。但许多初学者在Proteus中搭建Arduino仿真电路时,往往会忽略一个关键设计原则——分压电路的配…...
gpt-image-2怎么用?一篇讲清楚最实用的使用方法
最近在(c.877ai.cn)库拉这类AI模型聚合平台上第一时间把GPT-Image-2的API接入跑通了,发布两周踩了不少坑。今天从架构原理、核心功能、API接入、实战技巧四个维度,全方位拆解GPT-Image-2的使用方法。无论你是前端开发者、设计师还…...
