国产精品久久久久久2021,日韩精品无码av中文无码版,亚洲精品久久久午夜麻豆,无码成人精品日本动漫纯h

010-68421378
當前您所在的位置:首頁>新聞中心>行業(yè)動態(tài)

SonaQube:安裝服務器

發(fā)布時間:2021/12/17 瀏覽量:4084
本節(jié)介紹單節(jié)點 SonarQube 實例。 有關集群設置的詳細信息,請參閱將服務器安裝為集群。

SonaQube:安裝服務器

概覽

本節(jié)介紹單節(jié)點 SonarQube 實例。 有關集群設置的詳細信息,請參閱將服務器安裝為集群。

實例組件

SonarQube 實例包含三個組件:

 

主機和位置

為了獲得最佳性能,SonarQube 服務器和數(shù)據(jù)庫應該安裝在不同的主機上,并且服務器主機應該是專用的。 服務器和數(shù)據(jù)庫主機應位于同一網(wǎng)絡中。

所有主機都必須是時間同步的。

安裝數(shù)據(jù)庫

支持多個數(shù)據(jù)庫引擎。 請務必遵循為您的數(shù)據(jù)庫列出的要求。 它們是真正的要求而不是建議。

創(chuàng)建一個空架構和一個 sonarqube 用戶。 授予此 sonarqube 用戶權限以創(chuàng)建、更新和刪除此架構的對象。

Microsoft SQL Server

排序規(guī)則必須區(qū)分大小寫 (CS) 和區(qū)分重音 (AS)。

READ_COMMITED_SNAPSHOT 必須在 SonarQube 數(shù)據(jù)庫上設置。

MS SQL 數(shù)據(jù)庫的共享鎖策略可能會影響 SonarQube 運行時。 確保 is_read_committed_snapshot_on 設置為 true 以防止 SonarQube 在重負載下面臨潛在的死鎖。

檢查 is_read_committed_snapshot_on 的查詢示例:

SELECT is_read_committed_snapshot_on FROM sys.databases WHERE name='YourSonarQubeDatabase';

更新 is_read_committed_snapshot_on 的查詢示例:

ALTER DATABASE YourSonarQubeDatabase SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE;

綜合安全

要使用集成安全性:

 

如果您從命令提示符運行 SonarQube 服務器,則運行命令提示符的用戶應具有 db_owner 數(shù)據(jù)庫角色成員資格。

sonar.jdbc.url=jdbc:sqlserver://localhost;databaseName=sonar;integratedSecurity=true

SQL驗證

要使用 SQL 身份驗證,請使用以下連接字符串。 還要確保 sonar.jdbc.username 和 sonar.jdbc.password 設置正確:

sonar.jdbc.url=jdbc:sqlserver://localhost;databaseName=sonar

sonar.jdbc.username=sonarqube

sonar.jdbc.password=mypassword

 

Oracle

如果在同一個 Oracle 實例上有兩個 SonarQube 模式,特別是如果它們用于兩個不同的版本,SonarQube 會感到困惑并選擇它找到的第一個。 為了避免這個問題:

Oracle JDBC 驅動程序版本 12.1.0.1 和 12.1.0.2 存在重大錯誤,不建議與 SonarQube 一起使用(查看更多詳細信息)。

 

PostgreSQL

如果您想使用自定義架構而不是默認的“公共”架構,則必須設置 PostgreSQL search_path 屬性:

ALTER USER mySonarUser SET search_path to mySonarQubeSchema

 

從 ZIP 文件安裝 SonarQube

首先,檢查要求。 然后下載并解壓縮發(fā)行版(不要解壓縮到以數(shù)字開頭的目錄)。

SonarQube 不能在基于 Unix 的系統(tǒng)上以 root 身份運行,因此如有必要,請為 SonarQube 創(chuàng)建一個專用用戶帳戶。

$SONARQUBE-HOME(如下)指的是 SonarQube 發(fā)行版解壓后的目錄路徑。

設置對數(shù)據(jù)庫的訪問

編輯 $SONARQUBE-HOME/conf/sonar.properties 以配置數(shù)據(jù)庫設置。 模板可用于每個受支持的數(shù)據(jù)庫。 只需取消注釋并配置您需要的模板并注釋掉專用于 H2 的行:

Example for PostgreSQL

sonar.jdbc.username=sonarqube

sonar.jdbc.password=mypassword

sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube

添加 JDBC 驅動程序

已提供支持的數(shù)據(jù)庫(Oracle 除外)的驅動程序。 不要更換提供的驅動程序; 他們是唯一支持的。

對于 Oracle,將 JDBC 驅動程序復制到 $SONARQUBE-HOME/extensions/jdbc-driver/oracle。

配置 Elasticsearch 存儲路徑

默認情況下,Elasticsearch 數(shù)據(jù)存儲在 $SONARQUBE-HOME/data 中,但不建議將其用于生產(chǎn)實例。 相反,您應該將此數(shù)據(jù)存儲在其他地方,最好是在具有快速 I/O 的專用卷中。 除了保持可接受的性能外,這樣做還可以簡化 SonarQube 的升級。

