SonarQube is an Open-Source, Java based Code Analysis Tool. It is used to detect bugs, security vulnerabilities, and other code quality issues. It uses database like MS SQL, Oracle or PostgreSQ for storing analysis results. So, in this tutorial we will use open-source database PostgreSQL.
Pre-requistes
Instance with at least 2 GB RAM
Install Java
To configure the SonarQube server, you need to install Java. To install Java, follow the command below:
1 sudo apt-get update && sudo apt-get install default-jdk -y
After installing Java, you can verify that it is installed by running the following command:
Install PostgreSQL
To install PostgreSQL, follow the instructions below:
1 2 3 4 5 6 7 8 9 10 11 sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get updatesudo apt-get -y install postgresql postgresql-contribsudo systemctl start postgresqlsudo systemctl enable postgresql
Login as postgres user
To login as postgres user, run the following command:
Create sonar user
To create a soanr user, run the following command:
Create sonar database
Switch to sql shell by entering the following command:
Then you need to Execute the below three lines (one by one) to create a sonar database and grant access to sonar user:
1 2 3 4 5 ALTER USER sonar WITH ENCRYPTED password '<your password>' ; CREATE DATABASE sonarqube OWNER sonar; GRANT ALL PRIVILEGES ON DATABASE sonarqube to sonar;
Then exit from the sql shell by entering the following command:
Then exit from the postgres user by entering the following command:
Download and Install SonarQube
To download SonaQube, follow the instructions below:
1 sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-<version>.zip
You can find any available version of SonarQube by following this link
Then you need to unzip the downloaded file:
1 2 3 4 5 sudo apt-get -y install unzipsudo unzip sonarqube*.zip -d /optsudo mv /opt/sonarqube-<version> /opt/sonarqube -v
Create Group and User
Now me need to create a group and a user. To create a group, run the following command:
1 sudo groupadd sonarGroup
Now add the user with directory access. To do it run following commands:
1 sudo useradd -c "user to run SonarQube" -d /opt/sonarqube -g sonarGroup sonar
Then change the ownership of the directory:
1 sudo chown sonar:sonarGroup /opt/sonarqube -R
Configure SonarQube
Now we need to modify sonar.properties file and add the database user and it's password. To do it run following commands:
1 sudo vim /opt/sonarqube/conf/sonar.properties
Then uncomment the following lines and add values for them
1 2 sonar.jdbc.username=sonar sonar.jdbc.password=<password that you have created in create sonar database step>
Next, we need to add the below lines to the sonar.properties file:
1 sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube
Then press ESC and and enter :wq! to come out of the above screen
Edit the sonar script file
Run below command:
1 sudo vim /opt/sonarqube/bin/linux-x86-64/sonar.sh
Then add the below lines to the sonar.sh file:
Create Sonar as a service
Purpose of this step is allow sonarqube to start automatically when you restart the server. To do it run following commands:
1 sudo vim /etc/systemd/system/sonar.service
Tyhen add the following lines to the sonar.service file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [Unit] Description=SonarQube service After=syslog.target network.target [Service] Type=forking ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop LimitNOFILE=131072 LimitNPROC=8192 User=sonar Group=sonarGroup Restart=always [Install] WantedBy=multi-user.target
Then press ESC and and enter :wq! to come out of the above screen.
Kernel System changes
Now we need to change the kernel system settings. To do it run following commands:
1 sudo vim /etc/sysctl.conf
Then add the following lines to the sysctl.conf file:
1 2 vm.max_map_count=262144 fs.file-max=65536
Then press ESC and and enter :wq to come out of the above screen.
Next, we’re going to edit limits.con . Open that file with the command:
1 sudo vim /etc/security/limits.conf
Then add the following lines to the limits.conf file:
1 2 sonar - nofile 65536 sonar - nproc 4096
Then press ESC and and enter :wq! to come out of the above screen.
Reload SonarQube
Now we need to reload system level changes without server boot to do it run follwing command:
Start SonarQube
Now we need to start SonarQube. To do it run following command:
1 2 3 sudo systemctl start sonarsudo systemctl enable sonar
Check SonarQube Status
Now we need to check SonarQube status. To do it run following command:
1 sudo systemctl status sonar
To check the Sonar logs to make sure there is no error:
1 tail -f /opt/sonarqube/logs/sonar*.log
Access the web interface
To acces the web interface, you ned to navigate to
1 http://your_sonarqube_public_dns_name:9000/
Video Tutorial
You can find the YouTube tutorial from this link .
Conclusion
In this tutorial, we learned how to install SonarQube on Ubuntu. If you have any issue regarding this tutorial, mention your issue in comment section or reach me through my E-mail.
Happy Coding