首页 > 其他分享 >jenkins部署

jenkins部署

时间:2023-06-07 11:35:02浏览次数:32  
标签:run name 部署 var jenkins docker def

安装

#官方的
docker run \
  -u root \
  -id \
  -p 8777:8080 \
  -p 50000:50000 \
  -v jenkins-data:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkinsci/blueocean

# 民间的
docker run -id -p 8777:8080 -p 50000:50000 -v data:/var/jenkins_home jenkins/jenkins

---------------------------------------------------------------
# 自用的
# 可以使用
# 要给777权限 /root/jeckins/data
docker run \
  -u root \
  -id \
  --restart=always \
  -p 8080:8080 \
  -p 50000:50000 \
  -v /root/jeckins/data:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --name jenkins \
  jenkins/jenkins:2.401.1

替换国内源

cd /root/jeckins/data/updates
sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/https:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json

# 重启使配置生效
docker restart jenkins

PipLine

pipline脚本放到这里

image-20230607102248182

参数化构建

image-20230607102213436

凭据管理

image-20230607102458431

image-20230607102537016

image-20230607102713113

流水线语法

image-20230607102119058

image-20230607102123975

git拉取代码

image-20230607102911038

sh执行代码

image-20230607103028542

jenkinsfile参考

// 公共
def registry = "reg.ctnrs.com"
// 项目
def project = "dev"
def app_name = "java-demo"
def image_name = "${registry}/${project}/${app_name}:${BUILD_NUMBER}"
def git_address = "http:///root/java-demo.git"
// 认证
def secret_name = "registry-pull-secret"
def docker_registry_auth = "xxxxx"
def git_auth = "xxx"
def k8s_auth = "xxx"

pipeline {
  agent {
    kubernetes {
        label "jenkins-slave"
        yaml """
kind: Pod
metadata:
  name: jenkins-slave
spec:
  containers:
  - name: jnlp
    image: "${registry}/library/jenkins-slave-jdk:1.8"
    imagePullPolicy: Always
    volumeMounts:
      - name: docker-cmd
        mountPath: /usr/bin/docker
      - name: docker-sock
        mountPath: /var/run/docker.sock
      - name: maven-cache
        mountPath: /root/.m2
  volumes:
    - name: docker-cmd
      hostPath:
        path: /usr/bin/docker
    - name: docker-sock
      hostPath:
        path: /var/run/docker.sock
    - name: maven-cache
      hostPath:
        path: /tmp/m2
"""
        }
      
      }
    parameters {    
        gitParameter branch: '', branchFilter: '.*', defaultValue: 'master', description: '选择发布的分支', name: 'Branch', quickFilterEnabled: false, selectedValue: 'NONE', sortMode: 'NONE', tagFilter: '*', type: 'PT_BRANCH'
        choice (choices: ['1', '3', '5', '7'], description: '副本数', name: 'ReplicaCount')
        choice (choices: ['dev','test','prod'], description: '命名空间', name: 'Namespace')
    }
    stages {
        stage('拉取代码'){
            steps {
                checkout([$class: 'GitSCM', 
                branches: [[name: "${params.Branch}"]], 
                doGenerateSubmoduleConfigurations: false, 
                extensions: [], submoduleCfg: [], 
                userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_address}"]]
                ])
            }
        }

        stage('代码编译'){
           steps {
             sh """
                mvn clean package -Dmaven.test.skip=true
                """ 
           }
        }

        stage('构建镜像'){
           steps {
                withCredentials([usernamePassword(credentialsId: "${docker_registry_auth}", passwordVariable: 'password', usernameVariable: 'username')]) {
                sh """
                  echo '
                    FROM ${registry}/library/tomcat:v1
                    LABEL maitainer lizhenliang
                    RUN rm -rf /usr/local/tomcat/webapps/*
                    ADD target/*.war /usr/local/tomcat/webapps/ROOT.war
                  ' > Dockerfile
                  docker build -t ${image_name} .
                  docker login -u ${username} -p '${password}' ${registry}
                  docker push ${image_name}
                """
                }
           } 
        }
        stage('部署到K8S平台'){
          steps {
              configFileProvider([configFile(fileId: "${k8s_auth}", targetLocation: "admin.kubeconfig")]){
                sh """
                  sed -i 's#IMAGE_NAME#${image_name}#' deploy.yaml
                  sed -i 's#SECRET_NAME#${secret_name}#' deploy.yaml
                  sed -i 's#REPLICAS#${ReplicaCount}#' deploy.yaml
                  kubectl apply -f deploy.yaml -n ${Namespace} --kubeconfig=admin.kubeconfig
                """
              }
          }
        }
    }
}

