• gitlab CICD


    1. 安装gitlab-runner 这里不再介绍  这里选择docker 模式

    2. 使用gitlab ci 工具 cicd 代码流程

      代码检查--> docker build   -->   更新harbor 服务器   -->   同步到kubernetes --> 发送邮件通知

     

    3.在项目的主目录创建.gitlab-ci.yml 文件

    stages:
      - scanner
      - sendmail
      - build
      - update_img
      - sync_img
      - deploy
      - check_pod
      - send_mail
    variables:     
      namespace: "test"
      deployment_name: "platform-api"
      project: "harbor.test.com/cicd/platform-api"
      release: "latest"
      harbor: "http://harbor.test.com"
      DOCKER_HARBOR_USER: "admin"
      DOCKER_HARBOR_PASSWD: "Harboreeee12345"
      BASE_IMAGE: "harbor.test.com/lks/cicd/initbase:v1"
      DOCKER_PUSH_IMAGE: "harbor.test.com/lks/cicd/dockerpush:git"
      KUBECTL_TOOL: "harbor.test.com/devel-tool/kubectl_tool:latest"
      mail_list: "test@com"
    include:
      - local: '.gitlab/check/SonarqubeCheck.yml'
      - local: '.gitlab/docker/DefaultDockerBuild.yml'
      - local: '.gitlab/docker/PushImage.yml'
      - local: '.gitlab/Kubernetes/SyncImage.yml'
      - local: '.gitlab/Kubernetes/CheckPod.yml'
      - local: '.gitlab/check/SendMail.yml'

    4. 功能部署使用include 方式加载本地yml文件 。

    1)代码检查 .gitlab/check/SonarqubeCheck.yml

    image: harbor.test.com/ci/ubuntu-sonarqube-nodejs-scanner:v4       
    example-master-sonar:
      stage: scanner
      only:
        - master
        - merge_requests
      tags:
        - sonar-docker
      script:
        - sonar-scanner-4.4.0 -Dsonar.projectName=$CI_PROJECT_NAME -Dsonar.projectKey=$CI_PROJECT_NAME -Dsonar.branch.name=${CI_COMMIT_REF_NAME} -Dsonar.host.url=http://isonar.test.com -Dsonar.sourceEncoding=UTF-8
    
    example-develop-sonar:
      stage: scanner
      only:
        - develop
      tags:
        - sonar-docker
      script:
        - sonar-scanner-4.4.0 -Dsonar.projectName=$CI_PROJECT_NAME -Dsonar.projectKey=$CI_PROJECT_NAME -Dsonar.branch.name=${CI_COMMIT_REF_NAME} -Dsonar.language=nodejs -Dsonar.host.url=http://isonar.test.com
    
    example-feature-sonar:
      stage: scanner
      only:
        - /^feature-.*$/
      tags:
        - sonar-docker
      script:
        - sonar-scanner-4.4.0 -Dsonar.projectName=$CI_PROJECT_NAME -Dsonar.projectKey=$CI_PROJECT_NAME -Dsonar.branch.name=${CI_COMMIT_REF_NAME} -Dsonar.host.url=http://isonar.test.com -Dsonar.sourceEncoding=UTF-8

    2)打包docker build  images          .gitlab/docker/DefaultDockerBuild.yml

    docker-build:
      image: $BASE_IMAGE
      stage: build
      tags:
        - kube-runner
      script:
        - echo "$project:$CI_COMMIT_SHORT_SHA $CI_JOB_ID"
        - docker build -t $project:$CI_COMMIT_SHORT_SHA --no-cache .
        - docker tag $project:$CI_COMMIT_SHORT_SHA $project:$release
      retry: 2
      rules:
        - exists:
            - Dockerfile

    3)  上传到harbor  中  .gitlab/docker/PushImage.yml

    docker-build:
      image: $BASE_IMAGE
      stage: build
      tags:
        - 10.121.116.100
      script:
        - echo "$project:$CI_COMMIT_SHORT_SHA $CI_JOB_ID"
        - docker build -t $project:$CI_COMMIT_SHORT_SHA --no-cache .
        - docker tag $project:$CI_COMMIT_SHORT_SHA $project:$release
      retry: 2
      rules:
        - exists:
            - Dockerfile

    4) 同步kubernetes deployment 中

    deploy_dev:
      image: $KUBECTL_TOOL
      stage: sync_img
      script:
        - kubectl set image deployment $deployment_name *=$project:$CI_COMMIT_SHORT_SHA -n $namespace --kubeconfig=.gitlab/kube_env/10.121.12.120/admin.conf
      tags:
        - k8s-runner1
      only:
        - master
        - merge_requests

    gitlab 内置变量

    $CI_COMMIT_SHORT_SHA      commit_id_hash

    $CI_JOB_ID          job id
     $CI_PROJECT_URL               项目的url 
      
        $GITLAB_USER_EMAIL         提交者的mail 地址
  • 相关阅读:
    Linux文件和目录的属性及权限
    chkconfig原理
    Linux启动过程
    正则表达式(grep,awk,sed)和通配符
    Linux系统目录结构:目录层次标准、常用目录和文件
    Linux系统目录结构
    虚拟机快照和克隆
    Linux系统的基础优化
    Linux系统应用管理:增加普通用户(密码管理等)
    [译]java9新特性:在接口中用pirvate方法让default(java8接口特性)更简练
  • 原文地址:https://www.cnblogs.com/zhenhui/p/14361971.html
Copyright © 2020-2023  润新知