1. 程式人生 > 實用技巧 >Jenkins實現CICD實戰攻略(六)ansiable學習筆記SonarQube學習筆記

Jenkins實現CICD實戰攻略(六)ansiable學習筆記SonarQube學習筆記

目錄

一、簡介

官方介紹SonarQube是一種自動程式碼審查工具,可檢測程式碼中的錯誤,漏洞和程式碼味道。它可以與您現有的工作流程整合,以實現跨專案分支和拉取請求的連續程式碼檢查。官方地址其中包含web、資料庫(7.9以後不支援mysql了)、外掛。

剛接觸SonarQube的時候會被很多名詞搞得暈頭轉向的,SonarQube、SonarQube Scanner、SonarQube runner等等。先大致說一下,之後隨著安裝就明白了。
SonarQube是server接受來自掃描器SonarQube Scanner的分析,然後將資料存入資料庫,再在web端展示。而掃描器SonarQube Scanner裡包含有很多外掛,如:

這裡其他的都挺好理解,有個SonarQube Scanner官方文件是介紹

意思是沒有特定特定的掃描器比如gradle或maven之類的使用的通用掃描器。(SonarQube runner我理解應該是外掛的一種,和gradle或maven屬一個型別,反正在8.4的版本中看不到這個詞了,可能是比較早期的版本有吧。)

二、安裝

(一)伺服器安裝

因為7.9以後就不支援mysql資料庫了,我們這裡選擇了7.6版本。
7.6下載地址

1、裝備工作

建立sonar使用者,將程式拷貝到家目錄解壓,並給予許可權。

useradd sonar
chown sonar.sonar sonarqube-7.6.zip
mv sonarqube-7.6.zip /home/sonar
su - sonar
unzip sonarqube-7.6.zip

  • bin目錄存放了各個環境的啟動指令碼
  • conf目錄存放著sonarqube的配置檔案
  • logs目錄存放著啟動和執行時的日誌檔案
  • elasticsearch安裝包帶的ES不用單獨裝

3、安裝mysql、jdk

檢視支援版本

1、安裝mysqlmysql安裝文件
jdk就不說了,自帶的版本是1.8的也能用

2、建立使用者

在mysql添加了一個 **sonarqube **的使用者,並且建立了一個數據庫叫 sonar,且將資料庫的讀寫執行許可權賦給 sonarqube使用者,用於在站點初始化以及後續儲存設定資料時對資料庫進行修改。

create database sonarqube
grant all on sonarqube.* to sonarqube@'%' identified by '[email protected]';
GRANT SELECT, INSERT, UPDATE, REFERENCES, DELETE, CREATE, DROP ON sonarqube.* TO 'sonarqube'@'%';
flush privileges;

MySQL資料庫的共享鎖定策略可能會影響SonarQube執行時。確保將is_read_committed_snapshot_on其設定為true防止SonarQube在重負載下面臨潛在的死鎖。
ALTER DATABASE YourSonarQubeDatabase SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE;

4、配置sonar

1、sonar.properties

cd conf
vim sonar.properties
新增
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false  
把logcalhost改成IP
sonar.jdbc.username = sonarqube
sonar.jdbc.password = yourpassword       這裡改成你自己的密碼,注意複雜度

2.wrapper.conf
wrapper.conf這個檔案可以設定使用的java的路徑,我這裡用預設的java就不用改這個檔案了。

3、es配置
配置要求

  • vm.max_map_count 大於或等於262144
  • fs.file-max 大於或等於65536
  • 執行SonarQube的使用者可以開啟至少65536個檔案描述符
  • 執行SonarQube的使用者可以開啟至少2048個執行緒
使用root使用者
vim /etc/sysctl.conf
vm.max_map_count=262144
sysctl -p

vim /etc/security/limits.conf
sonarqube   -   nofile   65536
sonarqube   -   nproc    2048

切換sonar使用者
cd /home/sonar/sonarqube-7.6/elasticsearch/config
vim jvm.options
修改jvm記憶體,一般情況設定實體記憶體的三分之一就行

5、啟動

cd sonarqube-7.6/bin/linux-x86-64
./sonar.sh start
./sonar.sh status

服務啟動成功,預設埠是9000,如果啟動沒成功,到logs下邊看看,不是es就是web.log

(二)docker部署

docker安裝可以測試叢集,叢集的部署需要至少5臺。
待補充。。。

三、安裝外掛

安裝漢化外掛
配置--應用市場--chinese--重啟sonar