SonarQube installation on Redhat Linux

11
As of my last update in August 2023, SonarQube 10 already re.1leased. 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 forSonarQube 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

Popular posts from this blog

Ansible Jinja2 Templates: A Complete Guide with Examples

Ansible 11 The uri module with examples

Jenkins Active choices parameter - Dynamic input