美文网首页k8s
持续集成Jenkins+Harbor

持续集成Jenkins+Harbor

作者: 泥人冷风 | 来源:发表于2021-01-04 23:25 被阅读0次

    1 环境准备

    No 主机名 域名 作用 IP 安装
    1 code
    jenkins
    code.local.com
    jenkins.local.com
    代码版本管理
    代码编译部署
    192.168.8.181
    192.168.8.183
    参考
    2 harbor reg.local.com 镜像仓库 192.168.8.131 参考

    1.1 hosts设置

    $ vi /etc/hosts
    192.168.8.181 code.local.com
    192.168.8.183 jenkins.local.com
    192.168.8.131 reg.local.com
    

    1.2 提前在Jenkins安装Maven(因为yum install maven只是3.05版本)

    $  wget http://www-eu.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
    $ tar xvf apache-maven-3.6.3-bin.tar.gz
    $ sudo mv apache-maven-3.6.3 /opt/maven
    $ cat <<EOF | sudo tee /etc/profile.d/maven.sh
    $ export MAVEN_HOME=/opt/maven
    $ export PATH=\$PATH:\$MAVEN_HOME/bin
    $ EOF
    $ source /etc/profile.d/maven.sh
    $ echo $MAVEN_HOME
    /opt/maven
    $ echo $PATH
    

    1.3 在Jenkins安装docker

    yum install -y yum-utils device-mapper-persistent-data lvm2
    
    #紧接着配置一个稳定的仓库、仓库配置会保存到/etc/yum.repos.d/docker-ce.repo文件中
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    #更新Yum安装的相关Docker软件包&安装Docker CE
    yum update -y && yum install docker-ce
    
     gpasswd -a jenkins docker
    
    vi /etc/sysconfig/docker
    ...
    OPTIONS='--insecure-registry reg.local.com'
    ...
    #同时vi /usr/lib/systemd/system/docker.service
    ...
    ExecStart=/usr/bin/dockerd  --insecure-registry reg.local.com
    ...
    systemctl daemon-reload
    systemctl enable docker
    systemctl start docker
    
    systemctl restart jenkins
    
    

    接着持续集成Harbor

    2 配置Jenkins

    2.1 安装插件

    Git Parameter

    Docker Pipeline

    2.2 为Harbor添加凭证

    记住:Harbor_crt

    2.3 创建pipeline项目

    2.4 丢弃旧的构建

    2.5 参数化构建

    2.6 编写pipeline脚本

    完整脚本如下:

    env.CREDENTIALSID = 'jenkins'
    env.GIT_URL = 'ssh://git@code.local.com/web/web-demo.git'
    env.HARBOR_CRT = 'Harbor_crt'
    env.HARBOR = 'reg.local.com'
    env.HARBOR_PROJECT = 'dev/web-demo'
    node {
        def app
        //拉取代码
        stage('get clone repo') {
            git  credentialsId: env.CREDENTIALSID, url: env.GIT_URL
        }
        //代码编译
        stage('Mave Build'){
          sh '/opt/maven/bin/mvn clean package -Dmaven.test.skip=true'
        }
        stage('Build Image'){
          sh 'cp Dockerfile target'
          sh 'cd $WORKSPACE/target'
          app = docker.build(env.HARBOR_PROJECT + ":$Tag","$WORKSPACE/target")
        }
        stage('Push Image'){
            docker.withRegistry("http://"+ env.HARBOR, env.HARBOR_CRT){
                app.push()
            }
        }
        stage('Cleaning up'){
          sh "docker rmi $HARBOR/"+"$HARBOR_PROJECT:$Tag"
        }
    }
    

    点击[保存]按钮即可

    2.7 完成构建

    通过最后阶段,全绿说明成功

    2.8 验证一下Harbor

    相关文章

      网友评论

        本文标题:持续集成Jenkins+Harbor

        本文链接:https://www.haomeiwen.com/subject/mkkyoktx.html