1 引言
本手冊以「將sonarqube6.7.5升級到7.7」爲例,日後的升級操作均可參考本手冊進行!
sonarqube軟件倉庫:
https://binaries.sonarsource.com/Distribution/
2 調研
由於7.9版本及其以上版本都不再支持mysql,而原有環境使用的是mysql,因此考慮先升級到7.7或7.8版本。
3 搭建集羣環境
詳見https://blog.csdn.net/qq_35550345/article/details/103586647
環境搭建完成之後記得拍個快照!
4 升級sonarqube測試
4.1 官方升級說明主要tips
1)7.7 ElasticSearch更新需要重建索引,從而可能需要更多的文件空間
2)7.4 如果新代碼週期未設置爲以下之一,則分析將失敗:
- 有效的過去日期
- 正整數(天數)
previous_version
- 現有快照的版本字符串
3)需要更多的內存空間
4)查看官方的軟硬件要求:https://docs.sonarqube.org/7.7/requirements/requirements/
4.2 參照官方給出的升級步驟:
- 在開始之前,請備份SonarQube數據庫。升級問題很少見,但是如果有任何事情發生,您將需要備份。詳情參照https://blog.csdn.net/qq_35550345/article/details/103588917
- 假設您將SonarQube版本的版本下載並解壓縮到一個新目錄中,
$NEW_SONARQUBE_HOME
- 手動安裝與您的SonarQube版本兼容的非默認插件。使用兼容性列表可確保您安裝的版本與服務器版本兼容。請注意,默認情況下會安裝您版本中所有SonarSource代碼分析器的最新版本。不建議將插件從舊服務器簡單地複製到新服務器;不兼容或重複的插件可能會導致啓動錯誤。
- 使用目錄中相關文件的設置(Web服務器URL,數據庫,ldap設置等)更新
sonar.properties
和wrapper.conf
文件的內容(中的)。不要複製粘貼舊文件。如果使用的是Oracle DB,則將其JDBC驅動程序複製到$NEW_SONARQUBE_HOME/conf$OLD_SONARQUBE_HOME/conf$NEW_SONARQUBE_HOME/extensions/jdbc-driver/oracle
- 停止舊的SonarQube服務器
- 啓動新的SonarQube服務器
- 瀏覽
http://yourSonarQubeServerURL/setup
並遵循設置說明 - 重新分析您的項目以獲取新數據
4.3 升級操作流程
1)systemctl stop sonar
2)備份現有版本
rm -rf /opt/sonarqube-backup
mv /opt/sonarqube /opt/sonarqube-backup
3)下載最新版本的二進制包
wget -O /tmp/sonarqube.zip https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.7.zip
4)解壓到/opt下
unzip /tmp/sonarqube.zip -d /opt
5)重命名目錄
mv /opt/sonarqube-7.7 /opt/sonarqube
6)從備份中複製配置文件sonar.properties
/bin/cp -f /opt/sonarqube-backup/conf/sonar.properties /opt/sonarqube/conf/sonar.properties
7)修改目錄權限
chown -R sonar:sonar /opt/sonarqube
注意:使用sonar.sh執行start時,該目錄的屬主一定要和執行者賬戶一致且不能爲root,否則會報錯。
8)重建elasticsearch索引數據
sudo rm -rf /opt/sonarqube/data/es*
9) 啓動sonarqube
systemctl start sonar
10)查看日誌
# SonarQube service log
tail -f /opt/sonarqube/logs/sonar.log
# Web Server logs
tail -f /opt/sonarqube/logs/web.log
# ElasticSearch logs
tail -f /opt/sonarqube/logs/es.log
# Compute Engine logs
tail -f /opt/sonarqube/logs/ce.log
4.4 瀏覽器訪問
http://172.16.212.133:9000/setup
點擊upgrade,等待一會就會跳轉:
login:admin/admin
重新去marketplace下載中文插件,點擊restart之後頁面就會變成中文。
在jenkins頁面重新build,正常無報錯,sonarqube頁面刷新之後也會看到新分析的結果。
注意:此時還沒有升級sonar-scanner,但是可以正常分析代碼,說明6.7.X,7.7與jenkins的scanner2.10都是兼容的。
而生產環境安裝的scanner版本就是2.10,所以無需升級sonar-scanner。