Friday, September 19, 2014

SonarQube 설치 (CentOS 6.5 64-bit)

  1. SonarQube 설치 전에 필요한 것
    1. CentOS 6.5 (64-bit)가 설치된 시스템 (또는 VM)
    2. Java 설치 (최소 1.6 버전 이상)
  2. SonarQube 설치
    1. http://www.sonarqube.org/downloads 에서 최신 버전 다운로드 (이 포스트에서는 4.3.2 버전이 사용되었습니다.)
    2. 압축을 푼 후 '/opt' 폴더로 이동
  3. PostgreSQL 설치 
    1. SonarQube를 사용하기 위해서는 기본적으로 DB가 설치 되어 있어야 하며 이 포스트에서는 PostgreSQL을 사용하도록 하겠습니다. 
    2. Dependency 관련 문제 발생을 막기 위해 '/etc/yum.repos.d/CentOS-Base.repo' 파일에 있는 '[base]' 부분과 '[update]' 부분에 아래의 라인을 추가.
      1. exclude=postgresql*
    3. CentOS 6 64-bit 버전용 PostgreSQL 9.3의 PGDG RPM 파일 인스톨
      1. yum localinstall http://yum.postgresql.org/9.3/redhat/
        rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm
      2. 추가설명: 이 버전은 2014년 9월 현재 가장 최신 버전이며 만약 더 나중 버전이
        나왔다면 그 버전의 RPM 파일을 인스톨 하시기 바랍니다. 
    4. PostgreSQL 인스톨
      1. 아래의 명령어를 이용해서 인스톨 가능한 poastgreSQL 패키지들을 출력한 후
        1. yum list postgres*
      2. 가장 최근의 stable한 버전의 PostgreSQL 패키지를 찾아서 인스톨하면 됩니다.
        예를 들어 가장 기본적인 PostgreSQL 9.3 Server 패키지를 인스톨하려고 한다면
        아래의 명령어를 실행하세요. 
        1. yum install postgresql93-server
  4. PostgreSQL JDBC 드라이버 다운로드
    1. 웹사이트 (https://wiki.postgresql.org/wiki/YUM_Installation)에서 JDBC4
      Postgresql 드라이버를 다운로드하세요.
    2. 다운로드 받은 드라이버를 '/opt/sonarqube-4.3.2/extensions/jdbc-driver/postgresql' 폴더로 옮기고 기존에 있던 'postgresql-[version].jebc4.jar' 파일은 삭제를 하세요. (참고로 sonarqubu-4.3.2는 postgresql-9.1-901-1.jdbc4.jar를 기본으로 포함하고 있습니다.)
  5. 'root' 아이디로 'sonar' 아이디 생성
    1. adduser sonar
      passwd sonar
      New password: sonar
      Retype new password: sonar
  6. 'sonarqube' 폴더의 owner를 새로 생성한 'sonar'로 변환
    1. chown -R sonar /opt/sonarqube-4.3.2
  7. PostgreSQL 셋팅 설정
    1. PostgreSQL 설정 파일을 다른 네트워크나 웹서버에서 유저 아이디와 패스워드를 이용해서 접속할 수 있도록 변경
      1. vim /var/lib/pgsql/9.3/data/pg_hba.conf
      2. pg_hba.conf 파일의 'local'과 'host'의 method 부분을 아래와 같이 'trust'로 변경
      3. local all all              trust
        host  all all 127.0.0.1/32 trust
    2. PostgreSQL 서비스를 시작하고 유저를 'postgres'로 변경
      1. service postgresql-9.3 start
        su - postgres
    3. PostgreSQL에 접속(실행)한 후 PostgreSQL 안에서 새 유저 sonar를 생성한 후 실행 종료
      1. psql
        postgres=# CREATEUSER -d sonar;
        postgres=# CREATE DATABASE sonar OWNER sonar;
        postgres=# ALTER USER sonar SET search_path to sonar;
        postgres=# \q
    4. 리눅스 시스템에서 유저를 'sonar'로 변경한 후 PostgreSQL을 다시 실행하고 'sonar' 스키마를 생성
      1. su - sonar
        psql
        sonar=# CREATE SCHEMA sonar;
        sonar=# \q
  8. SonarQube 셋팅 설정
    1. '/opt/sonarqube-4.3.2/conf/sonar.properties' 에 있는 파일에 있는 데이터베이스 관련 설정을 아래와 같이 변경
      1. sonar.jdbc.username=sonar
        sonar.jdbc.password=sonar
        sonar.jdbc.url=jdbc:postgresql://localhost/sonar
  9.  SonarQube 서비스 시작
    1. /opt/sonarqube-4.3.2/bin/sonar.sh start
  10. SonarQube의 웹 UI 화면 Access
    1. 웹브라우저에서 http://localhost:9000 을 입력하면 아래와 같은 화면이 나옵니다. 

  11. Troubleshooting
    1. Firewall 문제
      1. 만약 웹 UI에 접속이 안된다면 리눅스 시스템의 Firewall을 아래의 리눅스 커맨드를 이용해서 disable한 후에 다시 시도하세요
        1. service iptables stop
  12. Sources
    1. http://docs.codehaus.org/display/SONAR/Requirements
    2. https://wiki.postgresql.org/wiki/YUM_Installation
    3. http://www.cyberciti.biz/faq/psql-fatal-ident-authentication-failed-for-user/ 
    4. http://docs.codehaus.org/display/SONAR/Installing 

 

No comments:

Post a Comment