标签:run,name,部署,var,jenkins,docker,def
From: https://www.cnblogs.com/clever-cat/p/17462863.html

相关文章

  • harbor 部署
    1、首先安装docker环境(需要服务器能连公网)curl-fsSLhttps://get.docker.com|bash-sdocker--mirrorAliyun---启动docker服务:systemctlstartdocker##启动docker服务systemctlenabledocker##配置docker开机自启动2、安装pip---上传pip安装包:链接:https://pan.......
  • Nginx V1.20.1部署
    https://mp.weixin.qq.com/s/i8XmjuW9yRXwqtiSvACpxg#下载二进制安装包wgethttp://nginx.org/download/nginx-1.20.1.tar.gz#解压tarzxvfnginx-1.20.1.tar.gzcdnginx-1.20.1#安装依赖包yuminstall-ygccgcc-c++pcrepcre-develzlibzlib-developensslopenssl......
  • docker 部署db2
    拉取镜像dockerpullibmcom/db2:11.5.8.0启动db2dockerrun-d-p50000:50000--namedb2--privileged=true-eDB2INSTANCE=test-eDB2INST1_PASSWORD=123456-eDBNAME=testdb-eLICENSE=acceptibmcom/db2:11.5.8.0dockerrun-d在后台启动容器-p50000:50000......
  • k8s实战案例之部署redis单机和redis cluster
    1、在k8s上部署redis单机1.1、redis简介redis是一款基于BSD协议,开源的非关系型数据库(nosql数据库),作者是意大利开发者SalvatoreSanfilippo在2009年发布,使用C语言编写;redis是基于内存存储,而且是目前比较流行的键值数据库(key-valuedatabase),它提供将内存通过网络远程共享的一种服......
  • Kafka 单机部署搭建及其基本使用
    最近在搞Flink框架其中数据源需要模拟kafka取数据,于是自己搭建了一套单机的kafka环境,以便用于测试。现整理如下的笔记,发上来和大家分享。后续还会有kafka的相关笔记,会与大家继续分享!当前文档所部署服务器IP地址为192.168.118.218hostname为web一、kafka环境搭建下载kafka......
  • 自动部署信息采集脚本
    为了满足定制化需求,特对物理主机的多路径软件multipath服务和路径进行了脚本采集,并提供自动化部署路径。1、多路径采集脚本#!/bin/bash#resultincludevalid_num\invalid_num\source/etc/profile##获取ip地址bond1=`ipaddressshowdevbond1|grep172.29|awk-F"/"'{......
  • 违禁词检测API - 私有化部署
    违禁词检测API,支持私有化部署,开箱即用,下载到本地直接运行,直接httpjson查询。下载地址https://github.com/bosnzt/wordscheckhttps://gitee.com/bosnzt/wordscheck运行下[root@localhostsvc]#chmod+xwordscheck[root@localhostsvc]#./wordscheckcurl试下效果[root@......
  • Jenkins自动部署与回滚
    Deploy发布的思路:用户无需填写Version 直接选择对应的项目和Deploy发布即可,会自动生成一个项目名+构建时间的备份文件多人使用Jenkins构建的时候会不知道Version要填什么 而且本人不喜欢使用Version这个变量Rollback回退的思路:选择Rollback 选择对应的回退版本......
  • 如何在centos7部署网站
    如何在centos7部署网站1.买服务器推荐阿里云试用三个月。2.安装数据库,Java,nginxjava安装教程https://www.youtube.com/watch?v=90-0dRxs1fs&ab_channel=LiquidWebmysql安装教程https://www.bilibili.com/video/BV1qS4y1h77S/nginx安装yuminstallnginx其他注意事项:修......
  • MariaDB Galera Cluster 部署
    MariaDBGaleraCluster部署介绍MariaDB作为MySQL的一个分支,在开源项目中已经广泛使用,例如openstack,所以,为了保证服务的高可用性,同时提高系统的负载能力,集群部署是必不可少的。1、MariaDBGaleraCluster介绍GaleraCluster是由第三方公司Codership所研发的一套免费开源的集......