編輯 $SONARQUBE-HOME/conf/sonar.properties 以配置以下設置:

sonar.path.data=/var/sonarqube/data

sonar.path.temp=/var/sonarqube/temp

用于啟動 SonarQube 的用戶必須對這些目錄具有讀寫權限。

啟動 Web 服務器

默認端口為“9000”,上下文路徑為“/”。 這些值可以在 $SONARQUBE-HOME/conf/sonar.properties 中更改:

sonar.web.host=192.168.0.1

sonar.web.port=80

sonar.web.context=/sonarqube

執(zhí)行以下腳本來啟動服務器:

 

調整 Java 安裝

如果您的服務器上安裝了多個 Java 版本,您可能需要明確定義所使用的 Java 版本。

要更改 SonarQube 使用的 Java JVM,請編輯 $SONARQUBE-HOME/conf/wrapper.conf 并更新以下行:

wrapper.java.command=/path/to/my/jdk/bin/java

高級安裝功能

從Docker鏡像中安裝SonarQube

請按照以下步驟進行首次安裝:

使用以下命令創(chuàng)建卷:

$> docker volume create --name sonarqube_data

$> docker volume create --name sonarqube_logs

$> docker volume create --name sonarqube_extensions

確保您使用的是上述命令所示的卷,而不是綁定掛載。 使用綁定安裝會阻止插件正確填充。

 

 

a. 使用嵌入式 H2 數(shù)據(jù)庫啟動 SonarQube 容器:

$ docker run --rm \

    -p 9000:9000 \

    -v sonarqube_extensions:/opt/sonarqube/extensions \

    

b. 一旦 SonarQube 正常啟動就退出。

c. 將 Oracle JDBC 驅動程序復制到 sonarqube_extensions/jdbc-driver/oracle。

 

3. 使用 -e 環(huán)境變量標志定義的數(shù)據(jù)庫屬性運行映像:

$> docker run -d --name sonarqube \

    -p 9000:9000 \

    -e SONAR_JDBC_URL=... \

    -e SONAR_JDBC_USERNAME=... \

    -e SONAR_JDBC_PASSWORD=... \

    -v sonarqube_data:/opt/sonarqube/data \

    -v sonarqube_extensions:/opt/sonarqube/extensions \

    -v sonarqube_logs:/opt/sonarqube/logs \

    

 

有關更多配置環(huán)境變量,請參閱 Docker 環(huán)境變量。

環(huán)境變量 SONARQUBE_JDBC_USERNAME、SONARQUBE_JDBC_PASSWORD 和 SONARQUBE_JDBC_URL 的使用已被棄用,并將在未來版本中停止使用。

Docker Compose 配置示例

如果您使用 Docker Compose,請在配置 .yml 文件時使用以下示例作為參考。 單擊下面的標題以展開 .yml 文件。

下面的示例將使用最新版本的 SonarQube Docker 映像。 如果要使用 SonarQube 的 LTS 版本,您需要使用 sonarqube:lts-community 圖像標簽更新示例。

下一步

安裝并運行服務器后,您可能還需要安裝插件。 然后您就可以開始分析源代碼了。

故障排除/常見問題

無法通過代理連接到市場

仔細檢查 $SONARQUBE_HOME/conf/sonar.properties 中的代理設置是否正確設置。 請注意,如果您的代理用戶名包含反斜杠,則應將其轉義 - 例如文件中的用戶名“域\用戶”應如下所示:

http.proxyUser=domain\\user

對于某些代理,異常“java.net.ProtocolException: Server redirected too many times”可能意味著配置了不正確的用戶名或密碼。

異常 java.lang.RuntimeException:無法以 root 身份運行 elasticsearch

SonarQube 啟動一個 Elasticsearch 進程,并且運行 SonarQube 本身的帳戶將用于 Elasticsearch 進程。 由于 Elasticsearch 不能以 root 身份運行,這意味著 SonarQube 也不能。 您必須選擇其他非 root 帳戶來運行 SonarQube,最好是專用于此目的的帳戶。

Sonarqube DNS 緩存

在向 DevOps 平臺報告 Quality Gate 狀態(tài)時,SonarQube 使用 30 秒的 DNS 緩存生存時間策略。 如有必要,您可以在 JVM 中更改此設置:

echo "networkaddress.cache.ttl=5" >> "${JAVA_HOME}/conf/security/java.security"

請注意,低值會增加 DNS 欺騙攻擊的風險。

 

下一篇:選擇 think-cell 的原因
上一篇:memoQ:服務器Web服務API

                               

 京ICP備09015132號-996 | 違法和不良信息舉報電話:4006561155

                                   © Copyright 2000-2026 北京哲想軟件有限公司版權所有 | 地址:北京市海淀區(qū)西三環(huán)北路50號豪柏大廈C2座11層1105室

                         北京哲想軟件集團旗下網(wǎng)站:哲想軟件 | 哲想動畫

                            華滋生物