본문 바로가기
+ Application/SonarQube

[SonarQube] SonarQube(소나큐브) 설치 하기

by :: Teacher :: 2020. 6. 23.
728x90
반응형

SonarQube(소나큐브)는 개발한 프로그램 코드상에서 보안 취약점, 버그, 중복 코드, 주석 등을 발견할 목적으로 사용하는 정적 코드 분석 오픈 소스 플랫폼이다.

물론 더 많은 언어와 기능 등을 사용하려면 상용으로 구매하여 사용을 해야 하나, 이미 오픈 소스로도 충분히 많은 언어를 지원 및 기능을 지원하고 있다. 

무료로 사용 가능한 Community Edition에서는 총 15개의 언어를 지원하고 있다. 
지원하고 있는 15개 언어도 사용성이 많은 언어이기 때문에 무료로 사용을 해도 무방하다. 

  • Java, JavaScript, C#, TypeScript, Kotlin, Ruby, Go, Scala, Flex, Python, PHP, HTML, CSS, XML and VB.NET

그럼 SonarQube를 CentOS 8 시스템에 설치해보도록 하자.

1. SonarQube Download

SonarQube 웹 페이지에서 무료로 사용 가능한 Community Edition을 다운로드하여 사용할 수 있다.  

2. CentOS 8 Install 

설치 방법은 매우 간단 하나, CentOS 8 시스템에 미리 OpenJDK(java), PostgreSQL이 설치 되어 있어야 한다.
두개의 설치 방법은 이미 작성 해놓았으며, 링크로 대체 하도록 하겠다.  

이후 Community 다운로드 완료 후  해당 zip 파일을 압축 해지 하고 Config 설정 하면 설치는 완료 된다. 

이와 같이 sonarqube-8.3.1.34397 디렉토리가 생성 됨을 확인 할 수 있다. 

3. SonarQube DB 생성

SonarQube를 사용하기 위해서는 PostgreSQL을 설치하여 사용 해야 한다. 

그럼 SonarQube의 계정 설정 및 데이터베이스 설정을 해보자. 

먼저 psql을 이용하여 PostgreSQL로 접속 하고 sonarqube 계정과 데이테베이스를 생성 및 권한을 주도록 하자.

[root@localhost sonarqube-8.3.1.34397]# psql -U postgres -W
postgres 사용자의 암호:
psql (10.6)
도움말을 보려면 "help"를 입력하십시오.

postgres=# create user sonarqube with password 'sonarqube';
CREATE ROLE
postgres=# create database sonarqube owner sonarqube;
CREATE DATABASE
postgres=# ALTER ROLE sonarqube WITH createdb;
ALTER ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;
GRANT
postgres=#

4. SonarQube Config 설정

이제 구동을 하기 위해서 DB 정보 등록, Web 구동 설정등을 하도록 하자.

SonarQube 홈 디렉토리를 보면 config 설정이 있는 conf 디렉토리와 서비스 구동을 위한 bin 디렉토리가 존재 한다.


이중 먼저 conf 디렉토리에서 wrapper.conf 파일을 열어 java 위치를 설정 하기 위해서 우선 java version 과 java 디렉토리 위치를 확인 하도록 하자.

 

 

 

 

# Java Version 확인
$ java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.7+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.7+10, mixed mode)


# Java 디렉토리 확인
$ which java
/usr/lib/java/jdk-11.0.7+10/bin/java

이제 확인한 java 위치를 wrapper.conf 파일 내 "wrapper.java.command" 항목에 추가 하도록 하자.

두번째로 DB 및 Web 구동 관련 설정을 위해서 sonar.properties 파일을 열어 설정을 하도록 하자.

  • DB(PostgreSQL) 설정
    • sonar.jdbc.username : DB 계정
    • sonar.jdbc.password : DB 패스워드
    • sonar.jdbc.url : DB 경로
      • sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube

  • Web 설정
    • sonar.web.javaOpts : java 최소 / 최대 메모리 설정
      • sonar.web.javaOpts=-Xmx4096m -Xms2048m -XX:+HeapDumpOnOutOfMemoryError
    • sonar.web.host : 웹 페이지 IP 오픈 설정
      • 0.0.0.0 설정시 전체 오픈(Default) 
    • sonar.web.port : 웹 페이지 Port 설정
      • 9000(Default)

5. SonarQube 구동

이제 설정을 완료 하였다면, 구동을 해보도록 하자.

# 서비스 구동
$ ./sonar.sh start
Starting SonarQube...
Started SonarQube.


# Web 관리자 기본 ID Password
admin / admin 

이제 SonarQube 설치를 완료 하였다.

다음 내용들은 SonarQube를 사용하면서 발생하는 내용에 대해서 정리하도록 하겠다. 

728x90
반응형

댓글


loading