---
# System prepended metadata

title: SonarQube安裝步驟(WSL測試)
tags: [SonarQube, DevOps]

---

###### 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
