持续集成(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://<ip>: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 <project_name> <host>:<port>/<library>/<project_name>:<version>
      docker login <host>:<port>
      docker push <host>:<port>/<library>/<project_name>:<version>
      kubectl apply -f /service/temp.yaml --record
      
    • git gui 操作 Admin Area-> System Hooks

      # URL输入之前流水线生成的的hookUrl,以及token。至此webhook关联完成
      
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342