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.
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: