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)
- sonar.web.javaOpts : java 최소 / 최대 메모리 설정
5. SonarQube 구동
이제 설정을 완료 하였다면, 구동을 해보도록 하자.
# 서비스 구동
$ ./sonar.sh start
Starting SonarQube...
Started SonarQube.
# Web 관리자 기본 ID Password
admin / admin
이제 SonarQube 설치를 완료 하였다.
다음 내용들은 SonarQube를 사용하면서 발생하는 내용에 대해서 정리하도록 하겠다.
'+ Application > SonarQube' 카테고리의 다른 글
[SonarQube] SonarQube(소나큐브) 구동시 vm.max_map_count Error(에러) (0) | 2020.06.29 |
---|---|
[SonarQube] SonarQube(소나큐브) Admin 패스워드 변경 방법 (0) | 2020.06.23 |
댓글