Dominik Miklaszewski
by Dominik Miklaszewski

Categories

Tags

W pierwszej części przedstawiłem zarys domowego labu DevOps-owego. Natomiast w tym wpisie, chciałbym przedstawić prostą instalację jednego z istotnych komponentów takiego labu - SonarQube’a.

Czym jest SonarQube (dalej w tekście - sonar, dowiecie się tutaj. W skrócie, jest to oprogramowanie, które patrzy programiście na ręce. Sprawdza jakość i bezpieczeństwo kodu, a jeśli jest nie jest dobrze, to np. nie dopuszcza do PR-a. Może być też agregatorem informacji o testach jednostkowych. Wszystko to zależy od stopnia złożoności i konfiguracji potoku wytwórczego (ang. pipeline). Fajna rzecz - i kluczowa - jeśli chodzi o automatyzację procesu wytwórczości oprogramowania.

Wymagania

Czego potrzebuję do tego aby przeprowadzić skutecznie instalację?

  • Na maszynie “hosta” skonfigurowany KVM,
  • maszyna wirtualna “o smaku” RedHata (Fedora, CentOS), 2vcpu, min. 4GB RAM, min. 10GB dysku,
  • sieć wirtualna, co najmniej z NATem - jeśli pozostałe wirtualne maszynki będą w tej samej podsieci,
  • Tejże maszyny nazwa DNS w domenie labowej,

Architektura

Architektura rozwiązania nie jest szczególnie wymagająca, składa się z czterech głównych klocków, którymi będziemy musieli się zająć, składając całość w Ansiblu:

  • NGINX jako reverse proxy dla sonara,
  • Postgresql jako baza dla danych sonara,
  • Elasticsearch - w paczce z sonarem, ale wymaga pewnych zabiegów w OSie maszynki, przed instalacją,
  • Sam on - sonar. center-aligned-image

Instalacja

  • Inicjujemy i odpalamy maszynę wirtualną z wykorzystaniem ansiblowej roli libvirt-vm:

ansible-playbook -v -K seup-vm-role.yaml -e "vm_name=sbx1u130 vm_ip=192.168.130.100 user=test resize_vm=true"

  • Generujemy i instalujemy certyfikat SSL wraz z CA pośrednim, poprzez rolę cfssl-pki, mając uprzednio przygotowaną infrastrukturę labowego PKI, też poprzez tę rolę:

ansible-playbook -v -K gen-cert.yaml -l sbx1u130.nukelab.home

  • Instalujemy sonara, wraz z Postgresem, openjdk-11 i nginx-em, biorąc pod uwagę niezbędne wymagania co do konfiguracji OS’a, certyfikat, używając roli sonarqube-host:

ansible-playbook -v -K setup-sq-role.yaml -l sbx1u130.nukelab.home

Rezultat

Po wklepaniu admin-admin i zmianie hasła, powinna nam się pojawić taka strona: center-aligned-image