SonarQubeは、コード検査を自動化するために使用できる無料のオープンソース品質管理システムプラットフォームです。ソースコードファイルを分析し、一連のメトリックを計算して、Webベースのダッシュボードに結果を表示できます。 Java言語で書かれており、Perl、PHP、Rubyなどの他の言語もサポートしています。デフォルトでは、SonarQubeはh2データベースをサポートしていますが、スケーラブルではありません。そのため、SonarQubeをMSSQL、PostgreSQL、Oracle、MySQLなどの他のデータベースサーバーと統合できます。 SOnarQubeには多くのプラグインが付属しており、リポジトリからソースコードを自動的に統合します。これにより、開発者は20以上の異なる言語で、バグや脆弱性を検出し、コードの臭いを減らすことができます。 SonarLintプラグインを使用して、SolarQubeをEclipse、Visual Studio、およびIntelliJIDEA開発環境と簡単に統合できます。
このチュートリアルでは、Ubuntu16.04サーバーにSonarQubeをインストールする方法を学習します。
- システムに新しいUbuntu16.04サーバーをインストールします。
- 最低4GBのRAM。
- sudo権限を持つroot以外のユーザー。
開始する前に、ベースシステムを最新バージョンに更新することをお勧めします。これを行うには、次のコマンドを実行します。
sudo apt-get update -y
sudo apt-get upgrade -y
システムを更新した後、Javaのインストールに進むことができます。
1Javaをインストール
SonarqubeはJavaベースのアプリケーションであるため、最初にJava8をインストールする必要があります。デフォルトでは、Java8はUbuntuリポジトリでは使用できません。 webupd8teamPPAリポジトリをシステムに追加することでJava8をインストールできます。
まず、次のコマンドを実行してPPAを追加します。
sudo add-apt-repository ppa:webupd8team/java
次に、次のコマンドでリポジトリを更新します。
sudo apt-get update -y
リポジトリが最新の状態になったら、次のコマンドを実行してJava8をインストールできます。
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)
終了したら、次のステップに進むことができます。
2Apacheと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がインストールされて機能するようになったら、次のステップに進むことができます。
3MariaDBを構成する
デフォルトでは、MariaDBのインストールは保護されていないため、MariaDBのインストールを保護する必要があります。これを行うには、mysql_secure_installationスクリプトを実行します。
sudo mysql_secure_installation
このプロセスでは、rootパスワードを設定し、匿名ユーザーを削除し、rootログインをリモートで禁止し、テストデータベースを削除するように求められます。以下に示すように、すべての質問に答えてください。
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
プロンプトが表示されたらrootパスワードを入力し、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
データベースを構成したら、次のステップに進むことができます。
4SonarQubeをインストール
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ファイルの内容を調べて、プロセスを監視することもできます。完了したら、次のステップに進むことができます。
5Apacheをリバースプロキシとして構成する
デフォルトでは、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 [email protected] 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
6SonarQubeWebインターフェイスにアクセス
必要なすべてのコンポーネントがインストールされ、構成されます。次に、SonarQubeWebインターフェイスにアクセスします。
アクセスする前に、UFWファイアウォールを通過するポート80を許可する必要があります。デフォルトでは、UFWはUbuntuで無効になっているため、最初に有効にする必要があります。次のコマンドを実行して有効にできます:
sudo ufw enable
UFWファイアウォールを有効にしたら、次のコマンドを実行して、UFWを介したポート80を許可できます。
sudo ufw allow 80/tcp
次のコマンドを実行して、UFWファイアウォールのステータスを確認できるようになりました。
sudo ufw status
次に、Webブラウザーを開き、URL http://192.168.15.189に移動します。 、次の画面が表示されます:
次に、[ログイン]ボタンをクリックすると、次の画面が表示されます。
デフォルトのユーザー名を「admin」、パスワードを「admin」にしてログインすると、次の画面が表示されます。
SonarQubeダッシュボードにログインしたら、[管理]>[システム]>[システム情報]ボタンをクリックします。次の画面に現在のシステム情報が表示されます。
次に、[管理]>[システム]>[センターの更新]ボタンをクリックすると、インストールされているすべてのプラグインが次の画面に表示されます。
ここでは、既存のプラグインを更新したり、利用可能なプラグインをインストールしたりできます。必要なプラグインをインストールまたは更新した後、[再起動]ボタンをクリックしてシステムを再起動し、変更を更新する必要があります。
上記のチュートリアルでは、Ubuntu16.04にSonarQubeをインストールする方法とSonarQubeの基本的な使用法を学びました。これで、本番環境に簡単にデプロイできます。ヘルプが必要な場合は、遠慮なくコメントしてください。