본문 바로가기
OS/Linux

[CentOS] SonarQube 설치

by dev.altkey 2017. 1. 10.



* 소나큐브?

소나큐브는 정적 코드 분석 툴로써 사용되는 오픈소스 프로젝트입니다. 주로 메소드명이 길진 않은지 파라미터값이 많지는 않은지 복잡도는 얼마나되는지 등등을 검사해주는 툴입니다. 웹으로 구동되며 자세한 내용은 (링크) 로 가셔서 확인하시면 되겠습니다.


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


개인적으로는 가장 권장되는 툴이 아닌가 싶습니다.


* 설치전 필수 설치 사항

PostgreSQL 9.x 버전 (설치법)


* 설치

설치에는 zip 파일로 다운로드를 제공하기때문에 다운로드후 압축을 풀고 실행하도록 하겠습니다. 일단 tmp 폴더로가서 다운로드를 해줍니다.


cd /tmp


공식홈페이지는 (sonarqube.org) 입니다. 다운로드도 이전과 마찬가지로 크롬에서 URL 링크 가져오기를 통해 다운로드 하도록하겠습니다. 


최종 LTS 버전이 포스팅 기준으로 5.6.4 입니다.


wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.6.4.zip


그리고 unzip 을 사용하기위해 yum 에서 zip 을 설치합니다.


yum install zip unzip


그리고 설치가 끝났으면 unzip을 통해 압축을 풀어줍니다.


unzip sonarqube-5.6.4.zip


그리고 소나큐브 위치를 옮겨보도록 하겠습니다 옮길때 폴더 이름도 변경해보도록 하겠습니다.


mv sonarqube-5.6.4 /usr/local/src/sonarqube


그리고 환경설정을 위해 폴더를 이동하도록 하겠습니다.


cd /usr/local/src/sonarqube/


vim 에디터로 환경설정을 수정하도록 하겠습니다.


vi conf/sonar.properties



수정할때 # 해당하는 줄의(빨간색 친 부분) 제거를 해주고 sonar.jdbc.username 과 password 는 임의로 지정합니다. 이 포스팅에서는 둘다 똑같이 sonar 라고 했습니다.

username 은 sonar를 권장합니다.


그리고 PostgreSQL 부분을 # 해제합니다.


그리고 아래쪽으로 내리면 Web Server 항목이 있습니다. 아래 그림과같이 설정해주시면 됩니다.


그리고 저장후 나옵니다 :wq


데이터 베이스 설정을 해보도록 하겠습니다. PostgreSQL 로 들어가보도록 하겠습니다.


su - postgres


psql 를 실행시킵니다.


-bash-4.2$ psql


다음의 SQL 구문을 하나하나씩 입력합니다.


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;


psql 을 종료합니다


\q


postgres bash 상태를 종료합니다.


exit


PostgreSQL 재시작 하도록 하겠습니다.


systemctl restart postgresql-9.6



다 되셨으면 부팅시 서비스 등록을 해보도록 하겠습니다.


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


데몬 재로드를 한뒤 부팅시 등록 및 지금 실행시켜보도록 하겠습니다.


systemctl daemon-reload
systemctl enable sonar
systemctl start sonar

마지막 작업으로 방화벽 포트를 열어주고 실행을 한번 해보도록 하겠습니다. 방화벽 등록부터 하겠습니다.


firewall-cmd --zone=public --add-port=9000/tcp --permanent


방화벽 재로드를 해줍니다.


firewall-cmd --reload


이제한번 접속해 보도록 하겠습니다.


localhost 또는 자신의 아이피 뒤에 :9000/sonar 로 들어가보겠습니다. ip 확인 명령어 : ifconfig 예) http://localhost:9000/sonar 


참고로 첫 시작시에는 페이지 로드가 생각보다 오래걸립니다.



위와같은 홈페이지가 뜬다면 성공입니다.


첫 로그인은 admin / admin 입니다.




접속하시고 암호를 변경해주시면 끝납니다.


* 레퍼런스

SonarQube Installation on CentOS 7.2 (frederic-wou.net/sonarqube-installation-on-centos-7-2/)



* 번외

번외에서는 소나큐브 안에 있는 apache tomcat 버전 업그래이드 설명입니다.


'OS > Linux' 카테고리의 다른 글

[CentOS] MongoDB 설치  (0) 2017.06.27
[CentOS] Redmine 설치 + nginx + Passenger  (0) 2017.01.11
[CentOS] nginx 설치  (0) 2017.01.10
[CentOS] PostgreSQL 설치  (0) 2017.01.10
[CentOS] Jenkins 설치  (0) 2017.01.09

댓글