[TOC]
# 1. 配置基礎環境
**1. 添加sonarqube系統用戶**
SonarQube不能用`root`用戶運行,所以需要添加一個非`root`用戶。
```shell
# 創建用戶組
groupadd sonarqube
# 創建用戶
useradd sonarqube -g sonarqube
# 設置密碼
passwd sonarqube
```
**2. 默認的配置可能不滿足要求,我們增大`limits.conf`文件里面的配置**
```shell
# vim /etc/security/limits.conf
sonarqube soft nofile 131072
sonarqube hard nofile 131072
sonarqube soft nproc 8192
sonarqube hard nproc 8192
```
**3. 默認的配置可能不滿足要求,我們增大`sysctl.conf`文件里面的配置**
```shell
# vim /etc/sysctl.conf
vm.max_map_count = 524288
fs.file-max = 131072
# sysctl -p
```
**4. 在PostgreSQL中創建sonarqube數據庫**
```shell
(1) 切換到用戶postgres
# su - postgres
-bash-4.2$
(2) 登錄數據庫
-bash-4.2$ psql
postgres=#
(3) 創建用戶sonar和密碼sonar
postgres=# create user sonar with password 'sonar';
(4) 創建數據庫指定所屬者
postgres=# create database sonarqube owner sonar encoding='UTF8';
(5) 將數據庫權限,全部賦給用戶sonar
postgres=# grant all on database sonarqube to sonar;
(6) 退出數據庫
postgres=# \q
-bash-4.2$ exit
```
<br/>
# 2. 安裝SonarQube
**1. 下載SonarQube并解壓**
下載地址:https://www.sonarqube.org/downloads/

```shell
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.9.6.50800.zip
yum -y install unzip
unzip sonarqube-8.9.6.50800.zip -d /opt/install/
```
**2. 創建持久數據文件和臨時文件的路徑,并授權sonarqube用戶訪問權限**
```shell
mkdir -p /opt/install/sonarqube-8.9.6.50800/data
mkdir -p /opt/install/sonarqube-8.9.6.50800/temp
chown -R sonarqube:sonarqube /opt/install/sonarqube-8.9.6.50800/data
chown -R sonarqube:sonarqube /opt/install/sonarqube-8.9.6.50800/temp
chown -R sonarqube:sonarqube /opt/install/sonarqube-8.9.6.50800/
```
**3. 修改`sonar.properties`核心配置文件**
```shell
cd /opt/install/sonarqube-8.9.6.50800/conf/
# vim sonar.properties
--sonarqube數據庫的用戶名與密碼
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:postgresql://192.168.1.25:5432/sonarqube
sonar.web.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
sonar.web.host=192.168.1.25
sonar.web.context=/sonarqube
sonar.web.port=9000
sonar.path.data=/opt/install/sonarqube-8.9.6.50800/data
sonar.path.temp=/opt/install/sonarqube-8.9.6.50800/temp
```
**4. 修改`wrapper.conf`核心配置文件**
```shell
# vim wrapper.conf
--指定jdk11的路徑
wrapper.java.command=/opt/install/jdk-11.0.9/bin/java
```
**5. SonarQube默認端口是9000,開放9000端口**
```shell
--查詢9000端口是否開放
# firewall-cmd --query-port=9000/tcp
no
--開放9000端口
# firewall-cmd --zone=public --add-port=9000/tcp --permanent
# firewall-cmd --reload
# firewall-cmd --query-port=9000/tcp
yes
```
**6. 切換到sonarqube用戶啟動程序**
```shell
su sonarqube
cd /opt/install/sonarqube-8.9.6.50800/bin/linux-x86-64
./sonar.sh start
```
**7. 瀏覽器訪問SonarQube:http://192.168.1.25:9000/sonarqube/**
(1)默認賬號`admin`,默認密碼`admin`。

(2)更新密碼。我的新密碼`adminsonar`。

- 相關概念
- 軟件開發生命周期
- 軟件開發瀑布模型
- 軟件的敏捷開發
- 持續集成
- Jenkins介紹
- Jenkins是什么
- Jenkins的特征
- Jenkins環境搭建
- 搭建架構說明
- Gitlab安裝與配置
- Jenkins安裝與配置
- Tomcat安裝和配置
- Jenkins構建項目
- 自由風格軟件項目構建
- Maven項目構建
- Pipeline流水線項目構建
- Pipeline是什么
- Pipeline語法
- 流水線項目構建演示
- Pipeline Script from SCM
- 構建觸發器
- 觸發遠程構建
- 其他工程構建后觸發
- 定時構建
- 輪詢SCM
- Git hook自動觸發構建
- 參數化構建
- 配置郵箱發送構建結果
- SonarQube代碼審查平臺
- SonarQube是什么
- SonarQube平臺搭建
- 安裝jdk11
- 安裝數據庫PostgreSQL12
- 安裝SonarQube
- SonarQube實現代碼審查
- Jenkins+Docker+SpringCloud(1)
- 流程說明
- 環境搭建
- 服務器列表
- Docker安裝與配置
- Harbor安裝與配置
- Nginx安裝與配置
- 微服務持續集成演示
- Jenkins上配置
- 微服務項目配置
- 部署前端靜態web網站