نشر خادم SonarQube

مرحبا ، habrozhiteli!


أريد في هذا الدليل إعداد إعداد خطوة بخطوة لنشر نظام أساسي للتحليل والقياس المستمر لجودة الشفرة. هناك الكثير من المقالات المشابهة على الشبكة ، لكنني أريد أن أبرز فقط الشيء الرئيسي ، بحيث يمكن لجميع القادمين الجدد التعامل معها في المرة الأولى. سنقوم SonarQube 7.9 مع PostgreSQL 10 .


هل تعلمت بالفعل الويكي ، أليس كذلك؟


وقبل أن نبدأ


أريدك أن تقرر الإصدار الذي سيتم تنفيذه ، لأنه مع كل تحديث يتم دفع المزيد والمزيد من المكونات الإضافية ، والتي بالطبع ستؤثر على التكاليف المالية أو الوظائف.


بشكل عام - اتبع هذا الرابط وانظر بنفسك: مصفوفة إصدار البرنامج المساعد .


وفقا للوثائق: فمن المستحسن الحفاظ على الخادم وقاعدة البيانات على أجهزة مختلفة . ولكن في الصندوق الرمل ، يمكنك أيضًا التدريب على واحدة.


إذا كان لديك أوبونتو وخوادم 2


إذا قررت اتباع مسار التوصيات ولكي لا تهتم بإنشاء جهازين ظاهريين ، فقم بإنشاء واحدة - يمكنك تغيير اسم خادم IP الثاني بسهولة وببساطة باستخدام هذه الأوامر:


::: تغيير اسم المضيف :::


 $ hostnamectl set-hostname sonarapp sudo nano /etc/hostname sudo nano /etc/hosts 

::: تغيير ip ubuntu :::


 sudo nano /etc/netplan/01-eth0.yaml 

هناك ، ابحث عن الخطوط المألوفة وقم بتغيير معلمات اسم الجهاز وعنوان IP.


وماذا يجب أن يحدث :


خادم تطبيقات Sonar [SonarApp]: 8 مراكز ، 16 جيجابايت من ذاكرة الوصول العشوائي ، مساحة قرص 20 جيجابايت + 50 جيجا بايت (/ opt)


المستخدمكلمة المرورIPمنصة
المشرفpass123192.168.0.15أوبونتو لينكس

قاعدة بيانات Sonar [SonarDB]: 8 مراكز و 16 جيجابايت من ذاكرة الوصول العشوائي ومساحة قرص 20 جيجابايت + 50 جيجا بايت (/ opt)


المستخدمكلمة المرورIPمنصة
المشرفpass123192.168.0.16ديبيان لينكس

1. أقترح البدء بقاعدة بيانات


تسجيل الدخول تحت المشرف لدينا جيدة على 192.168.0.16 (SonarDB). من المهم جدًا عدم تشغيلك كجذر.


تأكد من تثبيت PostgreSQL على النظام. هناك العديد من الخيارات ، ولكن جرب أبسط الخيارات:


 $ which psql $ psql -V $ find / -name 'postgres' 

تعرف على الحزم التي تم تنزيلها على النظام:


 $ dpkg -l | grep postgres 

إذا لم يتم العثور على أي شيء ، فتأكد من وجود PostgreSQL 10 في المستودعات:


 $ sudo apt-cache search postgresql-10 

وثائق تثبيت PostgreSQL الرسمية: رابط . ولكن إذا كان بالترتيب:


 $ wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O- | sudo apt-key add - $ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/postgresql.list' $ sudo apt-get update $ sudo apt-get install postgresql-10 pgadmin4 

  • أواجه مشكلات مع الإعدادات المحلية بعد إضافة postgres إلى النظام. طريقة الحل (الحل في /etc/default/locale ):
     $ sudo locale-gen en_US.UTF-8 $ sudo localedef -i en_US -f UTF-8 en_US.UTF-8 $ export LANGUAGE=en_US.UTF-8 $ export LANG=en_US.UTF-8 $ export LC_ALL=en_US.UTF-8 $ sudo locale-gen en_US.UTF-8 $ sudo dpkg-reconfigure locales 

سيفتح الأمر dpkg-reconfigure locales مربع حوار أسفل دبيان لتحديد اللغة المطلوبة. اختر en_US.UTF-8 .


تشغيل!


 $ sudo systemctl start postgresql $ sudo systemctl status postgresql $ sudo nano /etc/postgresql/10/main/postgresql.conf ### CTRL + W ### -> listen_addresses = '*' $ sudo systemctl restart postgresql 

تحقق من نجاح التثبيت:


 $ sudo apt-get install -y net-tools $ sudo netstat -antup | grep 5432 $ dpkg --get-selections |grep postgres $ pg_lsclusters 

تهانينا! تحصل. :)


 sudo su -l postgres psql ### CTRL + Z ### -> exit from psql ### exit ### 

تغيير كلمة المرور لمستخدم PostgreSQL الافتراضي


 $ sudo passwd postgres 

التبديل إلى المستخدم postgres.


 $ su - postgres 

التبديل إلى قذيفة بوستجرس.


 $ psql 

التكوين الأساسي لـ PostgreSQL


