Προαπαιτούμενα
Βήμα 1: Εκτελέστε μια ενημέρωση συστήματος
Βήμα 2: Εγκατάσταση Java
Βήμα 3: Εγκαταστήστε και ρυθμίστε τις παραμέτρους της PostgreSQL
Βήμα 4: Λήψη και διαμόρφωση του SonarQube
Βήμα 5: Διαμόρφωση της υπηρεσίας Systemd
Βήμα 5: Διαμόρφωση αντίστροφου διακομιστή μεσολάβησης
Βήμα 6: Διαμόρφωση τείχους προστασίας
Ακατάστατο
Το SonarQube είναι ένα εργαλείο ανοιχτού κώδικα για την ανάπτυξη συστημάτων ποιότητας. Είναι γραμμένο σε Java και υποστηρίζει πολλαπλές βάσεις δεδομένων. Παρέχει δυνατότητες συνεχούς επιθεώρησης κώδικα, εμφάνισης της καλής λειτουργίας μιας εφαρμογής και επισήμανσης νέων προβλημάτων. Περιέχει αναλυτές κώδικα που είναι εξοπλισμένοι για να ανιχνεύουν δύσκολα ζητήματα. Επίσης, ενσωματώνεται εύκολα με το DevOps.
Σε αυτό το σεμινάριο, θα εγκαταστήσουμε την πιο πρόσφατη έκδοση του SonarQube στο CentOS 7.
Σημείωση: Αυτό το έγγραφο έχει ενημερωθεί από την αρχική του δημοσίευση. Δείτε την ενότητα "Errata" στις υποσημειώσεις.
Προαπαιτούμενα
- Μια παρουσία διακομιστή Vultr 64-bit CentOS 7 με τουλάχιστον 2 GB RAM.
- Ένας χρήστης sudo .
Πριν εγκαταστήσετε οποιοδήποτε πακέτο στην παρουσία του διακομιστή 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εντολή.
Κάντε λήψη του αρχείου αρχείων εγκατάστασης του SonarQube.
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.4.zip
Μπορείτε πάντα να αναζητήσετε τον σύνδεσμο προς την πιο πρόσφατη έκδοση της εφαρμογής στη σελίδα λήψης του SonarQube .
Εγκαταστήστε το unzip εκτελώντας:
sudo yum -y install unzip
Αποσυμπιέστε το αρχείο χρησιμοποιώντας την ακόλουθη εντολή.
sudo unzip sonarqube-6.4.zip -d /opt
Μετονομάστε τον κατάλογο:
sudo mv /opt/sonarqube-6.4 /opt/sonarqube
Ανοίξτε το αρχείο διαμόρφωσης SonarQube χρησιμοποιώντας το αγαπημένο σας πρόγραμμα επεξεργασίας κειμένου.
sudo nano /opt/sonarqube/conf/sonar.properties
Βρείτε τις παρακάτω γραμμές.
#sonar.jdbc.username=
#sonar.jdbc.password=
Καταργήστε το σχόλιο και δώστε το όνομα χρήστη και τον κωδικό πρόσβασης PostgreSQL της βάσης δεδομένων που δημιουργήσαμε νωρίτερα. Θα πρέπει να μοιάζει με:
sonar.jdbc.username=sonar
sonar.jdbc.password=StrongPassword
Στη συνέχεια, βρείτε:
#sonar.jdbc.url=jdbc:postgresql://localhost/sonar
Καταργήστε το σχόλιο της γραμμής, αποθηκεύστε το αρχείο και βγείτε από το πρόγραμμα επεξεργασίας.
Το SonarQube μπορεί να ξεκινήσει απευθείας χρησιμοποιώντας το σενάριο εκκίνησης που παρέχεται στο πακέτο εγκατάστασης. Για λόγους ευκολίας, θα πρέπει να ρυθμίσετε ένα αρχείο μονάδας Systemd για το SonarQube.
sudo nano /etc/systemd/system/sonar.service
Συμπληρώστε το αρχείο με:
[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
Ξεκινήστε την εφαρμογή εκτελώντας:
sudo systemctl start sonar
Ενεργοποιήστε την αυτόματη εκκίνηση της υπηρεσίας SonarQube κατά την εκκίνηση.
sudo systemctl enable sonar
Για να ελέγξετε εάν η υπηρεσία εκτελείται, εκτελέστε:
sudo systemctl status sonar
Από προεπιλογή, το SonarQube ακούει τον localhost στη θύρα 9000. Σε αυτό το σεμινάριο, θα χρησιμοποιήσουμε τον Apache ως τον αντίστροφο διακομιστή μεσολάβησης, έτσι ώστε η εφαρμογή να είναι προσβάσιμη μέσω της τυπικής θύρας HTTP. Εγκαταστήστε τον διακομιστή ιστού Apache εκτελώντας:
sudo yum -y install httpd
Δημιουργήστε έναν νέο εικονικό κεντρικό υπολογιστή.
sudo nano /etc/httpd/conf.d/sonar.yourdomain.com.conf
Συμπληρώστε το αρχείο με:
<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>
Εκκινήστε το Apache και ενεργοποιήστε το να ξεκινά αυτόματα κατά την εκκίνηση:
sudo systemctl start httpd
sudo systemctl enable httpd
Επιτρέψτε την απαιτούμενη θύρα HTTP μέσω του τείχους προστασίας του συστήματος.
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
Ξεκινήστε την υπηρεσία SonarQube:
sudo systemctl start sonar
Θα χρειαστεί επίσης να απενεργοποιήσετε το SELinux:
sudo setenforce 0
Το SonarQube είναι εγκατεστημένο στον διακομιστή σας, αποκτήστε πρόσβαση στον πίνακα εργαλείων στην ακόλουθη διεύθυνση.
http://sonar.yourdomain.com
Συνδεθείτε χρησιμοποιώντας τον αρχικό λογαριασμό διαχειριστή adminκαι admin. Τώρα μπορείτε να χρησιμοποιήσετε το SonarQube για να αναλύετε συνεχώς τον κώδικα που έχετε γράψει.
Ακατάστατο
Εάν εγκαθιστάτε το SonarQube 7.1 (ή νεότερο), κάντε τις παρακάτω αλλαγές, επειδή οι νεότερες εκδόσεις του Elasticsearch δεν μπορούν να εκτελεστούν ως χρήστης root.
- Ενημέρωση αδειών:
chown -R sonar:sonar /opt/sonarqube
- Τροποποιήστε
/opt/sonarqube/bin/linux-x86-64/sonar.sh, αλλάξτε #RUNASσε " sonar".
- Τροποποιήστε
/etc/systemd/system/sonar.service, αλλάξτε την ομάδα χρηστών σε " sonar".