🐞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
用户启动,新建用户sonar
adduser 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>
完.....
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于