君玉自牧 君玉自牧
首页
  • Linux
  • Nginx
  • MySQL
  • Redis
  • Kafka
  • Docker
  • Jenkins
  • Oneindex
  • Bitwarden
  • Confluence
  • Photogallery
  • 智能手机
  • 上古卷轴
  • 健身记录
  • 站点相关
  • 未完待续
GitHub (opens new window)
首页
  • Linux
  • Nginx
  • MySQL
  • Redis
  • Kafka
  • Docker
  • Jenkins
  • Oneindex
  • Bitwarden
  • Confluence
  • Photogallery
  • 智能手机
  • 上古卷轴
  • 健身记录
  • 站点相关
  • 未完待续
GitHub (opens new window)
  • 技术架构

  • 桌面维护

  • 网络工程

  • 系统运维

  • 环境搭建

  • 容器编排

  • 持续集成

    • Nexus Repository 制品库
    • Gitlab 部署 & 服务配置
    • Jenkins 部署 & 服务配置
    • Sonarqube 部署 & 服务配置
      • 解压安装
      • 配置文件
      • 服务启停
      • Docker
      • 相关配置
        • 界面汉化
    • 用 Jenkins 构建 .NET 项目
    • 用 Jenkins 构建 VUE 项目
    • 用 Jenkins 构建 Java 项目
  • 监控告警

  • 项目实践

  • 脚本开发

  • 前端开发

  • 后端开发

  • 效率工具

目录

Sonarqube 部署 & 服务配置

  • SonarQube v7.9 起,不再支持 JDK11 以下版本
  • SonarQube v7.8 起,不再支持 MySQL

SonarQube (opens new window) 整个架构包含 4 个组件:

  • SonarQube 服务端:包含 Web 服务界面、elasticsearch 搜索引擎、计算引擎三个主要部分
  • SonarQube 数据库:默认内嵌数据库,并支持 Oracle、PostgreSQL 和 Microsoft SQLServer 数据库
  • SonarQube 插件:包括语言、SCM、集成、身份验证和治理插件等
  • SonarScanner 客户端:开发人员或持续集成服务器通过 SonarScanner 进行项目代码分析

https://docs.sonarqube.org/8.9/

# 解压安装

wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.9.9.56886.zip
unzip sonarqube-8.9.9.56886.zip
mv sonarqube-8.9.9.56886 /app/service/sonarqube
mkdir -pv /app/{data,logs,tmp}/sonarqube
1
2
3
4

# 配置文件

grep -Ev "^$|#" /app/service/sonarqube/conf/sonar.properties

vi /app/service/sonarqube/conf/sonar.properties

#默认使用内置数据库,但是无法安装扩展和升级
sonar.jdbc.username=sonarqube
sonar.jdbc.password=password
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube?currentSchema=pubilc
#sonar.web.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
sonar.web.host=0.0.0.0
sonar.web.context=/sonarqube
sonar.web.port=9000
sonar.path.data=/app/data/sonarqube
sonar.path.logs=/app/logs/sonarqube
sonar.path.temp=/app/temp/sonarqube
#其他默认或者按需
1
2
3
4
5
6
7
8
9
10
11
12
13
14

多个 JDK 版本需要修改配置

vi /app/service/sonarqube/conf/wrapper.conf
wrapper.java.command=/app/service/jdk11/bin/java
1
2

修改内置 ES

vi /app/service/sonarqube/elasticsearch/config/elasticsearch.yml
cluster.name: sonar-es
node.name: es-01
#path.data: /app/data/elasticsearch
#path.logs: /app/logs/elasticsearch
##锁定物理内存地址,避免 es 使用 swap 使 IOPS 变高
#bootstrap.memory_lock: true
#bootstrap.memory_lock: false
#上述为 false 需要追加配置
#bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
xpack.security.enabled: false
#单点部署
discovery.type: single-node
#集群部署
#node.master: true
#node.data: true
#discovery.zen.minimum_master_nodes: 1
#discovery.zen.ping_timeout: 3s
#discovery.zen.ping.unicast.hosts: ["ip1:9300","ip2:9300","ip3:9300"]
#初始时 Master 节点选取
#cluster.initial_master_nodes: ["elk-01"]
#开启跨域请求
http.cors.enabled: true
http.cors.allow-origin: "*"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

ES 使用 JDK11

vi /app/service/sonarqube/elasticsearch/bin/elasticsearch

export JAVA_HOME=/app/service/jdk11
export PATH=$JAVA_HOME/bin:$PATH
if [ -x "$JAVA_HOME/bin/java" ]; then
  JAVA="/app/service/jdk11/bin/java"
else
  JAVA=`which java`
fi
1
2
3
4
5
6
7
8
9

# 服务启停

#前台运行,关闭命令直接退出
/app/service/sonarqube/bin/linux-x86-64/sonar.sh console
#后台运行
/app/service/sonarqube/bin/linux-x86-64/sonar.sh start
#关闭服务
/app/service/sonarqube/bin/linux-x86-64/sonar.sh stop
#重启服务
/app/service/sonarqube/bin/linux-x86-64/sonar.sh restart

ln -s /app/service/sonarqube/bin/linux-x86-64/sonar.sh  /usr/bin/sonar
1
2
3
4
5
6
7
8
9
10

# Docker

docker volume create --name sonarqube_data
docker volume create --name sonarqube_logs
docker volume create --name sonarqube_extensions
#内嵌数据库
docker run --rm \
    -p 9000:9000 \
    -v sonarqube_extensions:/opt/sonarqube/extensions \
    <image_name>
#搭建数据库
docker run -d --name sonarqube \
    -p 9000:9000 \
    -e SONAR_JDBC_URL=... \
    -e SONAR_JDBC_USERNAME=... \
    -e SONAR_JDBC_PASSWORD=... \
    -v sonarqube_data:/opt/sonarqube/data \
    -v sonarqube_extensions:/opt/sonarqube/extensions \
    -v sonarqube_logs:/opt/sonarqube/logs \
    <image_name>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 相关配置

启动以后浏览器访问 http://192.168.254.100:9000,默认用户名密码为:admin、admin,手首次登录需要修改

# 界面汉化

登录后, 打开 Administration → Marketplace,搜索 chinese pack,点击 install;

离线安装需要先去下载汉化文件 (opens new window)并放到软件根目录下 extensions/plugins/ 文件夹里

网页编辑 (opens new window)
最近提交: 2023/03/22, 11:52:35
Jenkins 部署 & 服务配置
用 Jenkins 构建 .NET 项目

← Jenkins 部署 & 服务配置 用 Jenkins 构建 .NET 项目→

Theme by Vdoing | Copyright © 2011-2023 | 君玉自牧
粤ICP备15057965号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式