持续集成
哎_小羊_168
学会发现,学会记录,学会分享。Fighting!
展开
-
Docker搭建自己的Gitlab CI Runner
Gitlab CI介绍环境、软件准备安装、注册并启动Gitlab Runner定义项目构建流程Gitlab-CI是Gitlab官方提供的持续集成服务,我们可以在仓库的根目录下新建.gitlab-ci.yml文件,自己定义持续集成流程模板,并且在Gitlab中配置runner,在之后的每次提交合并中将会触发构建,并且可以通过Gitlab的hook, 在代码提交的各个环节自动地完成一系列的构建工作原创 2017-05-15 16:29:03 · 46746 阅读 · 18 评论 -
基于 Harbor 和 Cephfs 搭建高可用 Docker 镜像仓库集群
Harbor 是由 VMware 公司开源的企业级的 Docker Registry 管理项目,它包括权限管理、LDAP、管理界面、镜像复制和中文支持等功能,可以很好的满足私有镜像仓库的需求。Cephfs 是 Ceph 分布式存储系统中的文件存储,可靠性高,管理方便,伸缩性强,能够轻松应对 PB、EB 级别数据。我们可以使用 Cephfs 作为 Harbor 底层分布式存储使用,提高 Harbor 集群的高可用性。原创 2017-12-27 10:04:22 · 8366 阅读 · 4 评论 -
初试 Kubernetes 集群中使用 Helm 搭建 Spinnaker 平台
Helm 是一个管理 Kubernetes Charts 的工具,Charts 可以理解为预先配置的 Kubernetes 资源包,通过 Helm 可以轻松的安装和管理 Kubernetes 应用,类似我们平时使用的 apt、yum、homebrew 工具。本文介绍如何在 Kubernetes 集群中使用 Helm 搭建 Spinnaker 平台。原创 2018-03-07 09:57:17 · 9235 阅读 · 31 评论 -
使用 Spinnaker 自动化部署代码到 Kubernetes 示例
本文介绍如何使用 Spinnaker自动化部署代码到 Kubernetes 中,主要包含如下:GitHub 配置、DockerHub 配置、Kubernetes & Spinnaker 配、Spinnaker 集群管理(创建应用、创建负载均衡策略、创建服务组)、Spinnaker 部署管理(创建自动部署 Dev 流程、创建验证流程、创建自动部署 Prod 流程、运行并验证流程)原创 2018-03-17 14:18:47 · 12858 阅读 · 5 评论 -
初试 Kubernetes 集群中 Spinnaker 平台之集群管理
Spinnaker 是 Netflix 的开源项目,是一个持续交付平台,它提供在多种平台上实现开箱即用的集群管理和部署功能的平台。我们可以通过其强大的集群管理特性,来查看和管理集群中的资源。集群管理主要包括服务组(Server Group)、集群(Cluster)、应用(Applications)、负载均衡(Load Balancer)、安全组(Security Group)几大块。本文介绍在 Kubernetes 集群中 Spinnaker 平台何如进行集群管理。原创 2018-03-13 11:58:38 · 3055 阅读 · 1 评论 -
初试 Jenkins 使用 Kubernetes Plugin 完成持续构建与发布
持续构建与发布是我们日常工作中必不可少的一个步骤,目前大多公司都采用 Jenkins 集群来搭建符合需求的 CI/CD 流程,然而传统的 Jenkins Slave 一主多从方式会存在一些痛点,比如:主 Master 发生单点故障时,整个流程都不可用了;每个 Slave 的配置环境不一样,维护起来也是比较费劲;资源分配不均衡。基于 Kubernetes 搭建 Jenkins 集群,具有服务高可用,动态伸缩,合理使用资源,扩展性好特点。原创 2018-03-31 11:56:47 · 44902 阅读 · 11 评论 -
自动化 DevOps 使用 Codeclimate 执行代码质量分析
Codeclimate 是为代码质量分析平台提供的一个命令行接口工具,通过它可以在本机 Docker 容器中对要分析的代码执行质量分析,并生成分析报告。我们熟知常用的代码质量检测工具例如 SonarQube、CheckStyle 等等,而 Codeclimate 是这些各种代码类型质量分析工具的集合,而且支持我们自定义检测工具,命令行简单,非常方便操作。我们可以使用 Codeclimate 进行代码质量分析,并将其作为持续集成流程中的一个环节,是很有必要的。原创 2018-04-20 10:06:03 · 8453 阅读 · 0 评论 -
临时解决 LDAP 导致 GitLab Members Blocked 问题
同事反馈说他的邮箱账户 GitLab 可以正常登录,但是其所属项目本地 Clone 不下来,GitLab 系统项目 Members 下该用户状态为 `Blocked`。仔细查看了同事的账户信息,发现其本地账户跟 GitLab 上面的账户不统一导致的。本机记录通过修改 Gitlab PostgreSQL 数据库,临时解决 LDAP 导致的 GItLab Members Blocked 问题。原创 2018-05-09 15:30:16 · 9928 阅读 · 0 评论 -
记录解决 Spring Boot 项目继承依赖导致编译失败问题
问题背景,公司一个使用 Spring Boot 的 Mutil 项目,根据 Spring Boot 官方文档配置好 Parent 继承 spring-boot-starter-parent POM 的时候可以正常编译运行,但是正式上线时,需要切换到继承公司统一的插件集合 Parent POM (这里暂称为:common-plugin,该插件是为了方便执行一些持续集成编译自动化插件,例如 ma...原创 2018-06-04 18:10:29 · 4806 阅读 · 0 评论 -
使用 Jenkins 执行持续集成的几个实用经验分享
使用Jenkins执行持续集成的几个实用经验分享。包括修改JVM的内存配置、修改Jenkins主目录、配置优化减少磁盘空间占用、丢弃旧的构建配置、修改工作空间和构建记录根目录、设置全局属性、JDK/Maven/Gradle 等软件多版本安装、设置构建超时时间、配置视图分类管理Job、配置多节点管理、一些实用插件、Managed Script插件管理脚本文件、PostBuildScript插件根据Build状态执行脚本、Jenkins2.0 Pipeline插件执行持续集成发布流程、原创 2018-06-09 21:34:21 · 18310 阅读 · 0 评论 -
Kubernetes 集群使用 Helm 搭建 GitLab 并配置 Ingress
Helm 是一个管理 Kubernetes Charts 的工具,Charts 可以理解为预先配置的 Kubernetes 资源包,通过 Helm 可以轻松的安装和管理 Kubernetes 应用,类似我们平时使用的 apt、yum、homebrew 工具。服务端 Tiller 运行在 Kubernetes 集群内部,作为一个代理 Pod 管理安装我们的 Charts。本文介绍 Kubernetes 集群使用 Helm 搭建 GitLab 并配置 Ingress原创 2018-07-15 21:16:13 · 13612 阅读 · 3 评论 -
Kubernetes 集群中运行 GitLab-Runner 来执行 GitLab-CI
GitLab-CI 是一套 GitLab 提供给用户使用的持续集成系统。GitLab-Runner 是配合 GitLab-CI 进行使用的,GitLab 里面每个工程都会定义一些该工程的持续集成脚本,该脚本可配置一个或多个 Stage 例如构建、编译、检测、测试、部署等。当工程有代码更新时,GitLab 会自动触发 GitLab-CI,此时 它会找到事先注册好的 GitLab-Runner 通知并触发该 Runner 来执行预先定义好的脚本,介绍 Kubernetes 集群中运行 GitLab-Runner原创 2018-07-21 21:19:17 · 18728 阅读 · 5 评论 -
使用 Jenkins 执行 Go 工程构建镜像
随着 Go 语言的流行,越来越多的公司和开发人员在工作中使用该语言开发项目,由于现有上线系统后端是基于 Jenkins + docker 执行任务的,那么是时候体验一下如何使用 Jenkins 执行 Go 工程构建镜像了。文章主要介绍了* 安装 Jenkins、安装 Go Plugin 插件并配置、配置 Jenkins Job 构建 Go 工程、使用 Golang 镜像执行编译、使用 Docker 多阶段构建镜像。原创 2018-10-08 11:37:44 · 10026 阅读 · 5 评论 -
初试 Netflix 开源持续云交付平台 Spinnaker
Spinnaker 是 Netflix 的开源项目,是一个持续交付平台,它定位于将产品快速且持续的部署到多种云平台上。Spinnaker 通过将发布和各个云平台解耦,来将部署流程流水线化,从而降低平台迁移或多云品台部署应用的复杂度,它本身内部支持 Google、AWS、Kubernetes等云平台,它可以无缝集成其他持续集成流程。Spinnaker 是致力于提供在多种平台上实现开箱即用的集群管理和部署功能的平台。原创 2017-12-05 14:10:52 · 23348 阅读 · 13 评论 -
Nexus OSS 3 搭建并配置使用 Docker & Git LFS 仓库
Nexus 是一个强大的 Maven 仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。现在随着 Nexus 的不断完善和升级,现在 Nexus 3 在原有 Maven 基础上,新增 bower、docker、git lfs、npm、nuget、pypi、raw、rubygems、yum 支持,而且会持续更新增加对更多类型的支持。Git LFS 仓库和Docker 私有仓库配置使用。原创 2017-10-13 16:23:26 · 4525 阅读 · 3 评论 -
Gradle 多模块项目实现 Maven Parent 继承方式
Gradle 是基于 JVM 的构建工具,是基于 Ant 、Maven、ivy 概念的一款通用灵活的构建工具,基于 Groovy 脚本构建,目前支持 Java、Groovy、Kotlin 和 Scala 语言,能够满足日常开发中复杂构建需求的开源工具。定义公共插件扩展文件,项目需要使用的时候,直接继承 common.gradle 就能使用定义的 Task,实现类似 Maven Parent 继承方式原创 2017-09-19 11:12:37 · 45033 阅读 · 3 评论 -
初试Jenkins2.0 Pipeline持续集成
Jenkins 2.0的精髓是Pipeline as Code,是帮助Jenkins实现CI到CD转变的重要角色。Pipeline就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。Pipeline的实现方式是一套Groovy DSL,任何发布流程都可以表述为一段Groovy脚本,并且Jenkins支持从代码库直接读取脚本。原创 2017-05-31 11:19:42 · 62936 阅读 · 27 评论 -
记录Gerrit2.8.4环境迁移、安装、配置以及问题解决
Gerrit 是一个免费、开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。gerrit是使用 Git 作为底层版本控制系统,通过网页界面,能方便的做代码审核工作的一个轻量型框架,出自google团队的开源项目。原创 2017-03-03 11:56:06 · 7066 阅读 · 0 评论 -
Docker镜像仓库Harbor之Swagger REST API整合配置
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTFul 风格的 Web 服务。通过 Swagger,我们可以方便的、快速的实现 RESTFul API,同时它也提供UI界面,可以直观的管理和测试各个API接口,它还可以集成到各种开发语言中,大大提高了我们日常工作效率。Docker镜像仓库Harbor之Swagger REST API整合配置原创 2017-06-22 16:30:15 · 6381 阅读 · 0 评论 -
Docker镜像仓库Harbor之搭建及配置
Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。Docker 镜像仓库Harbor搭建及复制配置原创 2017-06-21 15:49:04 · 52988 阅读 · 10 评论 -
Java Maven项目之Nexus私服搭建和版本管理应用
Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。我们可以在局域网搭建一个maven私服,用来部署第三方公共构件或者作为远程仓库在该局域网的一个代理。Java Maven版本管理应用和Nexus私服搭建。原创 2017-06-16 17:33:10 · 7863 阅读 · 1 评论 -
GitLab 之 PlantUML 的配置及使用
UML 统一建模语言是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。PlantUML 是一个开源项目,支持快速绘制时序图、流程图、活动图、状态图、用例图、类图等等,开发人员通过简单直观的语言来定义这些示意图。现在 GitLab 8.16 版本及以上支持 PlantUML ,我们只需要用文字表达出要绘制的图的内容,然后直接生成图片,非常方便。原创 2017-08-08 11:02:07 · 11771 阅读 · 0 评论 -
GitLab 之 Git LFS 大文件存储的配置
Git 大文件存储(Large File Storage,简称LFS)目的是更好地把大型二进制文件,比如音频文件、数据集、图像和视频等集成到 Git 的工作流中。LFS 处理大型二进制文件的方式是用文本指针替换它们,这些文本指针实际上是包含二进制文件信息的文本文件。文本指针存储在 Git 中,而大文件本身通过HTTPS托管在Git LFS服务器上。原创 2017-07-24 11:14:58 · 32947 阅读 · 2 评论 -
Maven 插件之 docker-maven-plugin 的使用
在我们持续集成过程中,项目工程一般使用 Maven 编译打包,然后生成镜像,通过镜像上线,能够大大提供上线效率,同时能够快速动态扩容,快速回滚,着实很方便。docker-maven-plugin 插件就是为了帮助我们在Maven工程中,通过简单的配置,自动生成镜像并推送到仓库中。原创 2017-08-21 18:28:22 · 61033 阅读 · 9 评论 -
SonarQube 的安装、配置及 Maven 项目的使用
SonarQube 是一个用于管理源代码质量开放平台,它可以从多个维度检测代码质量,可以快速的定位代码中潜在的或者明显的 Bug、错误。它支持包括 Java、Python、Php、C/C++、C#、HTML、JavaScript、PL/SQL、Objective C 等二十多种编程语言的代码质量管理与检测。可作为我们日常开发中检测代码质量的重要工具。SonarQube 的安装、配置及 Maven 项目的使用。原创 2017-08-25 10:38:09 · 33722 阅读 · 1 评论 -
Git Review + Gerrit 安装及使用完成 Code-Review
Code Review 代码评审是指在软件开发过程中,对源代码的系统性检查。Code Review 主要用来在软件工程过程中改进代码质量,查找系统缺陷,保证软件总体质量和提高开发者自身水平。Gerrit 是一个免费、开放源代码的代码审查软件 。Gerrit 是使用 Git 作为底层版本控制系统,通过网页界面,能方便的做代码审核工作的一个轻量型框架,出自google团队的开源项目。原创 2017-08-15 09:32:41 · 38573 阅读 · 2 评论 -
SonarQube 插件之 Issues Report & SonarLint 的配置及使用
Issues Report Plugins 插件可以为我们生成一份 HTML 格式的问题报告,开发人员在改动代码后 Push 代码到仓库前,检测一下代码质量,生成问题报告,提醒自己避免提交有明显问题的代码到仓库中。SonarLint 是为了替代 Issues Report Plugins 插件,并且更方便的集成到我们日常的开发工具里面去。支持的语言有 Java、 JavaScript 、PHP。原创 2017-08-31 16:55:27 · 20603 阅读 · 13 评论 -
SonarQube 之 gitlab-plugin 配合 gitlab-ci 完成每次 commit 代码检测
Sonar GitLab Plugin 该插件会针对每次提交修改的文件,添加注释行,同时添加本次提交的代码检测结果的评论。我们还可以配合 gitlab-ci 完成每次 commit 时,添加的代码检测 Pipelines stage 流程,来控制代码检测流程是否通过。原创 2017-09-27 18:04:50 · 42799 阅读 · 62 评论 -
Go 依赖管理工具 Dep 的安装及配置
随着 Go 语言的流行,越来越多的公司和开发人员在工作中使用该语言开发项目,上一篇文章使用 Jenkins 执行 Go 工程构建镜像中,提到使用 go get 命令时,出现的一些列问题,让人很是抓狂,所以迫切需要一款可以很好管理 Go 依赖的工具。Dep 是 Go 官方依赖管理工具,通过它,我们可以很方便的管理 Go 项目依赖,同时还可以指定私有库依赖,非常好用。原创 2018-10-18 10:50:18 · 7190 阅读 · 4 评论