Ubuntu 16.04에서 SonarQube를 설치하는 방법
이 튜토리얼은 다음 OS 버전에 대해 존재합니다.
- 우분투 18.04(Bionic Beaver)
- 우분투 16.04(Xenial Xerus)
이 페이지에서
- 전제 조건
- 시작하기\n
- 1 자바 설치
- 2 Apache 및 MariaDB 설치
- 3 MariaDB 구성
- 4 SonarQube 설치
- 5 Apache를 리버스 프록시로 구성\n
- 6 SonarQube 웹 인터페이스 액세스
- 결론
SonarQube는 코드 검사를 자동화하는 데 사용할 수 있는 무료 오픈 소스 품질 관리 시스템 플랫폼입니다. 소스 코드 파일을 분석하고 메트릭 집합을 계산하며 웹 기반 대시보드에 결과를 표시할 수 있습니다. Java 언어로 작성되었으며 Perl, PHP 및 Ruby와 같은 다른 언어도 지원합니다. 기본적으로 SonarQube는 h2 데이터베이스를 지원하지만 확장할 수는 없습니다. 따라서 MSSQL, PostgreSQL, Oracle 및 MySQL과 같은 다른 데이터베이스 서버와 SonarQube를 통합할 수 있습니다. SOnarQube는 리포지토리에서 소스 코드를 자동으로 통합하는 많은 플러그인과 함께 제공됩니다. 이를 통해 개발자는 20개 이상의 언어로 버그와 취약성을 감지하고 코드 냄새를 줄일 수 있습니다. SonarLint 플러그인을 통해 SolarQube를 Eclipse, Visual Studio 및 IntelliJ IDEA 개발 환경과 쉽게 통합할 수 있습니다.
이 튜토리얼에서는 Ubuntu 16.04 서버에 SonarQube를 설치하는 방법을 알아봅니다.
전제 조건
- 시스템에 Ubuntu 16.04 서버를 새로 설치합니다.\n
- 최소 4GB의 RAM.
- sudo 권한이 있는 루트가 아닌 사용자.\n
시작하기
시작하기 전에 기본 시스템을 최신 버전으로 업데이트하는 것이 좋습니다. 다음 명령을 실행하여 이를 수행할 수 있습니다.
sudo apt-get update -y
sudo apt-get upgrade -y
시스템을 업데이트한 후 Java 설치를 진행할 수 있습니다.
1 자바 설치
Sonarqube는 Java 기반 애플리케이션이므로 먼저 Java 8을 설치해야 합니다. 기본적으로 Java 8은 Ubuntu 리포지토리에서 사용할 수 없습니다. 시스템에 webupd8team PPA 리포지토리를 추가하여 Java 8을 설치할 수 있습니다.
먼저 다음 명령을 실행하여 PPA를 추가합니다.
sudo add-apt-repository ppa:webupd8team/java
다음으로 다음 명령을 사용하여 저장소를 업데이트합니다.
sudo apt-get update -y
리포지토리가 최신 상태이면 다음 명령을 실행하여 Java 8을 설치할 수 있습니다.
sudo apt-get install oracle-java8-installer -y
Java를 설치한 후 다음 명령을 사용하여 Java 버전을 확인할 수 있습니다.
java -version
다음 출력이 표시되어야 합니다.
Java version "1.8.0_91" Java(TM) SE Runtime Environment (build 1.8.0_91-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
완료되면 다음 단계로 진행할 수 있습니다.
2 Apache 및 MariaDB 설치
리버스 프록시에 Apache를 사용하고 데이터베이스로 MariaDB를 사용하므로 Apache와 MariaDB도 설치해야 합니다. 다음 명령을 실행하여 둘 다 설치할 수 있습니다.
sudo apt-get install apache2 mariadb-server -y
설치가 완료되면 Apache 및 MariaDB 서비스를 시작하고 다음 명령을 사용하여 부팅 시 시작할 수 있도록 활성화합니다.
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mysql
sudo systemctl enable mysql
Apache와 MariaDB가 설치되고 작동하면 다음 단계로 진행할 수 있습니다.
3 MariaDB 구성
기본적으로 MariaDB 설치는 보안되지 않으므로 MariaDB 설치를 보호해야 합니다. mysql_secure_installation 스크립트를 실행하여 이를 수행할 수 있습니다.
sudo mysql_secure_installation
이 과정에서 루트 암호를 설정하고, 익명 사용자를 제거하고, 원격으로 루트 로그인을 허용하지 않고, 테스트 데이터베이스를 제거하라는 메시지가 표시됩니다. 아래와 같이 모든 질문에 답하십시오.
Enter current password for root (enter for none): Change the root password? [Y/n] n Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
MariaDB가 보호되면 다음 명령을 사용하여 MariaDB 셸에 로그인합니다.
mysql -u root -p
메시지가 표시되면 루트 비밀번호를 입력하고 SonarQube용 데이터베이스를 생성합니다.
MariaDB [(none)]> CREATE DATABASE sonardb;
다음으로 새 데이터베이스 사용자를 생성하고 생성한 데이터베이스에 대해 데이터베이스 사용자에게 적절한 권한을 제공합니다.
MariaDB [(none)]> GRANT ALL PRIVILEGES ON sonardb.* TO 'sonar'@'localhost' IDENTIFIED BY 'yourpassword';
다음으로 다음 명령을 사용하여 변경 사항을 데이터베이스 권한에 적용합니다.
MariaDB [(none)]> FLUSH PRIVILEGES;
마지막으로 다음 명령을 사용하여 MariaDB 셸을 종료합니다.
MariaDB [(none)]> \q
데이터베이스가 구성되면 다음 단계로 진행할 수 있습니다.
4 소나큐브 설치
SonarQube의 최신 버전은 공식 웹사이트에서 다운로드할 수 있습니다. wget 명령으로 다운로드할 수 있습니다.
wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.4.zip
다운로드가 완료되면 다음 명령을 사용하여 다운로드한 아카이브의 압축을 풉니다.
sudo unzip sonarqube-6.4.zip -d /opt
그런 다음 다음 명령을 사용하여 디렉터리 이름을 바꿉니다.
sudo mv /opt/sonarqube-6.4 /opt/sonar
다음으로 SonarQube 기본 구성 파일인 sonar.properties를 수정해야 합니다.
sudo nano /opt/sonar/conf/sonar.properties
다음과 같이 변경합니다.
##Database User credentials: sonar.jdbc.username=sonar sonar.jdbc.password=yourpassword sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
파일을 저장하고 닫은 다음 SonarQube용 systemd 서비스 파일을 생성합니다.
sudo nano /etc/systemd/system/sonar.service
다음 줄을 추가합니다.
[Unit] Description=SonarQube service After=syslog.target network.target [Service] Type=forking ExecStart=/opt/sonar/bin/linux-x86-64/sonar.sh start ExecStop=/opt/sonar/bin/linux-x86-64/sonar.sh stop User=root Group=root Restart=always [Install] WantedBy=multi-user.target
완료되면 파일을 저장하고 SonarQube 서비스를 시작하고 다음 명령을 사용하여 부팅 시 시작되도록 활성화합니다.
sudo systemctl start sonar
sudo systemctl enable sonar
SonarQube 프로세스는 데이터베이스 생성 및 데이터 채우기를 완료하는 데 다소 시간이 걸립니다. 다음 명령어로 SonarQube의 상태를 확인할 수 있습니다.
sudo systemctl status sonar
/opt/sonar/logs/sonar.log 파일의 내용을 조사하여 프로세스를 모니터링할 수도 있습니다. 완료되면 다음 단계로 진행할 수 있습니다.
5 Apache를 리버스 프록시로 구성
기본적으로 SonarQube는 포트 9000에서 수신 대기합니다. 여기서는 포트 80을 사용하여 SonarQube에 액세스할 수 있도록 apache를 리버스 프록시로 사용합니다.
먼저 다음 명령을 사용하여 Apache 프록시 모듈을 활성화합니다.
sudo a2enmod proxy
sudo a2enmod proxy_http
다음으로 다음 명령을 사용하여 SonarQube용 새 가상 호스트 파일을 생성합니다.
sudo nano /etc/apache2/sites-available/sonar.conf
다음 줄을 추가합니다.
<VirtualHost *:80> ServerName 192.168.15.189 ServerAdmin ProxyPreserveHost On ProxyPass / http://localhost:9000/ ProxyPassReverse / http://localhost:9000/ TransferLog /var/log/apache2/sonar_access.log ErrorLog /var/log/apache2/sonar_error.log </VirtualHost>
파일을 저장하고 닫은 후 다음 명령을 실행하여 새 가상 호스트를 활성화합니다.
sudo a2ensite sonar
마지막으로 다음 명령을 사용하여 Apache 서비스를 다시 시작합니다.
sudo systemctl restart apache2
6 SonarQube 웹 인터페이스에 액세스
필요한 모든 구성 요소가 설치 및 구성되었습니다. 이제 SonarQube 웹 인터페이스에 액세스할 시간입니다.
액세스하기 전에 UFW 방화벽을 통해 포트 80을 허용해야 합니다. 기본적으로 UFW는 Ubuntu에서 비활성화되어 있으므로 먼저 활성화해야 합니다. 다음 명령을 실행하여 활성화할 수 있습니다.
sudo ufw enable
UFW 방화벽이 활성화되면 다음 명령을 실행하여 UFW를 통해 포트 80을 허용할 수 있습니다.
sudo ufw allow 80/tcp
이제 다음 명령을 실행하여 UFW 방화벽의 상태를 확인할 수 있습니다.
sudo ufw status
이제 웹 브라우저를 열고 URL http://192.168.15.189로 이동하면 다음 화면이 표시됩니다.
이제 "로그인" 버튼을 클릭하면 다음 화면이 표시됩니다.
기본 사용자 이름 "admin"과 암호 "admin"으로 로그인하면 다음 화면이 표시됩니다.
SonarQube 대시보드에 로그인한 후 Administration > System > System Info 버튼을 클릭합니다. 다음 화면에 현재 시스템 정보가 표시되어야 합니다.
그런 다음 관리 > 시스템 > 업데이트 센터 버튼을 클릭하면 다음 화면에 설치된 모든 플러그인이 표시됩니다.
여기에서 기존 플러그인을 업데이트하고 사용 가능한 플러그인을 설치할 수도 있습니다. 필요한 플러그인을 설치하거나 업데이트한 후 변경 사항을 업데이트하려면 "다시 시작" 버튼을 클릭하여 시스템을 다시 시작해야 합니다.
결론
위의 튜토리얼에서는 Ubuntu 16.04에 SonarQube를 설치하는 방법과 SonarQube의 기본 사용법을 배웠습니다. 이제 프로덕션 환경에서 쉽게 배포할 수 있습니다. 도움이 필요하시면 언제든지 저에게 댓글을 달아주세요.