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.