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