程式碼品質分析的好用工具 - SonarQube 安裝及設定 (2)

前一篇文章 ,介紹了如何 SonarQube 的基本功能和所能幫助我們做到的事情,而在本篇文章中,就要開始向大家介紹如何從頭開始安裝一台自己的 SonarQube 伺服器,來讓自己的專案報告可以傳送到 SonarQube 的伺服器上,並透過報表的方式提供給使用者檢視程式碼是否有潛在的風險。

準備虛擬機器

在本篇文章中將會以 Azure 的虛擬機器和 Azure Sql Database 作為安裝環境,其實 SonarQube 也支援了好幾種不同的資料庫(例如 MySql),大家可以依照自己的需求調整。

  1. 在 Azure 建立一台虛擬機器,這邊使用的是 Windows Server 2012 R2 DataCenter

    建立虛擬機器

  2. 可以依照公司的使用量來選擇機器大小,在這邊我選擇的是 A1 基本 (如果用量不大甚至可以選擇 A0 基本)

    選擇機器大小

  3. 還會需要調整一些機器周邊設定,調整為自己所需要的即可,設定完畢後即可建立新虛擬機器

準備資料庫

準備好 Azure 的虛擬機器之後,我們接著要建立一台 Azure 的 Sql Database 供資料儲存使用,當然你也可以選擇自己架的 Sql Server 或 MySql,詳細資料可以參考官方的文件說明。

  1. 在 Azure Sql Database 中直接選擇想要的價位,本範例使用 S0 Standard,選好之後就可以建立資料庫。

    建立資料庫

  2. 建立完成之後,記住資料庫的位址

    Database Position

開始安裝 SonarQube

當機器都準備好之後,我們就可以透過遠端桌面連到我們剛剛見好的虛擬機器,進行 SonarQube 的安裝

  1. 安裝 Java Runtime Environment (下載位址),若安裝成功,在 CommandLine 執行 Java 應該可以看到類似的畫面

    Java

  2. 下載 SonarQube 5.6 版 (連結),並解壓縮到 C:\SonarQube

    SonarQube Unzip

  3. 編輯 C:\sonarqube\conf\sonar.properties ,指定資料庫的連線字串

    Database ConnectionString

    sonar.jdbc.url=jdbc:sqlserver://{database_url};databaseName={database_name}
    sonar.jdbc.username={username}
    sonar.jdbc.password={password}
    
  4. 打開 Command Line,執行 C:\sonarqube\bin\windows-x86-64\StartSonar.bat,第一次執行可能要等待一些時間讓資料庫初始化,成功後應該可以看到如同下面的畫面

    Start SonarQube

  5. 開啟瀏覽器,前往 http://localhost:9000,應該可以看到成功啟動 SonarQube

    SonarQube Portal

  6. 如果你想要開始調整 SonarQube 的設定的話,也可以使用 admin/admin 來登入,記得登入後要將密碼改為不容易被猜中,到這邊我們就完成了 SonarQube 的安裝工作

讓外部也能連到 SonarQube Server

在目前為止,我們設定好了 SonarQube ,也可以在本機上連到 SonarQube 的入口畫面,而如果要讓所有人都可以連到 SonarQube 還有一些其他的工作必須要進行,例如設定防火牆允許外部連入以及設定虛擬機器的網路位址

  1. 打開防火牆進階設定,新增防火牆 InBound Rule

    FireWall Inbound

  2. 設定允許 TCP Port 9000 連入,填完資訊後儲存

    FireWall port

  3. 打開 Azure 虛擬機器的公用 IP 位址,設定 DNS 名稱

    DNS Alias

  4. 進入 Azure 虛擬機器的網路安全性群組,新增連入安全性規則,允許連入 Port 9000

    Security

  5. 開啟瀏覽器,前往 http://{mysonarqube_dns_address}:9000,應該可以看到 SonarQube

    SonarQube Portal

  6. 這邊的安全性設定,大家可以依照自己的需求調整,有時候換成別的 Port 也可以避免被別人猜到自己在主機上使用了什麼服務喔!

小結

今天的文章之中,向大家介紹如何從頭安裝一台新的 SonarQube 伺服器,有了伺服器之後,就可以開始把分析的結果和報告都傳送到 SonarQube 伺服器上,在後面的文章,我也會向大家說明如何產生並上傳 SonarQube 的分析報告,如果有任何問題,歡迎大家一起討論喔!