wordpress 一小时建站教程网页游戏吧
web/
2025/9/27 4:19:36/
文章来源:
wordpress 一小时建站教程,网页游戏吧,密云seo排名优化培训,哪些企业需要网站建设文章目录 代码准备创建jenkins 任务测试推送使用项目里面的jenkinsfile 进行升级操作 文字版本流程项目构建 代码准备
推送代码到gitlab 代码去叩叮狼教育找 k8s
创建jenkins 任务
创建一个k8s-cicd-demo 流水线任务 将jenkins 里面构建时候的地址还有token#xff0c; 给到… 文章目录 代码准备创建jenkins 任务测试推送使用项目里面的jenkinsfile 进行升级操作 文字版本流程项目构建 代码准备
推送代码到gitlab 代码去叩叮狼教育找 k8s
创建jenkins 任务
创建一个k8s-cicd-demo 流水线任务 将jenkins 里面构建时候的地址还有token 给到gitlab里面的webhooks 粘贴好 http://108.1.1.1:31861/project/k8s-cicd-demo 3b2976e09fb121a1d949c15289a87727 在这里插入图片描述
测试推送 使用项目里面的jenkinsfile 进行升级操作
任务构建里面选择git 的http地址
创建harbor 凭据
配置kubeconfig 管理Jenkins- Managed files-Add-Custom file -Content字段内容是kubeconfig默认路径在master节点/root/.kube/config– cat /root/.kube/config获取内容 文字版本流程 配置流水线节点标签 系统管理 节点管理 列表中 master 节点最右侧的齿轮按钮
修改标签的值与项目中 Jenkinsfile 中 agent kubernetes label 的值相匹配
在首页点击 Create a Job 创建一个流水线风格的项目
----------- Jenkins 流水线项目 Webhook 配置 ----------- 在 Jenkins 项目配置下找到构建触发器栏目
勾选 Build when a change is pushed to GitLab. GitLab webhook URL: http://192.168.113.121:31216/project/k8s-cicd-demo
上方的 URL 就是用于配置到 gitlab 项目 webhook 的地址 生成的token也复制到gitlab 的webhook地址中去
启用 Gitlab 构建触发器 Push Events勾选表示有任意推送到 git 仓库的操作都会触发构建 Opend Merge Request Events勾选表示有请求合并时触发构建
点击高级 Secret Token Generate 按钮生成 token
保存以上配置
----------- GitLab 项目 Webhook 配置 ----------- 进入 GitLab 项目设置界面 Webhooks
将上方 Jenkins 中的 URL 配置到 URL 处
将上方生成的 Secret Token 配置到 Secret 令牌
按照需求勾选触发来源这里我依然勾选 推送事件、合并请求事件
取消 SSL 验证
点击添加 webhook 按钮添加后可以点击测试确认链接是否可以访问
流水线选择定义为 Pipeline script from SCM 从远程仓库拉取 Jenkinsfile 配置 配置 SCM 为 Git Repositories Repository URL仓库地址 Credentials仓库访问的账号密码 Branches to build选择拉取哪个分支下的代码 脚本路径Jenkinsfile 脚本文件名称以及所在路径
通过系统管理 Manage Credentials 凭据 System 全局凭证 Add Credentials 添加 Username with password 类型凭证
填写好用户名密码后需要注意凭证 id 要与 Jenkinsfile 中的 DOCKER_CREDENTIAL_ID 一致
通过系统管理 Manage Credentials 凭据 System 全局凭证 Add Credentials 添加 Username with password 类型凭证
填写好用户名密码后需要注意凭证 id 要与 Jenkinsfile 中的 GIT_CREDENTIAL_ID 一致
# 1. 事先安装 Config File Provider 插件
# 2. 进入系统管理 Mapped files Add a new Config 添加配置文件
# 2.1 Type 选择 Custom file 点击 next
# 2.2 在 k8s master 节点执行 cat ~/.kube/config 查看文件内容并将所有内容复制
# 2.3 将复制的内容贴到 Config file 的 Content 中后点击 Submit 保存并提交
# 3. 复制保存后文件 id 到 Jenkinsfile 中的 KUBECONFIG_CREDENTIAL_ID 处# 1. 进入 SonarQube 系统点击右上角用户头像 我的账号 进入设置页面
# 2. 点击 安全 填写令牌名称 点击生成按钮生成 token 复制生成后的 token
# 3. 进入 jenkins 添加凭证管理页面添加 Secret Text 类型的凭证将 token 贴入其中
# 4. 保证凭证 id 与 Jenkinsfile 文件中的 SONAR_CREDENTIAL_ID 一致# 1. 进入 SonarQube 管理页面点击顶部菜单栏的配置 配置(小三角) 网络调用
# 2. 点击右侧创建按钮创建新的 Webhook并填写名称与地址
# 名称jenkins
# 地址http://jenkins访问ip:端口/sonarqube-webhook/
项目构建
方式一在 Jenkins 管理后台进入项目中点击立即构建进行项目构建
方式二在开发工具中修改代码并将代码提交到远程仓库自动触发构建 jenkinsfile代码参考逻辑
pipeline {agent {node {label maven}}stages {stage(clone code) {steps {container(maven) {git(url: http://108.1.1.1:28080/gitlab-instance-1a76a240/k8s-cicd-demo.git, credentialsId: git-user-pass, branch: $BRANCH_NAME, changelog: true, poll: false)}}}stage(unit test) {steps {container(maven) {sh mvn clean test}}}stage(sonarqube analysis) {agent nonesteps {withCredentials([string(credentialsId : sonarqube ,variable : SONAR_TOKEN ,)]) {withSonarQubeEnv(sonar) {container(maven) {sh mvn sonar:sonar -Dsonar.projectKey$APP_NAME
echo mvn sonar:sonar -Dsonar.projectKey$APP_NAME}}timeout(unit: MINUTES, activity: true, time: 5) {waitForQualityGate true}}}}stage(build push) {steps {container(maven) {sh mvn clean package -DskipTestssh docker build -f Dockerfile -t $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BUILD_NUMBER .withCredentials([usernamePassword(credentialsId : harbor-user-pass ,passwordVariable : DOCKER_PASSWORD ,usernameVariable : DOCKER_USERNAME ,)]) {sh echo $DOCKER_PASSWORD | docker login $REGISTRY -u $DOCKER_USERNAME --password-stdin
docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BUILD_NUMBER}}}}stage(push latest) {when {branch master}steps {container(maven) {sh docker tag $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BUILD_NUMBER $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:latestsh docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:latest}}}stage(deploy to dev) {steps {container(maven) {input(id: deploy-to-dev, message: deploy to dev?)withCredentials([kubeconfigContent(credentialsId : kubeconfig-id ,variable : ADMIN_KUBECONFIG ,)]) {sh mkdir -p ~/.kube/sh echo $ADMIN_KUBECONFIG ~/.kube/configsh sed -i\\ s#REGISTRY#$REGISTRY# deploy/cicd-demo-dev.yaml
sed -i\\ s#DOCKERHUB_NAMESPACE#$DOCKERHUB_NAMESPACE# deploy/cicd-demo-dev.yaml
sed -i\\ s#APP_NAME#$APP_NAME# deploy/cicd-demo-dev.yaml
sed -i\\ s#BUILD_NUMBER#$BUILD_NUMBER# deploy/cicd-demo-dev.yaml
kubectl apply -f deploy/cicd-demo-dev.yaml}}}}stage(push with tag) {agent nonewhen {expression {params.TAG_NAME ~ /v.*/}}steps {input(message: release image with tag?, submitter: )withCredentials([usernamePassword(credentialsId : gitlab-user-pass ,passwordVariable : GIT_PASSWORD ,usernameVariable : GIT_USERNAME ,)]) {sh git config --global user.email liugangwolfcode.cn sh git config --global user.name xiaoliu sh git tag -a $TAG_NAME -m $TAG_NAME sh git push http://$GIT_USERNAME:$GIT_PASSWORD$GIT_REPO_URL/$GIT_ACCOUNT/k8s-cicd-demo.git --tags --ipv4}container(maven) {sh docker tag $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BUILD_NUMBER $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:$TAG_NAMEsh docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:$TAG_NAME}}}stage(deploy to production) {agent nonewhen {expression {params.TAG_NAME ~ /v.*/}}steps {input(message: deploy to production?, submitter: )container(maven) {sh sed -i\\ s#REGISTRY#$REGISTRY# deploy/cicd-demo.yaml
sed -i\\ s#DOCKERHUB_NAMESPACE#$DOCKERHUB_NAMESPACE# deploy/cicd-demo.yaml
sed -i\\ s#APP_NAME#$APP_NAME# deploy/cicd-demo.yaml
sed -i\\ s#TAG_NAME#$TAG_NAME# deploy/cicd-demo.yamlkubectl apply -f deploy/cicd-demo.yaml}}}}environment {REGISTRY 108.1.1.1:8858DOCKER_CREDENTIAL_ID harbor-user-passGIT_REPO_URL 108.1.1.1:28080GIT_CREDENTIAL_ID git-user-passKUBECONFIG_CREDENTIAL_ID 804095f0-4bf5-4aed-b920-3f45a586bf52DOCKERHUB_NAMESPACE wolfcodeGITHUB_ACCOUNT rootAPP_NAME k8s-cicd-demo}parameters {string(name: BRANCH_NAME, defaultValue: master, description: 请选择要发布的分支)string(name: TAG_NAME, defaultValue: snapshot, description: 标签名称必须以 v 开头例如v1、v1.0.0)}
}
参考资料叩叮狼教育
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82536.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!