본문 바로가기
CI , CD/Sonarqube

Sonarqube - 1 (우분투에 설치하기)

by 봄석 2019. 6. 16.

Sonarqube

먼저 소나큐브를 설치하기 전에 소나큐브란 무었인지 에대하여 알아보도록 하겠습니다.

 

소나큐브란 ?

소나큐브는 프로젝트의 품질을 관리할 수 있도록 여러가지 모니터링 툴을 제공하는 오슨소스 플랫폼입니다. 보통 소나큐브는 단독으로 사용되기 보다는 지난 번에 포스트한 Jenkins 같은 CI 서버와 연동이 되어서 사용이 되어지고 있으며 Java를 포함한 20가지가 넘는 프로그래밍 언어 (예: C#, C/C++, Javascript 등)로 제작된 프로젝트의 모니터링을 제공합니다. 

 

정리하자면 ,소나큐브는 정적 코드 분석 툴로써 사용되는 오픈소스 프로젝트입니다. 주로 메소드명이 길진 않은지 파라미터값이 많지는 않은지 복잡도는 얼마나되는지 등등을 검사해주는 툴입니다. 웹으로 구동됩니다.

 

만약 복잡도가 높거나 파라미터값이 많거나 할때는 다른 방식으로 구현하도록 에러를 띄워주는 툴입니다. 개인 개발을 할때에도 복잡도가 늘어나면 한눈에 코드의 내용이 들어오지 않기때문에 변경해주는것이 좋습니다. 다시말해 젠킨스는 코드의 지속적인 통합으로 에러검출과 소스코드 품질을 높이는 곳에 중점을 둔다하면 소나큐브는 정적으로 코드를 분석하여 코드의 품질을 올려주는 역할을 담당합니다.

소나큐브의 장점?

  1. 오픈소스 프로젝트이기 때문에 라이센스 비용없이 다운받아서 사용 가능
  2. 프로그램 설치 후 사용 가능한 파워풀하고 심플한 Web Monitoring UI (Dashboard) 제공
  3. 테이블과 차트를 이용하여 시간이 지남에 따라 프로젝트가 얼마나 개선되고 있는지 보여줌
  4. 코딩품질 개선을 위한 정보 (소스의 중복이나 복잡도 그리고 유닛 테스트의 커버리지 및 잠재적인 버그의 정보 등)을 프로젝트 단위부터 파일단위까지 제공

 

 

 

소나큐브 설치 

1.Download

소나큐브 다운로드 링크

https://www.sonarqube.org/downloads/

 

Downloads | SonarQube

 

www.sonarqube.org

 

다운로드 페이지로 이동하여 설치하려는 버전의 압축파일을 링크주소 복사하여 줍니다.

 

저는 tmp 디렉터리로 먼저 이동하여 다운로드 받겠습니다 .

 

그리고 zip 파일 압축해제를위해서 unzip 을 설치합니다.

cd /tmp

# 다운로드  
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.7.zip

# zip파일 압축 해제를 위한 unzip 설치
sudo apt-get install unzip

# zip파일 압축 해제
unzip sonarqube-7.7.zip

#파일 이동
mv sonarqube-7.7 /usr/local/src/sonarqube

 

2. Jdk 설치


SonarQube를 사용하려면 서버에 JDK도 설치 되어있어야 합니다만. 지원하는 JDKsms Open JDK 8 버젼만 지원합니다. 참고

그래서 Open JDK 8 버젼을 설치합니다.

# Open JDK 8 설치
sudo apt-get install openjdk-8-jdk

# Java 환경변수 설정
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")

# 환경변수 설정 내용 확인
echo $JAVA_HOME

 

3. 환경설정

#디렉터리 이동
cd /usr/local/src/sonarqube/

#환경설정 
vi conf/sonar.properties

 

sonar.properties파일을 위와같이 빨간색  쳐진부분처럼 수정해줍니다.

user명은 sonar로  하도록하겠습니다.

 

 

4.database 세팅

# postgresql을 설치합니다.
sudo apt-get install postgresql

# postgres로 계정을 바꿔줍니다.
sudo -i -u postgres

# postgresql의 쉘 커맨드를 실행합니다.
psql

#유저생성, db생성, db권한설정
CREATE USER sonar WITH ENCRYPTED PASSWORD 'sonar';
CREATE DATABASE sonar OWNER sonar;
ALTER ROLE sonar WITH createdb;
GRANT ALL PRIVILEGES ON DATABASE sonar TO sonar;

# 쉘 커맨드를 종료합니다.
CTRL + C

# 원래 계정으로 돌아갑니다.
exit


#재시작
#systemctl restart postgresql

 

 

5.기타 환경설정

 

db작업을 마치고 부팅서비스로 등록하도록 하겠습니다.

#service 생성 , system 디렉토리 없다면 생성
vi /usr/lib/systemd/system/sonar.service

파일안에 아래와같은 내용을 입력해주고 저장해줍니다.

[Unit]
Description=SonarQube Service
After=syslog.target
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/src/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop=/usr/local/src/sonarqube/bin/linux-x86-64/sonar.sh stop
ExecReload=/usr/local/src/sonarqube/bin/linux-x86-64/sonar.sh restart

[Install]
WantedBy=multi-user.target

wq

#데몬 재로드를 한뒤 부팅시 등록 및 실행
systemctl daemon-reload
systemctl enable sonar
systemctl start sonar

 방화벽 포트도  열어줍니다.

ufw allow 9000

 

그리고  다음 중요한것이 실행할때 루트계정으로 실행하면 실행되지  않습니다.

그러므로 sonar라는 계정을 생성해보도록 하겠습니다.

 

유저생성

#그룹생성
sudo groupadd sonar

#유저생성
sudo useradd -m -g sonar -d /usr/local/src/sonarqube -s /bin/bash -p sonar sonar

# -m 홈디렉토리생성, -g 그룹지정 ,-d 디렉토리 지정, -s  쉘지정, -p 패스워드 지정

소유권한 변경

#파일 소유권한 변경
sudo chown -R sonar:sonar /usr/local/src/sonarqube

##chown -R [owner name]:[group name] [filename or directory]

 

 

6. 실행

 

데몬으로 부팅시에 실행되지만, 직접 쉘로 실행해보도록 하겠습니다

 f

현재 유저 변경 

#현재 유저 변경 (switch user)
su - sonar
패스워드입력

 

소나큐브실행

#소나큐브 실행
./bin/linux-x86-64/sonar.sh console start

##(옵션 목록 : console | start | stop | restart | status | dump)

 

 

이제 설치 및 환경설정이 완료되었고 

 

localhost 또는 자신의 아이피 뒤에 :9000/sonar 로 들어가보겠습니다. 

 

 

접속 성공!

'CI , CD > Sonarqube' 카테고리의 다른 글

sonarqube - 3 (Jenkins연동 )  (6) 2019.06.18
Sonarqube - 2 (도커로 설치하기)  (0) 2019.06.18

댓글