SonarQube篇-升級SonaQube 6.7.X到7.9.1

1 引言

本手冊以「將sonarqube6.7.5升級到7.9.1」爲例,日後的升級(包括遷移數據庫)操作可參考本手冊進行!

sonarqube軟件倉庫:https://binaries.sonarsource.com/Distribution/

2 調研

由於7.8版本及其以上版本都不再支持mysql,而原有環境使用的是mysql,因此還需要將數據從mysql遷移到postgresql上。

3 搭建6.7環境

詳見https://blog.csdn.net/qq_35550345/article/details/103586647

4 升級sonarqube測試

4.1 官方升級說明主要tips

1) MySQL的不再支持

SonarQube不再支持MySQL。要將MySQL從MySQL遷移到受支持的數據庫,請參見免費的MySQL Migrator工具

2) Java的11所需要
SonarQube服務器現在需要Java 11分析,可能會繼續在必要時使用Java 8。

3) Pylint應該手動
運行已棄用python分析期間自動運行Pylint。此外,它在Windows的此版本中已損壞。如果需要,必須提前運行Pylint,並將結果報告傳遞到分析中。

4)ElasticSearch更新需要重建索引,從而可能需要更多的文件空間

4.2 參照官方給出的升級步驟:

  • 在開始之前,請備份SonarQube數據庫。升級問題很少見,但是如果有任何事情發生,您將需要備份。詳情參照https://blog.csdn.net/qq_35550345/article/details/103588917
  • 假設您將SonarQube版本的版本下載並解壓縮到一個新目錄中, $NEW_SONARQUBE_HOME
  • 手動安裝與您的SonarQube版本兼容的非默認插件。使用兼容性列表可確保您安裝的版本與服務器版本兼容。請注意,默認情況下會安裝您版本中所有SonarSource代碼分析器的最新版本。不建議將插件從舊服務器簡單地複製到新服務器;不兼容或重複的插件可能會導致啓動錯誤。
  • 使用目錄中相關文件的設置(Web服務器URL,數據庫,ldap設置等)更新sonar.propertieswrapper.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 升級操作流程

4.3.1 準備工作

1)下發升級通知「何時升級+預計多久+影響功能」

例:【SonarQube升級通知】各位好,計劃於_年_月_日_時_分升級Sonarqube,預計升級1個小時,屆時無法正常使用sonar scanner分析代碼,請知悉。

2)備份數據庫

詳見https://blog.csdn.net/qq_35550345/article/details/103588917

3)下載mysql-migrator工具 mysql-migrator-1.1.0.119.zip

4)準備oracleJDK11安裝包 jdk-11.0.5_linux-x64_bin.tar.gz

5)準備sonarqube8.0安裝包 sonarqube-7.9.1.zip

4.3.2 準備postgre數據庫

1)安裝yum源

rpm -Uvh https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm

2)安裝postgresql server

yum install -y postgresql10-server postgresql10

3)初始化PGDATA

/usr/pgsql-10/bin/postgresql-10-setup initdb

4)修改/var/lib/pgsql/10/data/pg_hba.conf以開啓MD5認證

host all all 127.0.0.1/32 md5

  • 默認情況下,postgresql server監聽的地址爲localhost。如果需要遠程連接postgresql server,則需要修改/var/lib/pgsql/10/data/postgresql.conf中的監聽地址如下:

listen_addresses = '*'

  • 同時,如果需要遠程連接postgresql server,還需要修改/var/lib/pgsql/10/data/pg_hba.conf中的MD5認證爲:

host all all 0.0.0.0/0 md5

5)如果開啓了防火牆,則需要開啓TCP5432端口的監聽

firewall-cmd --permanent --add-port=5432/tcp

firewall-cmd --reload

6)啓用postgresql server並設置開機自啓

systemctl start postgresql-10

systemctl enable postgresql-10

7)檢查一下postgresql server的運行狀態

systemctl status postgresql-10

netstat -tulpn | grep 5432

8)爲sonarqube服務創建數據庫

sudo -u postgres psql

CREATE DATABASE sonar;

CREATE USER sonar WITH ENCRYPTED PASSWORD 'SonarTest2019@';

GRANT ALL PRIVILEGES ON DATABASE sonar TO sonar;

ALTER DATABASE sonar OWNER TO sonar;

\q

4.3.3 遷移數據庫

1)遷移數據

  • 停止sonar

systemctl stop sonar

  • 將sonarqube6.7.5 copy一份,修改原sonar的sonar.properties指定新的數據庫(修改sonar.jdbc參數)

sonar.jdbc.url=jdbc:postgresql://172.16.212.134/sonar 

  • 啓動sonar

./sonar.sh start

  • 停止sonar

./sonar.sh  stop 

  • 將原sonar的配置文件改回,並將副本的配置文件改成

sonar.jdbc.url=jdbc:postgresql://172.16.212.134/sonar

  • 遷移數據

./mysql-migrator-1.1.0.119/bin/mysql-migrator -source /opt/sonarqube/conf/sonar.properties -target /opt/sonarqube-6.7.5/conf/sonar.properties

  • 檢驗數據是否成功複製到了postgre

sudo -u postgres psql

\c sonar

\dt

select * from projects;

2)刪除舊的索引,重啓服務

rm -fr ./sonarqube/data/es5

systemctl start sonar

到此,數據遷移成功!

4.3.4 升級sonarqube到7.9.1

1)安裝JDK11

#因爲現在在通過jdk8運行sonar6.7.5,所以暫時可以不配置全局變量,升級完成後將jdk13配置成全局即可。

tar zxf jdk-11.0.5_linux-x64_bin.tar.gz -C /usr/local/

2)配置sonarqube7.9.1

unzip sonarqube-7.9.1.zip -d /opt/

cp sonarqube/conf/sonar.properties sonarqube-7.9.1/conf/sonar.properties

注意:7.9.1中的一定要是這個:sonar.jdbc.url=jdbc:postgresql://172.16.212.134/sonar

vim sonarqube-7.9.1/conf/wrapper.conf

wrapper.java.command=/usr/local/jdk-11.0.5/bin/java

3)停止sonarqube6.7.5,啓動7.9.1

systemctl stop sonar

mv sonarqube sonarqube-6.7.5.bak

mv sonarqube-7.9.1 sonarqube

chown -R sonar:sonar sonarqube

systemctl start sonar

4)重新登錄頁面

http://172.16.212.133:9000/setup

admin/admin登錄

升級成功!

4.3.5 收尾工作

1)配置JDK11爲全局變量

vim /etc/profile

JAVA_HOME=/usr/local/java/jdk-11.0.5
JRE_HOME=/usr/local/java/jdk-11.0.5/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

2)安裝插件

  • 安裝Chinese漢化包
  • 其他需要的插件

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章