Thursday, August 10, 2023

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.

Categories

Kubernetes (24) Docker (20) git (13) Jenkins (12) AWS (7) Jenkins CI (5) Vagrant (5) K8s (4) VirtualBox (4) CentOS7 (3) docker registry (3) docker-ee (3) ucp (3) Jenkins Automation (2) Jenkins Master Slave (2) Jenkins Project (2) containers (2) docker EE (2) docker private registry (2) dockers (2) dtr (2) kubeadm (2) kubectl (2) kubelet (2) openssl (2) Alert Manager CLI (1) AlertManager (1) Apache Maven (1) Best DevOps interview questions (1) CentOS (1) Container as a Service (1) DevOps Interview Questions (1) Docker 19 CE on Ubuntu 19.04 (1) Docker Tutorial (1) Docker UCP (1) Docker installation on Ubunutu (1) Docker interview questions (1) Docker on PowerShell (1) Docker on Windows (1) Docker version (1) Docker-ee installation on CentOS (1) DockerHub (1) Features of DTR (1) Fedora (1) Freestyle Project (1) Git Install on CentOS (1) Git Install on Oracle Linux (1) Git Install on RHEL (1) Git Source based installation (1) Git line ending setup (1) Git migration (1) Grafana on Windows (1) Install DTR (1) Install Docker on Windows Server (1) Install Maven on CentOS (1) Issues (1) Jenkins CI server on AWS instance (1) Jenkins First Job (1) Jenkins Installation on CentOS7 (1) Jenkins Master (1) Jenkins automatic build (1) Jenkins installation on Ubuntu 18.04 (1) Jenkins integration with GitHub server (1) Jenkins on AWS Ubuntu (1) Kubernetes Cluster provisioning (1) Kubernetes interview questions (1) Kuberntes Installation (1) Maven (1) Maven installation on Unix (1) Operations interview Questions (1) Oracle Linux (1) Personal access tokens on GitHub (1) Problem in Docker (1) Prometheus (1) Prometheus CLI (1) RHEL (1) SCM (1) SCM Poll (1) SRE interview questions (1) Troubleshooting (1) Uninstall Git (1) Uninstall Git on CentOS7 (1) Universal Control Plane (1) Vagrantfile (1) amtool (1) aws IAM Role (1) aws policy (1) caas (1) chef installation (1) create deployment (1) create organization on UCP (1) create team on UCP (1) docker CE (1) docker UCP console (1) docker command line (1) docker commands (1) docker community edition (1) docker container (1) docker editions (1) docker enterprise edition (1) docker enterprise edition deep dive (1) docker for windows (1) docker hub (1) docker installation (1) docker node (1) docker releases (1) docker secure registry (1) docker service (1) docker swarm init (1) docker swarm join (1) docker trusted registry (1) elasticBeanStalk (1) global configurations (1) helm installation issue (1) mvn (1) namespaces (1) promtool (1) service creation (1) slack (1)