热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

利用开源软件搭建JAVA工程CICD自动化工具链(K8S)

JAVA传统项目交付流程的问题开发和运维间环境有明显差异代码缺乏统一质量度量客户要求上线时间紧,人工测试慢,导致测试不充分,时常做线上B

JAVA传统项目交付流程的问题


  1. 开发和运维间环境有明显差异
  2. 代码缺乏统一质量度量
  3. 客户要求上线时间紧,人工测试慢,导致测试不充分,时常做线上BUG修复


打造工具链


  • 源码管理Gitlab
  • 持续集成Jenkins
  • 代码扫描SonarQube
  • 接口测试PostMan+NewMan
  • 制品管理ArtifactoryOSS版本(仅支持Maven)
  • 自动部署Ansible

 


GitLab安装


vim /etc/yum.repos.d/gitlab-ce.repo

 

[gitlab-ce]

name=gitlab-ce

baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6

Repo_gpgcheck=0

Enabled=1

Gpgkey=https://packages.gitlab.com/gpg.key

sudo yum makecache

sudo yum intall gitlab-ce

sudo gitlab-ctl start    # 启动所有 gitlab 组件;

sudo gitlab-ctl stop        # 停止所有 gitlab 组件;

sudo gitlab-ctl restart        # 重启所有 gitlab 组件;

sudo gitlab-ctl status        # 查看服务状态;

sudo gitlab-ctl reconfigure        # 启动服务;

sudo vim /etc/gitlab/gitlab.rb        # 修改默认的配置文件;

gitlab-rake gitlab:check SANITIZE=true –trace    # 检查gitlab;

sudo gitlab-ctl tail        # 查看日志

访问http://localhost

会跳转到让你修改密码的网页

 


 


Jenkins安装


wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

 

rpm –import https://jenkins-ci.org/redhat/jenkins-ci.org.key

yum install -y jenkins

systemctl start jenkins

 

访问:localhost:8080

初始密码在:/var/lib/jenkins/secrets/initialAdminPassword

 


SonarQube安装


#使用Docker安装

 

#下载启动Mysql使用Docker

docker run –name mysql5.7 -v /data/mysql5.7-data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456  -d mysql:5.7

#进入容器

docker exec -it mysql5.7 bash

#进入数据库

mysql -uroot -p123456

#创建数据库及授权

create database db_sonar character set utf8 collate utf8_general_ci;

flush privileges;

grant all privileges on db_sonar.* to ‘sonar’@’%’identified by ‘sonar’ with grant option;

flush privileges;

#查看容器IP地址

cat /etc/hosts

127.0.0.1       localhost

::1     localhost ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

172.17.0.2      ec7039cd8020

#下载并启动SonarQube

docker run -d –name sonar -p 9000:9000 -p 9092:9092  -v /data/sonar/conf:/opt/sonarqube/conf  -v /data/sonar/data:/opt/sonarqube/data -v /data/sonar/logs:/opt/sonarqube/logs -v /data/sonar/extensions:/opt/sonarqube/extensions -e “SONARQUBE_JDBC_USERNAME=sonar”  -e “SONARQUBE_JDBC_PASSWORD=sonar” -e “SONARQUBE_JDBC_URL=jdbc:mysql://172.17.0.2:3306/db_sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false” sonarqube:6.7.5

 


PostMan & NewMan安装

安装NodeJS

注意: 如果已经安装NodeJS可以跳过此步

下载地址:https://nodejs.org/en/download/

下载 “Linux Binaries (x64)”

 

下载完解压以后配置环境变量NODE_HOME 和PATH

安装Newman

在Jenkins的slave节点安装Newman:

npm install -g newman

安装Postman

下载地址:https://www.postman.com/downloads/

安装在windows或者带UI的Linux机器

安装文档:https://learning.postman.com/docs/postman/launching-postman/installation-and-updates/

导出Postman测试集合

创建集合app1

app1为当前应用的名称,可以根据实际情况定义

 

名称填写 app1 , Authorization 选择 “Basic Auth”,并填入Artifactory的用户名密码,如下图

 

在Variables标签条件变量:base_url,值为artifactory“Custom Base URL”,例如: http://localhost:8081/artifactory

