持续集成(harbor jenkins gitlab k8s)

本文章仅作为个人笔记

文章 参考

  • 安装jenkins (下面列出多种方式,选一种即可)

    • jenkins docker下安装 占用8080/50000端口

      docker run -p 8180:8080 -p 50000:50000 --name jenkins -d jenkins/jenkins
      
    • yum安装jenkins

      wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
      rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
      yum install jenkins
      
    • war安装jenkins

      wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.253/jenkins.war
      # 运行jenkins,可自己指定端口
      java -jar jenkins.war --httpPort=8080
      # 如果安装的插件比较多,可更改为国内仓库: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
      
    • 安装好进行一些必要的操作

      # 查看jenkins初始登录密码(docker logs jenkins基本可搞定,下面的cat为容器内执行,为特殊情况下使用)
      # cat /var/jenkins_home/secrets/initialAdminPassword
      # 安装必要的插件(很多插件基本在初始化时已经装好了) Kubernetes/GitLab
      
    • 基本工具创建完毕,开始进行项目相关配置( gitlab + jenkins )

    • jenkins服务器内运行

      # 如果已经有key可以不用做这一步
      ssh-keygen
      # 输出的值为公钥
      cat ~/.ssh/id_rsa.pub
      # 输出的值为私钥
      cat ~/.ssh/id_rsa
      
    • git gui 操作

      # 提交项目至git
      # 添加git下jenkins用户
      # 为jenkins用户添加相应项目Developer权限
      # 为jenkins用户添加jenkins服务器的key(公钥)
      # 为jenkins用户创建Access Token(勾选api/read_user/red_repository/write_repository)并复制
      
    • jenkins gui 操作

      # 配置gitlab(Manage Jenkins->Configure System -> 配置->Gitlab)
      # Gitlab host URL 填写gitlab访问地址 Credentials 选择新建,类型选择GitLab API token
      # API token填之前git复制的Access Token,新增之后Credentials选择新建的Credentials,Test Connection没有问题选择保存。
      # 配置 Git plugin(Manage Jenkins->Configure System -> 配置->Git plugin)
      # 设置默认用户名及邮箱后保存
      
    • harbor gui 操作

      # 创建jenkins用户
      # 创建项目
      # 为项目添加jenkins用户为开发人员
      
  • 测试

    • 配置完 git/jenkins/harbor在Jenkins管理页面创建任务,起个名字,选择Freestyle project。

      # 源码管理选择git,输入git地址(注意使用 git@git....那个地址),在Credentials添加jenkins
      # 选择SSH Username with private key
      # Username使用jenkins,选择Private Key->Enter direcily,输入之前jenkins容器获取的私钥,选择添加
      # 先应用,再选择构建触发器,勾选Poll SCM,输入 H/1 * * * * 再应用(每分钟检测一次)
      # 选择 构建,添加构建步骤,选择 Execute shell,Execute shell 输入 \cp -r $WORKSPACE /tmp/temp
      # 此处的 \cp -r $WORKSPACE /tmp/temp 为复制代码至 /tmp/temp目录
      # 点击保存,再点击立即构建,查看 /tmp/temp 目录是否存在代码,即可测试配置是否ok。
      
    • gitlab + jenkins 集成完毕,继续 k8s + jenkins

      # Manage Jenkins -> Configure System  -> Cloud -> add a new Cloud -> Kubernets
      # Kubernets Cloud details -> 
      # 名称自定义 地址: https://:6443 服务器证书key: 具体参考参考
      # kubenetes 命名空间: default 
      # 凭据-> 添加:具体参考参考
      
    • 配置完 git/jenkins/harbor在Jenkins管理页面创建任务,起个名字,选择流水线,复制hookurl 参考

      # 源码管理选择git,输入git地址(注意使用 git@git....那个地址),在Credentials添加jenkins
      # 选择SSH Username with private key
      # Username使用jenkins,选择Private Key->Enter direcily,输入之前jenkins容器获取的私钥,选择添加
      # 先应用,再选择构建触发器,勾选 Build when a change is....,使用默认勾中项或自定义
      # Rebuild open Merge Requests 设置 On push to source branch 
      # 点击高级,点击生成Secret token,并复制 
      # 选择 构建,添加构建步骤,选择 Excute shell
      # 输入构建命令
      chmod +x ./gradlew
      ./gradlew build makeMYSjar
      docker build -t dm .
      docker tag  ://:
      docker login :
      docker push ://:
      kubectl apply -f /service/temp.yaml --record
      
    • git gui 操作 Admin Area-> System Hooks

      # URL输入之前流水线生成的的hookUrl,以及token。至此webhook关联完成
      

你可能感兴趣的:(持续集成(harbor jenkins gitlab k8s))