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 any
  environment {
      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/profile
          
          node --version
          npm config set prefix '~/.npm-global'
          npm config set registry https://registry.npmmirror.com
          npm install -g pnpm
          pnpm install
          npm run build
          cd 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-web
  namespace: crm
spec:
  replicas: 2
  selector:
    matchLabels:
      app: crm-web
  template:
    metadata:
      labels:
        app: crm-web
    spec:
      containers:
      - name: crm-web
        image: 192.168.2.51/crm/${JOB_NAME}:${IMAGE_BUILD}
        ports:
        - containerPort: 80
        envFrom:
        volumeMounts:
        - name: crm-web
          mountPath: /usr/share/nginx/html/environment.js
          subPath: environment.js
        - name: tz
          mountPath: /etc/localtime
        livenessProbe:
          tcpSocket:
            port: 80
          initialDelaySeconds: 40
          periodSeconds: 10
        readinessProbe:
          tcpSocket:
            port: 80
          initialDelaySeconds: 40
          periodSeconds: 10
      volumes:
      - name: crm-web
        configMap:
          name: environment
          items:
          - key: "environment.js"
            path: "environment.js"
      - name: tz
        hostPath:
          path: /etc/localtime
      dnsPolicy: "None"
      dnsConfig:
        nameservers:
          - 10.96.0.10
        searches:
          - svc.cluster.local
          - cluster.local
---
apiVersion: v1
kind: Service
metadata:
  name: crm-web
  namespace: crm
spec:
  type: NodePort
  selector:
    app: crm-web
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 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

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

相关推荐
SelectDB1 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220703 天前
如何搭建本地yum源(上)
运维
大树886 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠6 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质6 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工6 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智6 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_6 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉6 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造