在 前一篇文章 ,介紹了如何 SonarQube 的基本功能和所能幫助我們做到的事情,而在本篇文章中,就要開始向大家介紹如何從頭開始安裝一台自己的 SonarQube 伺服器,來讓自己的專案報告可以傳送到 SonarQube 的伺服器上,並透過報表的方式提供給使用者檢視程式碼是否有潛在的風險。
準備虛擬機器
在本篇文章中將會以 Azure 的虛擬機器和 Azure Sql Database 作為安裝環境,其實 SonarQube 也支援了好幾種不同的資料庫(例如 MySql),大家可以依照自己的需求調整。
-
在 Azure 建立一台虛擬機器,這邊使用的是 Windows Server 2012 R2 DataCenter
-
可以依照公司的使用量來選擇機器大小,在這邊我選擇的是 A1 基本 (如果用量不大甚至可以選擇 A0 基本)
-
還會需要調整一些機器周邊設定,調整為自己所需要的即可,設定完畢後即可建立新虛擬機器
準備資料庫
準備好 Azure 的虛擬機器之後,我們接著要建立一台 Azure 的 Sql Database 供資料儲存使用,當然你也可以選擇自己架的 Sql Server 或 MySql,詳細資料可以參考官方的文件說明。
-
在 Azure Sql Database 中直接選擇想要的價位,本範例使用 S0 Standard,選好之後就可以建立資料庫。
-
建立完成之後,記住資料庫的位址
開始安裝 SonarQube
當機器都準備好之後,我們就可以透過遠端桌面連到我們剛剛見好的虛擬機器,進行 SonarQube 的安裝
-
安裝 Java Runtime Environment (下載位址),若安裝成功,在 CommandLine 執行 Java 應該可以看到類似的畫面
-
下載 SonarQube 5.6 版 (連結),並解壓縮到 C:\SonarQube
-
編輯
C:\sonarqube\conf\sonar.properties
,指定資料庫的連線字串sonar.jdbc.url=jdbc:sqlserver://{database_url};databaseName={database_name} sonar.jdbc.username={username} sonar.jdbc.password={password}
-
打開 Command Line,執行
C:\sonarqube\bin\windows-x86-64\StartSonar.bat
,第一次執行可能要等待一些時間讓資料庫初始化,成功後應該可以看到如同下面的畫面 -
開啟瀏覽器,前往 http://localhost:9000,應該可以看到成功啟動 SonarQube
-
如果你想要開始調整 SonarQube 的設定的話,也可以使用 admin/admin 來登入,記得登入後要將密碼改為不容易被猜中,到這邊我們就完成了 SonarQube 的安裝工作
讓外部也能連到 SonarQube Server
在目前為止,我們設定好了 SonarQube ,也可以在本機上連到 SonarQube 的入口畫面,而如果要讓所有人都可以連到 SonarQube 還有一些其他的工作必須要進行,例如設定防火牆允許外部連入以及設定虛擬機器的網路位址
-
打開防火牆進階設定,新增防火牆 InBound Rule
-
設定允許 TCP Port 9000 連入,填完資訊後儲存
-
打開 Azure 虛擬機器的公用 IP 位址,設定 DNS 名稱
-
進入 Azure 虛擬機器的網路安全性群組,新增連入安全性規則,允許連入 Port 9000
-
開啟瀏覽器,前往 http://{mysonarqube_dns_address}:9000,應該可以看到 SonarQube
-
這邊的安全性設定,大家可以依照自己的需求調整,有時候換成別的 Port 也可以避免被別人猜到自己在主機上使用了什麼服務喔!
小結
今天的文章之中,向大家介紹如何從頭安裝一台新的 SonarQube 伺服器,有了伺服器之後,就可以開始把分析的結果和報告都傳送到 SonarQube 伺服器上,在後面的文章,我也會向大家說明如何產生並上傳 SonarQube 的分析報告,如果有任何問題,歡迎大家一起討論喔!