持续集成(harbor jenkins gitlab k8s)
2020-08-31 本文已影响0人
草丛里的黄盖
本文章仅作为个人笔记
文章 参考
-
安装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关联完成
-