huainian
这个作者很懒,什么都没留下…
展开
-
gitlab-runner 容器化部署 Docker gitlab
环境服务端:centos7客户端:window在centos7上部署docker+gitlab+gitlab-runner,win10利用ssh连接,开发人员只需提交代码,就可以进行项目文件上传,打包镜像,发布运行测试一、centos7上安装docker和docker-compose安装docker:1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。通过uname -r命令查看你当前..原创 2020-12-15 19:04:05 · 557 阅读 · 0 评论 -
Gitlab CI 持续交付 Gitlab CI/CD 自动化
GitLabCI 轻量级,不需要复杂的安装手段。配置简单,与 GitLab 可直接适配。实时构建日志十分清晰,UI 交互体验很好。使用 YAML 进行配置,任何人都可以很方便的使用。GitLabCI 有助于 DevOps 人员,例如敏捷开发中,开发与运维是同一个人,最便捷的开发方式。image.png为什么要学习这门课程?1.您的团队需要 CI/CD 工作流程持续集成: 尽快发现错误、减少集成问题、避免复杂的问题。持续交付: 确保每个更改都是可发布的、降低每次发布的风险、更加频繁地交原创 2020-05-10 16:06:48 · 291 阅读 · 0 评论 -
Gitlab CI/CD实践持续交付
GitLabCI轻量级,不需要复杂的安装手段。配置简单,与gitlab可直接适配。实时构建日志十分清晰,UI交互体验很好。使用YAML进行配置,任何人都可以很方便的使用。GitLabCI 有助于DevOps人员,例如敏捷开发中,开发与运维是同一个人,最便捷的开发方式。本课程我们主要讲解通过使用GitLabCI完成DevOps交付流水线,实践内容较多。从多个角度出发让每个实践都能落地。内容从最基础部分到最佳实践。内容都是来源于自身在企业中的实践。讲师简介泽阳,DevOps领域实践者。专注于企...原创 2020-05-12 10:40:49 · 345 阅读 · 0 评论 -
1. 1 为什么要做 CI/CD ?
为什么要做CI/CD?背景-传统的应用开发发布模式开发团队在开发环境中完成软件开发,单元测试,测试通过,提交到代码版本管理库。运维团队把应用部署到测试环境,供QA团队测试,测试通过后部署生产环境。QA 团队进行测试,测试通过后通知部署人员发布到生产环境。问题错误发现不及时很多 错误在项目的早期可能就存在,到最后集成的时候才发现问题。人工低级错误发生产品和服务交付中的关键活动全都需要手动操作。团队工作效率低需要等待他人的工作完成后才能进行自己的工作。开发运维...原创 2020-05-12 10:46:54 · 1859 阅读 · 0 评论 -
1.2 GitLab CI/CD 简介
GitLab CI/CD简介GitLab 内置持续集成功能持续集成 (CI)集成团队中每个开发人员提交的代码到代码存储库中。 开发人员在Merge或者Pull请求中合并拉取新代码。 在提交或者合并更改到代码存储库之前,会触发了构建,测试和新代码验证的管道。 CI可帮助您在开发周期的早期发现并减少错误连续交付 (CD)可通过结构化的部署管道确保将经过CI验证的代码交付给您的应用程序。 CD可以将经过验证的代码更快地移至您的应用程序。CI/CD 一起 可以加快团队为客户和利益相关者交原创 2020-05-12 11:00:11 · 271 阅读 · 0 评论 -
1.3 GitLabCI VS Jenkins
GitLabCI VS JenkinsJenkins是一个广泛用于持续集成的可视化web自动化工具,jenkins可以很好的支持各种语言的项目构建,也完全兼容ant、maven、gradle等多种第三方构建工具,同时跟svn、git能无缝集成,也支持直接与知名源代码托管网站,比如github、bitbucket直接集成,而且插件众多,在这么多年的技术积累之后,在国内大部分公司都有使用Jenkins。gitlab-CI是gitlab8.0之后自带的一个持续集成系统,中心思想是当每一次push到...原创 2020-05-12 11:05:13 · 1263 阅读 · 0 评论 -
1.4安装部署GitLab服务
安装部署GitLab服务rpm方式源地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.9.0-ce.0.el7.x86_64.rpmrpm -ivh gitlab-ce-12.9.0-ce.0.el7.x86_64.rpmvim /etc/gitlab.rb # 编...原创 2020-05-12 11:07:34 · 234 阅读 · 0 评论 -
2.GitLabRunner实践
GitLabRunner实践????您好,本模块主要讲解GitLabRunner实践,属于基础知识自由选择跳过!章节名称 章节内容 2-1 GitlabRunner简介 基本概念、特点、功能 2-2 GitLabRunner安装 通过不同的方式安装runner 2-3 GitLabRunner注册 完成runner注册 2-4 GitLabRunner命令 runner常用命令 2-5 运行流水线任务 运行流水线证明runner可用 Upd原创 2020-05-12 11:10:23 · 203 阅读 · 0 评论 -
2.1 GitlabRunner简介
GitlabRunner简介Gitlab-runnerGitLab Runner是一个开源项目,用于运行您的作业并将结果发送回GitLab。它与GitLab CI结合使用,GitLab CI是GitLab随附的用于协调作业的开源持续集成服务。要求 GitLab Runner是用Go编写的,可以作为一个二进制文件运行,不需要特定于语言的要求。它旨在在GNU / Linux,macOS和Windows操作系统上运行。只要您可以在其他操作系统上编译Go二进制文件,其他操作系统就可能会运行。原创 2020-05-12 11:11:54 · 686 阅读 · 0 评论 -
2.2 GitLabRunner安装
可以在GNU / Linux,macOS,FreeBSD和Windows上安装和使用GitLab Runner 。您可以使用Docker安装它,手动下载二进制文件,也可以使用GitLab提供的rpm / deb软件包的存储库。1. 使用GItLab官方仓库安装重点掌握CentOS系统的安装方式 重点掌握Ubuntu系统的安装方式我们提供Debian,Ubuntu,Mint,RHEL,Fedora和CentOS当前受支持版本的软件包。Distribution Version End原创 2020-05-12 11:13:49 · 309 阅读 · 0 评论 -
2.3 GitLabRunner注册
GitLabRunner注册大概过程: 获取runner token -> 进行注册GitLabRunner 类型shared : 运行整个平台项目的作业(gitlab) group: 运行特定group下的所有项目的作业(group) specific: 运行指定的项目作业(project) locked: 无法运行项目作业 paused: 不会运行作业获取runner token获取shared类型runnertoken进入系统设置 -> Runners原创 2020-05-12 11:21:04 · 857 阅读 · 2 评论 -
2.4 GitLabRunner命令
GitLab Runner包含一组命令,可用于注册,管理和运行构建。启动命令gitlab-runner --debug <command> #调试模式排查错误特别有用。gitlab-runner <command> --help #获取帮助信息gitlab-runner run #普通用户模式 配置文件位置 ~/.gitlab-runner/config.tomlsudo gitlab-runner run # 超级用户模式 配置文件位置/原创 2020-05-12 11:24:04 · 709 阅读 · 0 评论 -
2.5运行流水线任务
运行流水线任务在gitlab仓库中项目根目录添加一个.gitlab-ci.yml文件,文件内容如下。yaml文件这个流水线共包含两个job,分别是build 和 deploy。buildjob包含一个stagebuild。buildstage配置了在具有build标签的runner中运行,限制为master分支提交,运行构建命令。deployjob包含一个stagedeploy。deploystage配置了在具有deploy标签的runner中运行,限制为master分支提交,运...原创 2020-05-13 12:22:45 · 1351 阅读 · 0 评论 -
3.GitLabPipeline语法
????您好,本模块主要讲解GitLabPipeline语法,必学!视频与文档对应关系视频分成了9个小节,这里文档分为7小节。内容一致,有些章节因时长影响分开了。## 视频对应内容01-Pipeline基础语法 内容: job/script/before_script/after_script/stages/stage/variables02-Pipeline基础语法 内容: tags/allow_failure/when/retry/timeout/parallel 03-Pipel原创 2020-05-13 12:28:16 · 2025 阅读 · 0 评论 -
3.1 pipeline syntax 1
job/script/before_script/after_script/stages/stage/variables (7个)job在每个项目中,我们使用名为.gitlab-ci.yml的YAML文件配置GitLab CI / CD 管道。这里在pipeline中定义了两个作业,每个作业运行不同的命令。命令可以是shell或脚本。job1: script: "execute-script-for-job1"job2: script: "execute-script-for-原创 2020-05-13 12:30:06 · 605 阅读 · 0 评论 -
3.2 pipeline syntax 2
tags/allow_failure/when/retry/timeout/paralleltags用于从允许运行该项目的所有Runner列表中选择特定的Runner,在Runner注册期间,您可以指定Runner的标签。tags可让您使用指定了标签的runner来运行作业,此runner具有ruby和postgres标签。job: tags: - ruby - postgres给定带有osx标签的OS X Runner和带有windows标签的Windows R原创 2020-05-13 12:36:16 · 194 阅读 · 0 评论 -
3.3 pipeline syntax 3
only/except/rules/workflow (4个)only & exceptonly和except是两个参数用分支策略来限制jobs构建:only定义哪些分支和标签的git项目将会被job执行。 except定义哪些分支和标签的git项目将不会被job执行。 job:# use regexponly:- /^issue-.*$/# use special keywordexcept:- branches rulesrules允许*按顺序*评估原创 2020-05-13 12:38:37 · 194 阅读 · 0 评论 -
3.4 pipeline syntax 4
cache 缓存用来指定需要在job之间缓存的文件或目录。只能使用该项目工作空间内的路径。不要使用缓存在阶段之间传递工件,因为缓存旨在存储编译项目所需的运行时依赖项。如果在job范围之外定义了cache,则意味着它是全局设置,所有job都将使用该定义。如果未全局定义或未按job定义则禁用该功能。cache:paths使用paths指令选择要缓存的文件或目录,路径是相对于项目目录,不能直接链接到项目目录之外。$CI_PROJECT_DIR项目目录在job build中定义缓存,将会..原创 2020-05-13 13:31:06 · 180 阅读 · 0 评论 -
3.5 pipeline syntax 5
artifacts/dependenciesartifacts用于指定在作业成功或者失败时应附加到作业的文件或目录的列表。作业完成后,工件将被发送到GitLab,并可在GitLab UI中下载。artifacts:paths路径是相对于项目目录的,不能直接链接到项目目录之外。将制品设置为target目录artifacts: paths: - target/禁用工件传递job: stage: build script: make build d原创 2020-05-13 13:35:40 · 257 阅读 · 0 评论 -
3.6 pipeline syntax 6
needs/include/extends/triggerneeds 并行阶段可无序执行作业,无需按照阶段顺序运行某些作业,可以让多个阶段同时运行。stages: - build - test - deploymodule-a-build: stage: build script: - echo "hello3a" - sleep 10 module-b-build: stage: build script: - echo原创 2020-05-13 13:37:43 · 227 阅读 · 0 评论 -
3.7 pipeline syntax 7
image/services/environment/inherit准备工作注册docker类型的runnergitlab-runner register \ --non-interactive \ --executor "docker" \ --docker-image alpine:latest \ --url "http://192.168.1.200:30088/" \ --registration-token "JRzzw2j1Ji6aBjwvkxAv" \ --原创 2020-05-13 13:40:20 · 364 阅读 · 0 评论 -
4. 工具链集成
????您好,本模块主要讲解GitLabPipeline语法,必学!模板库设计为了实现模板复用,减少重复代码。本次课程开始我们将使用模板库来完成流水线。开始之前还是要把语法学好便于进一步实施。创建一个git仓库用于存放模板demo/demo-gitlabci-service,然后创建一个template目录存放所有pipeline的模板,创建一个jobs目录存放job模板。这样我们可以将一些maven、ant、gradle、npm工具通过一个job模板和不同的构建命令实现。templates原创 2020-05-13 13:42:27 · 218 阅读 · 0 评论 -
4.1 集成构建工具
集成构建工具嘿嘿,大家好。 构建工具是用来将代码编译打包成制品的工具。例如前端项目我们一般使用npm进行打包,后端java项目我们一般使用maven、gradle进行打包。构建工具很多很多,但是集成到gitlab中是一样的。所以这里简单介绍使用gitlabCI集成npm/maven完成前后端项目的构建。软件包下载maven软件包下载 gradle软件包下载 ant软件包下载 node软件包下载环境配置首先,我们需要在runner机器中安装配置好apache-maven。#解压原创 2020-05-14 10:50:38 · 212 阅读 · 0 评论 -
4.2 集成代码质量
集成sonarqube内容SonarQube基础简介 配置GitLabCI代码扫描 配置GitLabCI合并扫描准备工作参考链接:https://docs.sonarqube.org/latest/analysis/gitlab-cicd/扩展插件:https://github.com/mc1arke/sonarqube-community-branch-plugin/releases参考文章:http://119.3.228.122/jenkins/pipelineintegr.原创 2020-05-14 10:50:55 · 280 阅读 · 2 评论 -
4.3 制品库集成
artifactory.build: stage: build tags: - build script: - $BUILD_SHELL - ls.deploy-artifact: stage: deploy-artifact tags: - build script: - curl -u${ARTIFACT_USER}:${ARTIFACT_PASSWD} -T ${ARTIFACT_PATH} "$ARTIFACTORY_URL原创 2020-05-14 10:51:12 · 395 阅读 · 1 评论 -
4.4 自动化测试集成
开启gitlab pagesvim /etc/gitlab/gitlab.rb##! Define to enable GitLab Pagespages_external_url "http://pages.gitlab.com/"gitlab_pages['enable'] = truegitlab_pages['inplace_chroot'] = truegitlab-ctl reconfigure更新gitlab.yml文件containers: - name原创 2020-05-14 10:51:26 · 190 阅读 · 0 评论 -
4.5 Kubernetes集成
1. 基于kubernetes部署runner安装helm3https://github.com/helm/helm/releasestar -zxvf helm-v3.0.0-linux-amd64.tar.gzmv linux-amd64/helm /usr/local/bin/helm配置chart 存储库## 添加chart存储库helm repo add gitlab https://charts.gitlab.io## 验证源helm repo list##原创 2020-05-14 10:51:40 · 374 阅读 · 0 评论 -
5. 构建环境优化
????您好,本模块主要讲解GitLabPipeline构建环境优化!项目信息视频中仓库地址 github仓库地址 5-1- runner构建优化 构建缓存、工作目录持久化 5-2- 后台k8s集成配置 构建缓存、工作目录持久化 5-3- 容器化流水线配置 构建缓存、工作目录持久化 一起学习呀:...原创 2020-05-14 10:52:00 · 162 阅读 · 0 评论 -
5.1 Runner构建优化
runner部署优化添加构建缓存PVC 添加工作目录PVC 开启自定义构建目录准备工作runner配置信息可以通过参数指定,也可以以环境变量方式设置。详细内容可以通过gitlab-runner register -h获取到相关参数和变量名称。在使用官方提供的runner镜像注册runner,默认的runner配置文件在/home/gitlab-runner/.gitlab-runner/config.toml参考文档:http://s0docs0gitlab0com.icopy.si.原创 2020-05-14 10:52:17 · 748 阅读 · 1 评论 -
5.2 配置K8S集群集成
1.系统集成配置获取证书kubectl config view --raw -o=jsonpath='{.clusters[0].cluster.certificate-authority-data}' | base64 --decode创建admin用户---apiVersion: v1kind: ServiceAccountmetadata: name: gitlab-admin namespace: kube-system---apiVersion: rbac.原创 2020-05-14 10:52:34 · 304 阅读 · 0 评论 -
5.3 容器运行流水线
buildbuild: variables: GIT_CHECKOUT: "true" tags: - k8s image: maven:3.6.3-jdk-8 stage: build extends: .build rules: - when: on_success after_script: - ls target/testtest: before_script: - ls target/ tags:..原创 2020-05-14 10:52:48 · 249 阅读 · 0 评论 -
5.4 流水线构建消息通知
Pipeline email编辑/etc/gitlab/gitlab.rb文件开启gitlab email。这里以QQ邮箱为例### GitLab email server settings###! Docs: https://docs.gitlab.com/omnibus/settings/smtp.html###! **Use smtp instead of sendmail/postfix.**gitlab_rails['smtp_enable'] = truegitlab_rai原创 2020-05-14 10:53:06 · 531 阅读 · 0 评论