Showing posts with label Jenkins. Show all posts
Showing posts with label Jenkins. Show all posts

Thursday, October 9, 2014

Jenkins에 SonarQube 연동

이번 블로그에서는 지난 번에 설치한 Jenkins에 SonarQube 설정을 해서 두 시스템을 연동해서 사용하는 방법에 대해서 설명하도록 하겠습니다.

연동하기 전에 필요한 것
  • Jenkins 서버
  • SonarQube
Jenkins에 SonarQube를 설정하기 위한 과정
  • Jenkins의 메인 웹 UI 접속
    • 웹브라우저를 통해 Jenkins의 메인 웹 UI 페이지로 갑니다. (예: http://[ipaddress]:8080)
  • Sonar 플로그인을 Jenkins에 설치
    • 메인 UI 페이지의 왼쪽에 있는 'Manage Jenkins' 링크를 클릭해서 'Manage' 페이지로 이동한 후 아래 그림과 같이 오른쪽에 있는 'Manage Plugins'을 클릭해서 플러그인들을 관리할 수 있는 페이지로 이동합니다. 
    • 'Manage Plugins' 페이지에서 우선 'Installed' 탭에 나열되어 있는 이미 설치된 플러그인들 리스트에서 'Sonar Plugin'이란 항목이 있는지 확인하시고 (만약 Jenkins가 최근 버전이 아닐 경우에는 'Jenkins Sonar Plugin'이란 이름으로 되어 있을 수도 있습니다.) 만약 없다면 'Available' 탭으로 이동해서 'Sonar Plugin'을 찾으신 후 설치하시면 됩니다.
  • JDK 설정 (이 부분은 Jenkins에 JDK설정이 안 되어 있을 경우에만 해당됩니다.)
    • 'Sonar Plugin' 설치가 끝나면 다시 위의 스크린샷에 있는 'Manage Jenkins' 페이지로 이동한 후 가장 위에 있는 항목인 'Configure System'을 클릭하여 Jenkins의 설정 페이지로 이동합니다. 
    • 설정 페이지에서 'JDK' 항목을 찾은 후에 'Add JDK' 버튼을 클릭해서 JDK 정보를 추가합니다. 
    • 버튼 클릭 후에 생기는 'Name'과 'JAVA_HOME' 부분을 현재 Jenkins가 설치된 리눅스 시스템의 환경 정보를 참조해서 기입하신 후에 'Install automatically' 항목을 클릭하시어 자동으로 설치되지 않도록 합니다. 
    • 위의 사항을 마치셨으면 'Apply' 버튼을 클릭해서 변경사항을 적용합니다. 아래는 위의 사항에 대한 스크린샷이며 기입된 정보는 저의 Jenkins가 설치된 리눅스 시스템의 환경정보이므로 하나의 예로 참고만 하세요. 

  • Sonar 설정
    • Sonar 설정을 위해 다시 위와 같이 'Manage Jenkins -> Configure System'을 통해 설정 페이지로 이동합니다. 
    • 이번에는 'Sonar' 부분을 찾아서 'Add Sonar' 버튼을 클릭합니다. 
    • 자신의 SonarQube 설정 정보를 이용해서 해당 사항을 입력한 후 'Apply' 버튼을 클릭하여 Sonar와의 연동에 필요한 정보를 업데이트합니다. 아래의 스크린샷을 참고하세요. (Server URL 부분과 Database URL 부분에 삭제된 부분은 현재 로컬에 설치된 SonarQube IP 주소를 대신 기입하시면 됩니다. 예: http://10.10.10.10:9000)

  •   Maven 설정 (이 부분 역시 추가적인 사항이며 만약 필요시에만 설정하시면 됩니다.)
    • 위의 설정 화면에서 Maven 부분을 찾은 후 'Add Maven' 버튼을 클릭합니다. 
    • Maven Name 부분을 본인이 원하는 이름으로 기입한후 'Apply' 버튼을 클릭합니다. 'Install Automatically' 부분은 클릭이 된 채로 두셔도 됩니다. 
 Hope this help!

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