点击create按钮完成并保存

 

 

创建request

在集合app1右键点击,弹出的request选择”Add request”

Request name 填写 “ping”,然后点击”Save to app1”按钮

 

Api url :  {{base_url}}/api/system/ping

在Tests 标签填入一下内容:

pm.test(“Status code is 200”, function () {

pm.response.to.have.status(200);

});

pm.test(“Body is correct”, function () {

pm.response.to.have.body(“OK1”);

});

这是两个测试用例,分别测试返回值是否为200,返回内容是否为“OK1”,最后同时按 Ctrl+s 保存内容

 

 

导出集合

在集合app1右键点击,选择“Export”

导出的名字为:“app1.postman_collection.json”


安装Artifactory OSS版本

使用Yum方法安装

wget https://bintray.com/jfrog/artifactory-rpms/rpm -O bintray-jfrog-artifactory-rpms.repo

sudo mv bintray-jfrog-artifactory-rpms.repo /etc/yum.repos.d/

sudo yum install jfrog-artifactory-oss

 

初始账号和密码为:admin/password,登录成功后可以看到以下界面

其他安装方法可参考如下链接:

https://www.jfrog.com/confluence/display/RTF6X/Installing+on+Linux+Solaris+or+Mac+OS


安装Ansible

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

yum install ansible


推荐阅读
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 本文详细介绍了在 Oracle 数据库中使用 MyBatis 实现增删改查操作的方法。针对查询操作,文章解释了如何通过创建字段映射来处理数据库字段风格与 Java 对象之间的差异,确保查询结果能够正确映射到持久层对象。此外,还探讨了插入、更新和删除操作的具体实现及其最佳实践,帮助开发者高效地管理和操作 Oracle 数据库中的数据。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 老杨谈IT运维 | 快速实现日志异常检测与根源分析
    在智能运维领域,指标和日志是最常用的数据来源,能够有效反映系统的运行状况和健康状态。通过对这些数据的深入分析,可以为监控和告警系统提供关键信息,帮助快速实现日志异常检测与根源分析,提升整体运维效率。 ... [详细]
  • 在项目开发过程中,掌握一些关键的Linux命令至关重要。例如,使用 `Ctrl+C` 可以立即终止当前正在执行的命令;通过 `ps -ef | grep ias` 可以查看特定服务的进程信息,包括进程ID(PID)和JVM参数(如内存分配和远程连接端口);而 `netstat -apn | more` 则用于显示网络连接状态,帮助开发者监控和调试网络服务。这些命令不仅提高了开发效率,还能有效解决运行时的各种问题。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 在Linux系统中,MySQL的用户权限管理是运维人员必须掌握的关键技能之一。本文详细介绍了MySQL用户和权限管理的相关概念,包括MySQL用户的概念及其与VSFTPD虚拟用户的相似性,以及密码管理的重要性。此外,还深入探讨了如何通过命令行工具和配置文件进行用户权限的设置和调整,确保系统的安全性和稳定性。 ... [详细]
  • 为何Serverless将成为未来十年的主导技术领域?
    为何Serverless将成为未来十年的主导技术领域? ... [详细]
  • 腾讯与阅文集团在技术领域展开合作,共同推进微服务框架Tars的发展。此次合作中,Tars新增了对PHP语言的支持,不仅强化了Tars-PHP作为客户端的功能,还显著提升了其在服务端的应用能力。这一改进旨在满足不同业务场景下的多样化需求,为开发者提供更加灵活和高效的技术解决方案。 ... [详细]
  • 利用Jenkins与SonarQube集成实现高效代码质量检测与优化
    本文探讨了通过在 Jenkins 多分支流水线中集成 SonarQube,实现高效且自动化的代码质量检测与优化方法。该方案不仅提高了开发团队的代码审查效率,还确保了软件项目的持续高质量交付。 ... [详细]
  • 前言: 网上搭建k8s的文章很多,但很多都无法按其说明在阿里云ecs服务器成功搭建,所以我就花了些时间基于自己成功搭建k8s的步骤写了个操作手册,希望对想搭建k8s环境的盆友有所帮 ... [详细]
author-avatar
qiuyuehuang
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有