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.