SonarQube Installation on Ubuntu 20.04 with Community Branch Plugin
SonarQube Community Edition: 9.8-Ubuntu 20.04-Community Branch Plugin
Hi everyone,
I will show you how to install SonarQube on Ubuntu 20.04 with community branch plugin in this article. 🐧
On a single Ubuntu server, we’ll install PostgreSQL and SonarQube. We must first configure ElasticSearch.
sudo nano /etc/sysctl.conf
These configurations must be added to this file.
vm.max_map_count=262144
fs.file-max=65536
ulimit -n 65536
ulimit -u 4096
Reboot the server.
sudo reboot
Following that, we must install and configure PostgreSQL.
sudo apt update -y
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 -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
sudo apt install postgresql postgresql-contrib -y
sudo systemctl enable postgresql
sudo systemctl start postgresql
To create and grant databases, we will now use the “postgres” user. You can also enter the password for this user.
sudo passwd postgres
su - postgres
createuser sonar
psql
ALTER USER sonar WITH ENCRYPTED password '<PASSWORD>';
CREATE DATABASE sonarqube OWNER sonar;
GRANT ALL PRIVILEGES ON DATABASE sonarqube to sonar;
\q
exit
PostgreSQL is now installed. After that, SonarQube, JDK 11, and ZIP will be installed.
sudo apt-get install openjdk-11-jdk -y
sudo apt-get install zip -y
Here, you can choose the version you want to install.
sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.8.0.63668.zip
sudo unzip sonarqube-9.8.0.63668.zip
sudo mv sonarqube-9.8.0.63668 /opt/sonarqube
sudo groupadd sonar
sudo useradd -d /opt/sonarqube -g sonar sonar
sudo chown sonar:sonar /opt/sonarqube -R
You need to select the appropriate version of this plugin based on the SonarQube version in order to install the community branch plugin here.
cd /opt/sonarqube/extensions/plugins
sudo wget https://github.com/mc1arke/sonarqube-community-branch-plugin/releases/download/1.14.0/sonarqube-community-branch-plugin-1.14.0.jar
Sonarqube-community-branch-plugin-1.14.0.jar is required because I installed version 9.8 for SonarQube. This directory, “/opt/sonarqube/extensions/plugins,” is where we need to install them.
The SonarQube configuration file must then be configured.
sudo nano /opt/sonarqube/conf/sonar.properties
These configurations must be added to this file.
sonar.jdbc.username=sonar
sonar.jdbc.password=<PASSWORD>
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube
sonar.web.javaAdditionalOpts=-javaagent:/opt/sonarqube/extensions/plugins/sonarqube-community-branch-plugin-1.14.0.jar=web
sonar.ce.javaAdditionalOpts=-javaagent:/opt/sonarqube/extensions/plugins/sonarqube-community-branch-plugin-1.14.0.jar=ce
This file is now required for SonarQube to run as a service.
sudo nano /etc/systemd/system/sonar.service
Add the following to the file.
[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
User=sonar
Group=sonar
Restart=always
LimitNOFILE=65536
LimitNPROC=4096
[Install]
WantedBy=multi-user.target
The next step is to enable and start SonarQube as a service.
sudo systemctl enable sonar
sudo systemctl start sonar
sudo systemctl status sonar
Because of the branch plugin, we should click the “I understand the risk” button when we log in to SonarQube.
This is finished now, ta-daa!
Username: admin
Password: admin
Demo
- Manually create a project.
- Generate a token for Azure DevOps.
- Create a service connection for SonarQube.
- After analyzing different branches, you can see something like this:
NOTE: If you want to install an earlier SonarQube version, you need this configuration below. First, you need to edit the sonar script file, uncomment "RUN_AS_USER," and save.
sudo nano /opt/sonarqube/bin/linux-x86-64/sonar.sh
RUN_AS_USER=sonar
How to Remove
sudo systemctl stop sonar
sudo systemctl disable sonar
sudo systemctl stop postgresql
sudo systemctl disable postgresql
sudo rm /etc/systemd/system/sonar.service
sudo rm -rf /opt/sonarqube/
sudo apt remove postgresql postgresql-contrib -y
sudo apt autoremove
Hope you find my article helpful. I wish everyone an awesome day!
You can check this article: SonarQube Integration with Azure DevOps