当前位置: 首页 > news >正文

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

这个需要根据实际目录去写:

http://www.lryc.cn/news/537221.html

相关文章:

  • HtmlRAG:RAG系统中,HTML比纯文本效果更好
  • TypeScript 中的 reduce计算统计之和
  • HTTP/2 由来及特性
  • android 安装第三方apk自动赋予运行时权限
  • PyTorch Lightning LightningDataModule 介绍
  • windows平台上 oracle简单操作手册
  • 【网络安全 | 漏洞挖掘】价值3133美元的Google IDOR
  • LabVIEW太阳能制冷监控系统
  • 10.2 Git 内部原理 - Git 对象
  • 作业。。。。。
  • android 的抓包工具
  • 深入剖析推理模型:从DeepSeek R1看LLM推理能力构建与优化
  • linux中top命令详解
  • 前端包管理器的发展以及Npm、Yarn和Pnpm对比
  • node.js+兰空图床实现随机图
  • 【MySQL】高频 SQL 50 题(基础版)
  • 盛铂科技 SMF106 低相位噪声贴片式频率综合器模块
  • C语言如何实现面向对象?——从结构体到自由函数的思考
  • 深入探索C语言中的字符串处理函数:strstr与strtok
  • 浅聊Docker使用、部署
  • jenkins war Windows安装
  • 学习数据结构(9)栈和队列上
  • 【git-hub项目:YOLOs-CPP】本地实现03:跑自己的实例分割模型
  • MySQL和SQL server的区别
  • C#运动控制——轴IO映射
  • DeepSeek官方发布R1模型推荐设置
  • DeepSeek教unity------MessagePack-03
  • 《安富莱嵌入式周报》第350期:Google开源Pebble智能手表,开源模块化机器人平台,开源万用表,支持10GHz HRTIM的单片机,开源CNC控制器
  • img标签的title和alt
  • MambaMorph brain MR-CT