CI/CD并非陌生。大多数公司都有自己的CI/CD,但是今天我想向Jenkins和Gitops介绍以实现CI/CD。
总体结构如下:
所涉及的软件和版本信息如下:
Kubernetes 1.17.9 Docker 19.03.13 Jenkins 2.249.3 ArgoCD 1.8.0 Gitlab社区版本11.8.1 Sonarqube社区版本8.5.1 trayfik 2.3.3代码仓库Alibaba cloud cloud Warehouse涉及
软件安装在这里不是特定的安装代码。我将所有代码放在github上,地址:https://github.com/cool-ops/kubernetes-software-yaml.git
因此,默认情况下已安装它,因此已安装软件。
在系统管理中 - >系统配置 - >云
系统设置 - >系统配置 - >电子邮件(1)设置管理员邮箱配置的SMTP服务
我在这里有一个简单的Java测试代码,地址如下:https://gitee.com/jokerbai/springboot-hellowon.git.git.git.git
它可以进口到自己的Gitlab仓库中。
首先在gitlab上创建共享库。我在这里命名为Sharelibrary,如下所示:然后创建一个src/org/devops目录,并在此目录中创建一个文件。其内容的内容如下:build.groovy
sendemail.groovy
Sonarapi.groovy
Sonarqube.groovy
tools.groovy
我创建了一个称为DevOps-CD的共享仓库,如下所示:
然后在应用程序名称中创建一个目录并在目录中创建以下文件。这些内容如下。Service.yaml
inmress.yaml
部署
kusomization.yaml
(1)您需要将优惠券添加到Jenkins(2)在Jenkins的系统配置中配置共享库(系统管理 - >系统配置),然后单击应用程序并保存
然后,我们可以使用简单的JenkinsFile测试共享库,以查看配置是否正确。
在詹金斯上创建一个项目,如下:
然后将以下代码放在底部的管道上:
然后单击以保存并运行。如果看到输出颜色,则意味着共享库配置成功,如下所示:共享库配置在此处完成。
整个Java Jenkinsfile如下:
需要在Jenkins上创建两个优惠券,其中一个被称为Dockerhub,一个CI-DEVOPS和一个声纳Admin-user。
DockerHub是登录镜仓库的用户名和密码。
CI-DEVOPS是管理YAML仓库的用户名和密码。
Sonar-Admin-User是管理Sonarqube的用户名和密码。
然后将此Jenkinsfile保存到ShareLibrary的根目录中,并将其命名Java.jenkinsfile。
在詹金斯(Jenkins)上创建一个新项目,如下所示:然后添加以下参数化。
然后单击应用程序保存并运行。
您还可以在Sonarqube上看到代码扫描的结果。
将代码仓库添加到ARGOCD,如下所示:然后创建应用程序,如下所示:单击以创建,如下:单击IN并查看更多详细信息。
ArgoCD有一个小错误。它的入口健康检查必须值得加载,否则不会通过,但不会影响使用。
然后,您可以正常访问该应用程序。
节点项目的Jenkinsfile相似。因为我没有测试案例,所以我没有测试。
在jenkins中选择项目并在项目中配置gitlab触发器,如下所示:生成令牌,如下所示,在gitlab上配置集成在gitlab上。然后单击下面的测试以观察是否触发流量线。还可以通过修改仓库代码来测试它。
CI/CD现在是企业的标准配置。这样做可以节省大量的人力和物质资源,尤其是简化许多重复的工作。
本文是一个纯粹的操作步骤。在测试时,每个人都会对Jenkinsfile进行微妙的调整,但总体上没有问题。
原始:https://juejin.cn/post/7101857890746499085