이 문서는 Sonarqube 설치에 대한 가이드를 제공한다.
목차 |
---|
설치버전
...
OS | CentOS 7 |
---|---|
SonarQube | version 7.2.x 이상 |
...
사전 준비
...
root 권한으로 SonarQube 실행이 불가하므로 사용자 추가 필요
코드 블럭 $ adduser --system --no-create-home sonarqube sonarqube
root 권한으로 수행
vm.max_map_count
is greater or equals to 262144fs.file-max
is greater or equals to 65536- the user running SonarQube can open at least 65536 file descriptors
- the user running SonarQube can open at least 4096 threads
코드 블럭 $ sysctl -w vm.max_map_count=262144 $ sysctl -w fs.file-max=65536 $ ulimit -n 65536 // open files $ ulimit -u
...
4096 // max user processes
부팅 후에도 유지하려면, /etc/sysctl.d/99-sonarqube.conf 에 위의 옵션 추가
코드 블럭 title /etc/sysctl.d/99-sonarqube.conf (or /etc/sysctl.conf) vm.max_map_count=262144 or 524288 fs.file-max=65536 or 131072
코드 블럭 title /etc/security/limits.d/99-sonarqube.conf (or /etc/security/limits.conf) sonarqube - nofile 65536 or 131072 sonarqube - nproc
...
4096 or 8192
Ubuntu의 경우 /etc/security/limits.conf 수정
systemd 를 사용하여 기동한다면, 시작 스크립트에 아래 내용 추가
코드 블럭 LimitNOFILE=65536 or 131072 LimitNPROC=4096 or 8192
SonarQube Download
https://www.sonarqube.org/downloads/ 접속 하여 SonarQube 5.6.5(LTS)를 다운 받고 압축을 해제 한다.
압축 해제한 파일을 관리가 용이 하도록 원하는 디렉토리로 이동을 한다.
코드 블럭 |
---|
$ wget https://binaries.sonarsource.bintray.com/DistributionCommercialDistribution/sonarqube-developer/sonarqube-developer-58.3.60.534182.zip $ unzip sonarqube-developer-58.3.60.534182.zip $ mv sonarqube-5.6.5-developer-8.3.0.34182.zip /opt/sonarqube/ |
SonarQube User 생성, Database 생성
user 생성 합니다.
코드 블럭 |
---|
adduser sonar passwd sonar $ chown -R sonarsonarqube.sonarqube /opt/sonarqube/ |
Database 생성 및 DBuser 생성
SonarQube의 데이터베이스와 사용자를 생성하기 위해 Postgresql로 접속 합니다.
코드 블럭 |
---|
$ su - postgres $ psql createCREATE userUSER sonar withWITH ENCRYPTED password 'sonar'; createCREATE databaseDATABASE sonar owner WITH ENCODING 'UTF8' OWNER sonar TEMPLATE=template0; \q |
SonarQube 설정
/var/lib/pgsql/10/data/pg_hba.conf 파일에서 인증 방식 수정
코드 블럭 | ||
---|---|---|
| ||
.
#host all all 127.0.0.1/32 ident
host all all 127.0.0.1/32 md5 // md5로 변경
. |
디비 재기동
systemctl restart postgresql-10
SonarQube 설정
sonar.properties 수정
$SONARQUBE_HOMEsonarqube/conf/sonar.properties 편집하기 위해 다음 명령을 수행합니다.
코드 블럭 |
---|
$ vi /opt/sonarqube/conf/sonar.properties |
다음 항목들을 수정해줍니다. 수정(같은 서버에 설치할 경우 locahost가 아닌 위 pg_hba.conf 파일에 설정된 127.0.0.1 입력
- sonar.jdbc.username=sonar
- sonar.jdbc.password=sonar
- sonar.jdbc.url=jdbc:postgresql://localhost127.0.0.1/sonar
코드 블럭 |
---|
# DATABASE sonar.jdbc.username=sonaruser sonar.jdbc.password=sonarpass #----- MySQL 5.6 or greater sonar.jdbc.url=jdbc:mysql://10.20.250.93:3306/sonardb?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false # WEB SERVER sonar.web.javaOpts=-Xmx2048m -Xms1024m -XX:+HeapDumpOnOutOfMemoryError sonar.web.host=0.0.0.0 sonar.web.port=9000 # COMPUTE ENGINE sonar.ce.javaOpts=-Xmx2048m -Xms1024m -XX:+HeapDumpOnOutOfMemoryError # OTHERS sonar.path.data=/data/atlassian/application-data/sonarqube |
wrapper.conf 수정
$SONARQUBE_HOME/conf/wrapper.conf
Java command 실행 파일 경로 지정
코드 블럭 |
---|
wrapper.java.command=/opt/jdk-11.0.5/bin/java |
SonarQube 실행
다음 명령을 통해 SonarQube를 실행합니다.
코드 블럭 |
---|
$ /opt/sonarqube/bin/linux-x86-64/sonar.sh start |
...
아이디와 패스워드를 입력합니다. ID : admin / PW : admin
서비스 등록
CentOS 6
/etc/init.d/sonar 파앨 생성
코드 블럭 |
---|
#!/bin/bash # SonarQube #chkconfig: 2345 80 05 #description: SonarQube RUN_AS_USER=sonar APPLICATION_HOME=/opt/sonarqube start() { echo "Starting SonarQube: " if [ "x$USER" != "x$RUN_AS_USER" ]; then su - $RUN_AS_USER -c "$APPLICATION_HOME/bin/linux-x86-64/sonar.sh start" else $APPLICATION_HOME/bin/linux-x86-64/sonar.sh start fi echo "done." } stop() { echo "Shutting down SonarQube: " if [ "x$USER" != "x$RUN_AS_USER" ]; then su - $RUN_AS_USER -c "$APPLICATION_HOME/bin/linux-x86-64/sonar.sh stop" else $APPLICATION_HOME/bin/linux-x86-64/sonar.sh stop fi echo "done." } case "$1" in start) start ;; stop) stop ;; *) echo "Usage: $0 {start|stop}" esac exit 0 |
...
코드 블럭 |
---|
$ chkconfig --add sonar |
CentOS 7
/etc/systemd/system/sonar.service 파일 생성
코드 블럭 |
---|
[Unit]
Description=Atlassian SonarQube Server Service
After=syslog.target network.target crowd.service
[Service]
Type=forking
User=sonar
Environment=JAVA_HOME=/data/java/jdk
ExecStart=/data/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop=/data/sonarqube/bin/linux-x86-64/sonar.sh stop
LimitNOFILE=131072
LimitNPROC=8192
[Install]
WantedBy=multi-user.target |
...
코드 블럭 |
---|
$ systemctl enable sonar.service |