
🐞DevOps 开发工程师?🌞DevOps 运维工程师?🚀DevOps 自动化持续交付工程师?🗿DevOps 主管?
安装说明
Gitlab安装,推荐清华大学镜像安装 https://mirrors.tuna.tsinghua.edu.cn/help/gitlab-ce/Gitlab官方安装说明 https://about.gitlab.com/install/Jenkins安装,参看官方文档说明 https://jenkins.io/doc/book/installing/SonarQube安装,参看官方文档 https://www.sonarqube.org/downloads/Nexus安装,参看官方文档 https://help.sonatype.com/repomanager3JAVA、MAVEN、Git、MySQL安装JDK1.8 、Maven 3.6 、Git 2.17、MySQL 5.7.25
我在 Ubuntu 18.04.2 LTS 下安装以上软件进行演示
Gitlab 展示
我本地安装版本为 11.5.1
,配置文件地址 /etc/gitlab/gitlab.rb

开源项目 Jeesite
以 jeesite 作为演示项目,推送到自己搭建的 GitLab 私人仓储中 Jeesite 项目地址: https://github.com/thinkgem/jeesite.git
git remote remove origin # 删掉原来git源
git remote add origin 'http://192.168.0.222/root/jeesite.git' # 添加新的源
git push --set-upstream origin master # 推送

GitLab Auto DevOps
本地安装的这个版本已经自动开启了 CI/CD 功能,但是需要安装 Runner 服务器,不然 Pipelines 处于 stuck 状态
GitLab Runner 安装推荐 清华大学镜像,Runner 常用命令
gitlab-runner register
gitlab-runner status
gitlab-runner list
CI/CD 详细信息科查看 GitLab 官网 continuous-integration

Jenkins 展示
启动错误解决
-
journalctl -xe
Job for jenkins.service failed because the control process exited with error code. See "systemctl status jenkins.service" and "journalctl -xe" for details. 解决 gedit /etc/init.d/jenkins 手动配置JAVA_HOME export JAVA_HOME=/usr/local/jdk1.8.0_172 PATH=/bin:/usr/bin:/sbin:/usr/sbin:$JAVA_HOME/bin -
systemctl daemon-reload
Warning: The unit file, source configuration file or drop-ins of jenkins.service changed on disk. Run 'systemctl daemon-reload' to reload units. 解决 systemctl daemon-reload
启动成功后,浏览器访问
默认端口 8080,我本地改成了 8081,位置 /etc/default/jenkins
启动:sudo service jenkins start

成功登陆后界面

SonarQube 展示
错误解决,配置 MySQL,访问
-
es不能用root用户启动,新建用户sonaradduser sonar chown -R sonar:sonar sonarqube-7.7 su sonar ./sonar.sh start -
默认用的是
H2数据库,修改配置为MySQL数据库sonar.jdbc.username=sonar sonar.jdbc.password=Sonar@123 sonar.jdbc.url=jdbc:mysql://127.0.0.1:3507/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false -
默认端口
9000账号密码admin/admin

可安装Chinese Pack汉化插件进行汉化,汉化后界面

插件安装
- Checkstyle
- Chinese Pack
- Findbugs
- PMD
测试 Sonar 的基本使用
-
新建项目-按步骤提示操作

-
选择
Java Maven项目

-
Jeesite项目文件夹下 执行一下命令#执行如果出错 可查看 logs/web.log #我运行时报错,修改了MySQL实例参数 max_allowed_packet = 100M mvn sonar:sonar -Dsonar.projectKey=jeesite -Dsonar.host.url=http://localhost:9000 -Dsonar.login=7d86763a5f1610deacec545b08759f89768e6ea3 -
执行成功后输出

-
查看
SonarQube检查结果

-
详情页

与 IDEA 集成
-
安装
SonarLint插件,成功后重启IDEA

-
配置
SonarQube服务

-
SonarQube生成令牌

-
写入
IDEA

-
配置
SonarLint Project Settings

-
IDEA中会出现SonarLint扩展栏

Jenkins 插件安装、基础配置
插件安装
- Maven Integration
- Gitlab Merge Request Builder
- GitLab Logo
- Gitlab Hook
- SonarQube Scanner for Jenkins
- Checkstyle
- Findbugs
- PMD
- Build Pipeline
任务配置,构建
-
新建任务

-
jeesite-配置-源码管理

-
系统管理-全局工具配置


- jeesite-配置-Build

- 立即构建

- 查看构建输出,
Git changes

- 构建失败信息,稍后在使用 GitLab Webhooks 时解决此问题,重新构建


GitLab Webhooks
Jenkins 配置
- 获取
Gitlab Access Token

- Jenkins-系统管理-系统配置

- jeesite-配置-Build Triggers

GitLab 配置
Url is blocked: Requests to localhost are not allowed

- 新增
Webhooks

Test Push Events

- 查看
Jenkins面板


Jenkins SonarQube
Jenkins 配置
-
系统配置
SonarQube生成令牌

Jenkins-系统管理-系统设置-SonarQube servers

-
全局配置
Jenkins-系统管理-全局工具配置-SonarQube Scanner

-
jeesite-配置-新建构建后操作步骤

-
立即构建

-
SonarQube分析中

-
构建结束

SonarQube 面板
- 后台分析任务

- 分析完成

Nexus 搭建使用
Nexus 安装启动
Nexus配置JDK变量

- 默认端口 8081,已被 Jenkins 占用,修改 Nexus 的端口号
文件位置/nexus-3.16.1/etc/nexus-default.properties

adduser nexus然后运行./nexus run
默认账号/密码admin/admin123

- run-as-a-service
参看官方文档 run-as-a-service
修改 Jeesite POM 文件
distributionManagement标签
<!--项目分发信息,在执行mvn deploy后表示要发布的位置 -->
<distributionManagement>
<repository>
<id>releases</id>
<name>Nexus Release Repository</name>
<url>http://192.168.0.222:8087/nexus/content/repositories/releases</url>
<uniqueVersion>true</uniqueVersion>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://192.168.0.222:8087/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
repositories标签
<!-- 私服仓储配置 -->
<repositories>
<repository>
<id>nexus</id>
<url>http://192.168.0.222:8087/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
pluginRepositories标签
<!-- Maven插件仓储配置 -->
<pluginRepositories>
<pluginRepository>
<id>framework</id>
<url>http://192.168.0.222:8087/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
完.....
Gitlab 展示
Jenkins 展示
SonarQube 展示

































Nexus 搭建使用


欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于