이 문서는 Sonarqube 설치에 대한 가이드를 제공한다.
설치버전
- Database : Postgresql 9.3.15
- SonarQube : 5.6.5
사전 준비
Linux
- root 권한으로 수행
sysctl -w vm.max_map_count=262144 sysctl -w fs.file-max=65536 ulimit -n 65536 ulimit -u 2048
/etc/limits.d/99-sonarqube.conf
sonarqube - nofile 65536 sonarqube - nproc 2048
SonarQube Download
https://www.sonarqube.org/downloads/ 접속 하여 SonarQube 5.6.5(LTS)를 다운 받고 압축을 해제 한다.
압축 해제한 파일을 관리가 용이 하도록 원하는 디렉토리로 이동을 한다.
wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.6.5.zip unzip sonarqube-5.6.5.zip mv sonarqube-5.6.5 /opt/sonarqube/
SonarQube User 생성, Database 생성
user 생성 합니다.
adduser sonar passwd sonar chown -R sonar /opt/sonarqube/
Database 생성 및 DBuser 생성
SonarQube의 데이터베이스와 사용자를 생성하기 위해 Postgresql로 접속 합니다.
su - postgres psql create user sonar with password 'sonar'; create database sonar owner sonar; \q
SonarQube 설정
sonarqube/conf/sonar.properties 편집하기 위해 다음 명령을 수행합니다.
vi /opt/sonarqube/conf/sonar.properties
다음 항목들을 수정해줍니다.
- sonar.jdbc.username=sonar
- sonar.jdbc.password=sonar
- sonar.jdbc.url=jdbc:postgresql://localhost/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
SonarQube 실행
다음 명령을 통해 SonarQube를 실행합니다.
/opt/sonarqube/bin/linux-x86-64/sonar.sh start
SonarQube에 접속하기 위해 다음 주소를 입력합니다.
아이디와 패스워드를 입력합니다. 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
Service 등록
$ 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 [Install] WantedBy=multi-user.target
서비스 등록
$ systemctl enable sonar.service