###### tags: `DevOps` `SonarQube` # SonarQube安裝步驟(WSL測試) - 作業環境:Ubnutu 20.04  ## 調整vm.max_count vm.max_count:流程可以擁有的VMA(虛擬內存區域)的數量 fs.file-max:系統所有程序一共可以開啟的檔案數量 ulinit:設置shell啟動進程所占用的資源 ``` = sudo sysctl -w vm.max_map_count=262144 sudo sysctl -w fs.file-max=65536 ulimit -n 65536 ulimit -u 4096 ``` ## 預先作Update與Upgrade,下載unzip ``` = sudo apt-get update sudo apt-get upgrade sudo apt-get install wget unzip -y ``` ## 安裝openJDK ```= sudo apt-get install openjdk-11-jdk -y sudo apt-get install openjdk-11-jre -y ``` 检查 JAVA 版本 ```= java -version ``` ![](https://i.imgur.com/iq161Ig.png) ## 安裝和設置PostgreSQL ```= sudo apt install postgresql postgresql-contrib sudo service postgresql start sudo service postgresql status sudo passwd postgres ``` sudo service postgresql status,用於檢查您資料庫的狀態。 sudo service postgresql start,用來開始執行您的資料庫。 sudo service postgresql stop,用來停止執行您的資料庫。 ```= su - postgres createuser sonar psql ALTER USER sonar WITH ENCRYPTED password 'sonar'; CREATE DATABASE sonarqube OWNER sonar; grant all privileges on DATABASE sonarqube to sonar; \q exit ``` ## 安裝SonarQube ```= sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.9.5.zip sudo unzip sonarqube-7.9.5.zip -d /opt ``` ## 配置SonarQube ### Create Group和User ```= sudo groupadd sonar sudo useradd -c "user to run SonarQube" -d /opt/sonarqube -g sonar sonar sudo chown sonar:sonar /opt/sonarqube -R sudo nano /opt/sonarqube/conf/sonar.properties ``` sonar.properties修改處 sonar.jdbc.username=sonar sonar.jdbc.password=sonar sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube ### 編輯SonarQube腳本文件並設置RUN_AS_USER: ```= sudo nano /opt/sonarqube/bin/linux-x86-64/sonar.sh ``` sonar.sh修改處 RUN_AS_USER=sonar ### 修改權限 ```= vim /etc/security/limits.conf ``` 修改處 最後面添加 *** hard nofile 65536 *** soft nofile 65536 *** 是啟動用户名稱 ![](https://i.imgur.com/opkjEAu.png) ## 啟動SonarQube ```= sudo su sonar cd /opt/sonarqube/bin/linux-x86-64/ ./sonar.sh start ``` 檢查運行狀態 ```= ./sonar.sh status tail /opt/sonarqube/logs/sonar.log ``` 如果正常啟動會看到如下log INFO app[][o.s.a.SchedulerImpl] Process[ce] is up INFO app[][o.s.a.SchedulerImpl] SonarQube is up ## 連至SonarQube (Default Port:9000) http://localhost:9000/ ![](https://i.imgur.com/QvhqOs6.png) 預設帳號/密碼 admin/admin