SonarQube installation on Redhat Linux


As of my last update in August 2023, SonarQube 10 already released. However, I can provide you with general steps to install SonarQube on CentOS/Rocky 8. Please note that the steps might need adjustments based on the specific versions you are using.

Prerequisites:

System requirements:
RAM 4GB
CPU 1vCPU works, better performance 4 cores
Ensure you have the following prerequisites installed on your CentOS 8 server:
Create a Vagrant CentOS/8 box for SonarQube installation:

 
Vagrant.configure(2) do |config|
  config.vm.box = "centos/8"
  config.vm.boot_timeout=600
  config.vm.define "sonarqube" do |sonarqube|
    sonarqube.vm.network "private_network", ip: "192.168.33.150"
    sonarqube.vm.hostname = "sonarqube.devopshunter.com"
    sonarqube.vm.provider "virtualbox" do |vb|
        vb.cpus = "4"
        vb.memory = "4096"
    end
  end
end
Bring up the box using `vagrant up`. In the PuTTY / SSH terminal do the following repo changes steps.
 
sudo cd /etc/yum.repos.d/
sudo sed -i 's/^mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
  
Create sonar user
A dedicated user 'sonar' can be used for operations taken care by this user.

 
 sudo useradd sonar -c "SonarQube user" -d /opt/sonarqube -s /bin/bash;
 sudo passwd sonar
Enter New, confirm password. 

To tune increasse the vm_max_map_count kernal, file descriptor and limits add permanently use the following steps:
 
sudo vi /etc/sysctl.conf 
#Enter the following lines at end
vm.max_map_count=262144
fs.file-max-65536
 
sudo  vi /etc/security/limits.conf 
# Add the following lines a the end of the file:
sonar - nofile 65536
sonar - noproc 4096
After changes above `reboot` system.




Software requirements


Java JDK 17 (SonarQube Latest version typically requires Java 17)
PostgreSQL database

Install Java 17:

If you don't have Java 11 installed, you can do so with the following commands:

 
sudo yum install java-17-openjdk  -y
java -version
# If multiple version exists then you can map right Java with this:
sudo update-alternatives --config java 

Install PostgreSQL:

SonarQube requires a database to store its data. You can use PostgreSQL as the database backend. Install it using the following commands:


=
 
sudo dnf install postgresql-server postgresql-contrib
sudo postgresql-setup --initdb
sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo systemctl status postgresql # Check it is active

This may create 'postgres' user, you can set passwd for it by
 
su - postgres 
psql 
Create a PostgreSQL Database:
Create a PostgreSQL database and user for SonarQube. Replace sonarqube_db, sonarqube_user, and your_password with your desired values.


 
sudo -u postgres psql
CREATE DATABASE sonarqube_db;
CREATE USER sonarqube_user WITH ENCRYPTED PASSWORD 'your_password';
ALTER USER sonarqube_user WITH SUPERUSER;
ALTER DATABASE sonarqube_db OWNER TO sonarqube_user;
\q
You can check the postgres running on which port :
netstat -tulpn |grep postgres 

Download and Install SonarQube

:
Download the SonarQube distribution and install it on your system:
sudo yum install wget unzip -y
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-<version>.zip

 unzip sonarqube-<version>.zip
For example: 
sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-10.1.0.73491.zip
sudo unzip sonarqube-10.1.0.73491.zip -d /opt/
sudo mv /opt/sonarqube-10.1.0.73491 /opt/sonarqube

Configure SonarQube:

Edit the SonarQube configuration file to set up the database connection and listen on the appropriate IP address:
sudo vi /opt/sonarqube/conf/sonar.properties
Update the following properties with your PostgreSQL database information:
 
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube_db
sonar.jdbc.username=sonarqube_user
sonar.jdbc.password=your_password
Start SonarQube:
Start the SonarQube service:
/opt/sonarqube/bin/linux-x86-64/sonar.sh start
/opt/sonarqube/bin/linux-x86-64/sonar.sh status
To check the sonarqube logs navigate to the /opt/sonarqube/logs/ and the file sonar.log 
Troubleshoot point:
Modify sonar.sh script to handle user related issues 
sudo vi /opt/sonarqube/bin/linux-x86-64/sonar.sh you canf ind RUN_AS_USER= blank
set that line RUN_AS_USER=sonar

Access SonarQube:
Open a web browser and access SonarQube using the URL http://your_server_ip:9000. The default credentials are 'admin' for both the username and password.
Finally we have reached the end of this topic, successfully installed and configured SonarQube on CentOS/8.

Remember to check the official SonarQube documentation for any specific instructions related to SonarQube 10 or any updates beyond my knowledge cutoff date.

Comments