قم بتعيين كلمة مرور للمستخدم الذي تم إنشاؤه حديثًا لقاعدة بيانات SonarQube.


 CREATE ROLE sonar WITH PASSWORD 'sonar'; SELECT rolname FROM pg_roles; alter role sonar login; SELECT pg_reload_conf(); Create a new database for PostgreSQL database by running: create database sonar owner sonar; 

الخروج من قذيفة psql:


 '\q' 

ترحيل قاعدة بيانات PostgreSQL


وقف خدمة بوستجرس


 $ service postgresql stop # or $ /usr/lib/postgresql/10/bin/pg_ctl stop -D /var/lib/postgresql/10/main 

تغيير دليل البيانات.


 $ psql 

 # show data_directory; /var/lib/postgresql/10/main 

 $ sudo rsync -av /var/lib/postgresql /opt/sonardb $ sudo mv /var/lib/postgresql/*/main /var/lib/postgresql/*/main.bak $ sudo nano /etc/postgresql/*/main/postgresql.conf # change location for new data_directory. data_directory = '/opt/sonardb/postgresql/10/main' listen_addresses = '*' 

تغيير الاختيار


 $ sudo -u postgres psql 

 # show data_directory; ______________________ /opt/sonardb/postgresql/10/main # \q 

وتحتاج أيضا إلى التحقق من معلمات النظام. يمكن إضافتها إلى ملف /etc/sysctl.conf (أو /etc/sysctl.d/99-sonarqube.conf ) أو إدخالها في الجهاز:


 sysctl -w vm.max_map_count=262144 sysctl -w fs.file-max=65536 ulimit -n 65536 ulimit -u 4096 

2. والآن سوف نشارك في خادم تطبيق SonarQube


تسجيل الدخول تحت المشرف لدينا جيدة على 192.168.0.15 (SonarApp). من المهم أيضا أنها ليست الجذر.


هذه الأسطر التي تبدأ بحرف $ هي مدخل طرفي ، والباقي هو ما سنقوم بتحريره في الملفات أو ما يجب استلامه في الإخراج (إخراج المعلومات)


SonarQube يتطلب JAVA للعمل. خذ OpenJDK


تثبيت open-jdk11


 $ sudo apt-get install openjdk-11-jdk 

تغيير جافا PATH


 $ nano ~/.bash_profile export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin/java export PATH=/usr/lib/jvm/java-11-openjdk-amd64/bin:$PATH 

تحقق من أن JAVA تمت إضافته بنجاح إلى النظام :


 $ java -version 

قم بتنزيل SonarQube وتهيئته


قم بتنزيل أرشيف ملفات مثبّت SonarQube.


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

قم بفك الضغط عن طريق التشغيل:


 # apt-get -y install unzip 

قم بفك ضغط الأرشيف باستخدام الأمر التالي


 $ sudo unzip sonarqube-7.9.1.zip -d /opt 

إعادة تسمية الدليل


 $ sudo mv /opt/sonarqube-7.9.1 /opt/sonarqube 

إضافة Sonar المستخدم والامتيازات


تعرف على المزيد حول إدارة المستخدم على نظام Unix .


قم بإنشاء مستخدم باسم sonar وجعله مالك /opt/sonarqubedirectory


 $ sudo adduser sonar $ sudo passwd sonar $ sudo chown -R sonar:sonar /opt/sonarqube 

الحصول على قائمة المستخدمين في النظام:


 $ cut -d: -f1 /etc/passwd 

ما هي مجموعات المستخدم الجديد في:


 $ groups sonar 

استمرار تكوين SonarQube


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

 sonar.jdbc.username=sonar sonar.jdbc.password=sonar sonar.web.host=192.168.0.15 # sonar.jdbc.url=jdbc:postgresql://localhost/username sonar.jdbc.url=jdbc:postgresql://192.168.0.16/sonar sonar.web.javaAdditionalOpts=-server 

إنشاء ملف /etc/systemd/system/sonarqube.service المحتوى التالي في الملف


 [Unit] Description=SonarQube service After=syslog.target network.target [Service] Type=simple User=sonar Group=sonar PermissionsStartOnly=true ExecStart=/bin/nohup java -Xms32m -Xmx32m -Djava.net.preferIPv4Stack=true -jar /opt/sonarqube/lib/sonar-application-7.9.1.jar StandardOutput=syslog LimitNOFILE=65536 LimitNPROC=8192 TimeoutStartSec=5 Restart=always [Install] WantedBy=multi-user.target 

بدء وتمكين sonarqube


 $ sudo systemctl start sonarqube $ sudo systemctl enable sonarqube 

للتحقق مما إذا كانت الخدمة قيد التشغيل ، قم بتشغيل:


 $ sudo systemctl status sonarqube 

تسجيل:


 tail -f /opt/sonarqube/logs/sonar.log 



للتحقق من توفر قاعدة البيانات ، اتصل بـ 192.168.0.15 واكتب:


 $ psql -h 192.168.0.16 -p 5432 -U sonar 

هذا كل شيء. للتأكد من أن كل شيء يعمل ، انتقل إلى المتصفح (تأكد من أن شبكة 192.168.XX يمكن الوصول إليها من لك أو استخدام الروابط).


سنقوم بالاتصال على الرقم 192.168.0.15:9000 وسوف يتم الترحيب بك من خلال نافذة التفويض.


SonarQube Standard Admin Admin بيانات المستخدم:


المستخدمكلمة المرور
المشرفالمشرف

Source: https://habr.com/ru/post/ar474140/


All Articles