Як встановити SonarQube на CentOS 7

SonarQube — інструмент з відкритим кодом для розробки системи якості. Він написаний на Java і підтримує кілька баз даних. Він надає можливість безперервно перевіряти код, показувати справність програми та висвітлювати нещодавно виниклі проблеми. Він містить аналізатори коду, які обладнані для виявлення складних проблем. Він також легко інтегрується з DevOps.

У цьому посібнику ми встановимо останню версію SonarQube на CentOS 7.

Примітка. Цей документ було оновлено з моменту його початкової публікації. Дивіться розділ «Помилки» у примітках.

Передумови

  • 64-розрядний екземпляр сервера Vultr CentOS 7 із принаймні 2 ГБ оперативної пам’яті.
  • Користувач sudo .

Крок 1. Виконайте оновлення системи

Перед встановленням будь-яких пакетів на екземпляр сервера CentOS рекомендується оновити систему. Увійдіть за допомогою користувача sudo і виконайте наступні команди, щоб оновити систему.

sudo yum -y install epel-release
sudo yum -y update
sudo shutdown -r now

Після завершення перезавантаження системи увійдіть знову як користувач sudo і перейдіть до наступного кроку.

Крок 2: Встановіть Java

Завантажте пакет Oracle SE JDK RPM, ввівши:

wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm"

Встановіть завантажений пакет, ввівши:

sudo yum -y localinstall jdk-8u131-linux-x64.rpm

Тепер ви можете перевірити версію Java, ввівши:

java -version

Крок 3: Встановіть та налаштуйте PostgreSQL

Встановіть репозиторій PostgreSQL, ввівши:

sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

Встановіть сервер баз даних PostgreSQL, виконавши:

sudo yum -y install postgresql96-server postgresql96-contrib

Ініціалізуйте базу даних:

sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb

Відредагуйте, /var/lib/pgsql/9.6/data/pg_hba.confщоб увімкнути автентифікацію на основі MD5.

sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf

Знайдіть наступні рядки та змініть peerна trustта idnetна md5.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

Після оновлення конфігурація повинна виглядати так, як показано нижче.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Запустіть сервер PostgreSQL і ввімкніть його автоматичний запуск під час завантаження, виконавши:

sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6

Змініть пароль для користувача PostgreSQL за замовчуванням.

sudo passwd postgres

Перейти до postgresкористувача.

su - postgres

Створіть нового користувача, ввівши:

createuser sonar

Перейдіть до оболонки PostgreSQL.

psql

Встановіть пароль для щойно створеного користувача бази даних SonarQube.

ALTER USER sonar WITH ENCRYPTED password 'StrongPassword';

Створіть нову базу даних для бази даних PostgreSQL, виконавши:

CREATE DATABASE sonar OWNER sonar;

Вихід з psqlоболонки:

\q

Поверніться до користувача sudo, виконавши exitкоманду.

Крок 4: Завантажте та налаштуйте SonarQube

Завантажте архів файлів інсталятора SonarQube.

wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.4.zip

Ви завжди можете знайти посилання на останню версію програми на сторінці завантаження SonarQube .

Встановіть розпакувати, запустивши:

sudo yum -y install unzip

Розпакуйте архів за допомогою наступної команди.

sudo unzip sonarqube-6.4.zip -d /opt

Перейменуйте каталог:

sudo mv /opt/sonarqube-6.4 /opt/sonarqube

Open the SonarQube configuration file using your favorite text editor.

sudo nano /opt/sonarqube/conf/sonar.properties

Find the following lines.

#sonar.jdbc.username=
#sonar.jdbc.password=

Uncomment and provide the PostgreSQL username and password of the database that we have created earlier. It should look like:

sonar.jdbc.username=sonar
sonar.jdbc.password=StrongPassword

Next, find:

#sonar.jdbc.url=jdbc:postgresql://localhost/sonar

Uncomment the line, save the file and exit from the editor.

Step 5: Configure Systemd service

SonarQube can be started directly using the startup script provided in the installer package. As a matter of convenience, you should setup a Systemd unit file for SonarQube.

sudo nano /etc/systemd/system/sonar.service

Populate the file with:

[Unit]
Description=SonarQube service
After=syslog.target network.target

[Service]
Type=forking

ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop

User=root
Group=root
Restart=always

[Install]
WantedBy=multi-user.target

Start the application by running:

sudo systemctl start sonar

Enable the SonarQube service to automatically start at boot time.

sudo systemctl enable sonar

To check if the service is running, run:

sudo systemctl status sonar

Step 5: Configure reverse proxy

By default, SonarQube listens to localhost on port 9000. In this tutorial, we will use Apache as the reverse proxy so that the application can be accessed via the standard HTTP port. Install the Apache web server by running:

sudo yum -y install httpd

Create a new virtual host.

sudo nano /etc/httpd/conf.d/sonar.yourdomain.com.conf

Populate the file with:

<VirtualHost *:80>  
    ServerName sonar.yourdomain.com
    ServerAdmin me@yourdomain.com
    ProxyPreserveHost On
    ProxyPass / http://localhost:9000/
    ProxyPassReverse / http://localhost:9000/
    TransferLog /var/log/httpd/sonar.yourdomain.com_access.log
    ErrorLog /var/log/httpd/sonar.yourdomain.com_error.log
</VirtualHost>

Start Apache and enable it to start automatically at boot time:

sudo systemctl start httpd
sudo systemctl enable httpd

Step 6: Configure firewall

Allow the required HTTP port through the system firewall.

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload

Start the SonarQube service:

sudo systemctl start sonar

You will also need to disable SELinux:

sudo setenforce 0

SonarQube is installed on your server, access the dashboard at the following address.

http://sonar.yourdomain.com

Log in using the initial administrator account, admin and admin. You can now use SonarQube to continuously analyze the code you have written.


Errata

If installing SonarQube 7.1 (or newer), make the changes below because newer versions of Elasticsearch cannot be run as root user.

  • Update permissions: chown -R sonar:sonar /opt/sonarqube
  • Modify /opt/sonarqube/bin/linux-x86-64/sonar.sh, change #RUNAS to be "sonar".
  • Modify /etc/systemd/system/sonar.service, change the user group to be "sonar".

Залишити коментар

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

DDOS-атаки: короткий огляд

DDOS-атаки: короткий огляд

Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.

Революційні винаходи від Google, які полегшать ваше життя.

Революційні винаходи від Google, які полегшать ваше життя.

Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.

Функціональні можливості шарів еталонної архітектури великих даних

Функціональні можливості шарів еталонної архітектури великих даних

Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.

Еволюція зберігання даних – інфографіка

Еволюція зберігання даних – інфографіка

Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше