
Jenkins集成Sonar Qube_南宫乘风的博客-CSDN博客
Jenkins流水线整合钉钉_南宫乘风的博客-CSDN博客Kubernetes安装Jenkins_南宫乘风的博客-CSDN博客
目录
https://blog.csdn.net/heian_99/article/details/124985786
- 插件:
- kubernets
- pipeline
- docker pipeline
- docker
- Kubernetes Cli
- Config File Provider
- Pipeline Utility Steps
-
- Jenkins源:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
Dashboard > 系统管理 > 节点管理 > configureClouds
参考:https://github.com/jenkinsci/kubernetes-plugin



这里是配置连接Kubernetes集群,启动 Jenkins Slave 代理的相关配置。
这里配置 Jenkins Slave 在 kubernetes 集群中启动的 Pod 的配置,这里将设置四个镜像,分别是:
这里将这四个镜像融入到一个 Pod 之中,方便执行各种命令来完成持续部署交互过程。


- [root@master01 Jenkins]# cat maven.yaml
- apiVersion: v1
- kind: PersistentVolumeClaim
- metadata:
- name: maven-pvc
- namespace: jenkins
- spec:
- storageClassName: "nfsdata"
- accessModes:
- - ReadWriteMany
- resources:
- requests:
- storage: 10Gi
- Kubernetes地址:https://kubernetes.default.svc.cluster.local/
-
- Jenkins-master:http://jenkins.jenkins.svc.cluster.local:8080
-
- Jenkins-slave:jenkins.jenkins.svc.cluster.local:50000
-
-
-
- jnlp-slave
- cnych/jenkins:jnlp6
-
- maven
- maven:3.8.5-openjdk-8-slim
-
- docker
- registry.cn-shanghai.aliyuncs.com/mydlq/docker:18.06.2-dind
-
- helm-kubectl
- registry.cn-shanghai.aliyuncs.com/mydlq/helm-kubectl:2.13.1
-
-
- /var/run/docker.sock
- /usr/bin/docker
- /etc/docker
注意:docker需要填写sleep


- def label = "jnlp-slave"
-
- podTemplate(label: label,cloud: 'kubernetes' ){
- node (label) {
- stage('Git阶段'){
- echo "1、开始拉取代码"
- sh "git version"
- }
- stage('Maven阶段'){
- container('maven') {
- echo "2、开始Maven编译、推送到本地库"
- sh "mvn -version"
- }
- }
- stage('Docker阶段'){
- container('docker') {
- echo "3、开始读取Maven pom变量,并执行Docker编译、推送、删除"
- sh "docker version"
- }
- }
- stage('Helm阶段'){
- container('helm-kubectl') {
- echo "4、开始检测Kubectl环境,测试执行Helm部署,与执行部署"
- sh "helm version"
- }
- }
- }
- }


- pipeline {
- agent
- {
- label 'jnlp-slave'
- }
-
- // 存放所有任务的合集
- stages {
- stage('拉取Git代码') {
- steps {
- echo '拉取Git代码'
- sh 'git clone https://gitee.com/chengfeng99/java-demo.git'
- }
- }
-
- stage('检测代码质量') {
- steps {
- echo '检测代码质量'
- withSonarQubeEnv('sonarqube') { // Will pick the global server connection you have configured
- // 这里使用名字叫做maven的容器运行
- container("maven") {
- sh '''
- cd /home/jenkins/agent/workspace/k8s-demo/java-demo
- mvn sonar:sonar -Dsonar.projectname=${JOB_NAME} -Dsonar.projectKey=${JOB_NAME} -Dsonar.java.binaries=target/ -Dsonar.login=19d0d6b885e18455d257d61da08776bd4e180c04
- '''
- }
- }
- }
- }
- stage('构建代码') {
- steps {
- echo '构建代码'
- container('maven') {
- sh '''
- cd /home/jenkins/agent/workspace/k8s-demo/java-demo
- mvn clean package -Dmaven.test.skip=true
- '''
- //打包跳过测试
- }
- }
- }
-
- stage('制作自定义镜像并发布Harbor') {
- steps {
- echo '制作自定义镜像并发布Harbor'
- }
- }
-
- stage('基于Harbor部署工程') {
- steps {
- echo '基于Harbor部署工程'
- }
- }
- }
- }


