AWS EC2에서 SonarQube 설치 및 구성

2020. 2. 17. 16:56IT/DevOps

728x90

본문에서는 SonarQube를 사용하기 위해 Amazon linux2에서 설치 및 구성한다.

SonarQube는 소스 코드 품질 관리, 코드 분석을 위한 오픈소스 플랫폼이다. 코드 분석에 가장 널리 사용된다.

 

1. 사전준비

 

SonarQube7.x는 다음과 같은 요구사항을 가진다. SonarQube 버전에 따라 요구사항에 맞게 설정해야 한다.

  • 최소 2GB / 1 vcpu 용량의 서버
  • PostgreSQL 버전 9.3 이상
  • OpenJDK 11 또는 JRE 11
  • 모든 SonarQube프로세스는 sonar 사용자로 실행

 

1.1 Java 설치

업데이트와 필요한 패키지를 설치한다.

sudo yum update -y

sudo yum install wget unzip -y

 

Java 11를 설치한다. Amazon linux에서는 다음과 같이 설치한다.

설치 후 11로 설정되었는지 버전 확인이 필요하다.

sudo amazon-linux-extras install java-openjdk11

sudo yum install java-11-openjdk-devel -y

 

root로 로그인하여 실행한다. (이는 추후 메모리 문제 방지하기 위함이다.)

sysctl vm.max_map_count

sysctl fs.file-max

ulimit -n

ulimit -u

 

1.2 SonarQube용 Database 설정

 PostgreSQL 10을 설치하고, 초기화한다.

amazon-linux-extras install postgresql10 vim epel -y

yum install -y postgresql-server postgresql-devel

/usr/bin/postgresql-setup --initdb

systemctl enable postgresql

systemctl start postgresql

 

SonarQube의 Database와 사용자를 생성한다.

$ su - postgres

$ psql

create user sonar with password 'sonar';

create database sonar owner sonar;

\q

exit

 

PostgreSQL 설정 파일을 수정한다. (추후 인증을 위함이다.)

sudo vi /var/lib/pgsql/10/data/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS                 METHOD
 
# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

 

PostgreSQL를 시작한다.

sudo systemctl start postgresql

sudo systemctl enable postgresql

 

1.3 SonarQube 설치

/opt  폴더 아래 SonarQube를 설치한다.

cd /opt 

sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.6.zip

 

zip 파일을 풀고, 새롭게 폴더를 생성한다.

sudo unzip sonarqube-7.6.zip

sudo mv sonarqube-7.6 sonarqube

 

sonar.properties에 Database 연결 정보를 입력한다. 

Web port 또한 이곳에서 설정할 수 있다. 기본 port는 9000이다.

sudo vi /opt/sonarqube/conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:postgresql://localhost/sonar

 

SonarQube를 실행할 수 있는 사용자를 생성하고, 권한을 부여한다.

sudo useradd sonar

sudo chown -R sonar:sonar /opt/sonarqube

 

1.4 SonarQube 시작

sonar로 로그인한 후, SonarQube를 실행할 수 있는 스크립트가 있는 폴더로 이동한다.

sonar.sh 스크립트를 실행하고, 상태를 확인한다. 

sudo su - sonar

cd /opt/sonarqube/bin/linux-x86-64 
./sonar.sh start
./sonar.sh status
./sonar.sh console

 

정상적으로 실행된다면, http://ipaddress:9000/ 해당 주소에서 확인할 수 있다.

다음은 정상적으로 실행되는 SonarQube 모습이다.

 

SonarQube 대시보드

 

1.5 오류 해결

설치 후, 오류가 발생하였다면 아래에서 log를 확인한다. 최근 로그는 tail -f access.log 에서 확인할 수 있다.

cd /opt/sonarqube/logs
es.log
sonar.log
web.log
access.log
300x250

'IT > DevOps' 카테고리의 다른 글

AWS 기반의 CI/CD 환경 구성 (GitLab, Jenkins, Codedeploy, S3)  (0) 2020.06.03