페이지 트리

버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.

이 문서는 Sonarqube 설치에 대한 가이드를 제공한다.


목차

설치버전

...

OSCentOS 7
SonarQubeversion 7.2.x 이상

...

사전 준비

참고

...

  • root 권한으로 SonarQube 실행이 불가하므로 사용자 추가 필요

    코드 블럭
    $ adduser --system --no-create-home sonarqube sonarqube


  • root 권한으로 수행

    • vm.max_map_count is greater or equals to 262144
    • fs.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 파일에서 인증 방식 수정

코드 블럭
title/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


Resources

sonarqube-5.6.6.zip

WinSCP-5.9.3-Setup.exe