SimpleINFRA
SimpleINFRA
Acest spatiu de lucru descrie rezultatele activitatii 3.3, 'Aplicatie software de configurare automata a unei solutii de virtualizare', din cadrul proiectului MOISE.
Structura spatiului de lucru este urmatoarea:
- maas-juju - directorul contine aplicatii necesare pentru configurarea serviciilor MAAS si JUJU;
- scripts - directorul contine o serie de switchuri ce faciliteaza configurarea automata a unor servicii fizice: switchuri, sisteme de control ale nodurilor (BMC), sisteme de stocare de date etc.;
Acces
Acest spatiu de lucru este protejat, accesul la aplicatii fiind permis doar pe baza de cerere. Descrierea activitatilor dezvoltate in cadrul activitatii 3.3 sunt disponibile in rapoartele periodice trimise catre unitatea de finantare.
Descriere aplicatie SimpleINFRA
Aplicatia SimpleINFRA ofera o metodologie si un set de aplicatii ce usureaza procesul de instalare si configurare automata a unei solutii de virtualizare. Solutia de virtualizare aleasa este OpenStack iar pentru orchestrarea de aplicatii distribuite si scalabile se va instala Kubernetes.
Solutia de virtualizare OpenStack se instaleaza peste resursele fizice avute la dispozitie de catre utilizator.
Resursele fizice minim recomandate pentru o instalare in modul de inalta disponibilitate sunt urmatoarele:
- 3 noduri pentru servicii, cu minim doua legaturi de retea de minim 10GbE cu suport IPMI;
- 3 noduri pentru calcul, cu minim doua legaturi de retea de minim 10GbE cu suport IPMI;
- 1 sistem de stocare de date de tip
block storage
folosind iSCSI sau FC pe 10GbE cu doua controllere in modul activ-activ; - 2 sisteme de interconectare de retea (switchuri) de minim 10GbE cu 2 porturi de uplink de 25GbE;
Pentru configurarea automata a resurselor si instalarea solutiei de virtualizare in proiectul MOISE au fost integrate urmatoarele tehnologii:
- Canonical MAAS (https://maas.io/)
- Canonical Juju (https://juju.ai)
- scripturi de suport specifice resurselor hardware achizitionate in proiectul MOISE
Avand aceasta configuratie minimala SimpleINFRA se va ocupa de configurarea echipamentelor pentru instalarea si configurarea OpenStack.
Pregatirea resurselor hardware
Resursele hardware trebuie configurare pentru folosirea lor in configuratia OpenStack.
Sistemele de interconectare
Switchurile de interconectare trebuie sa fie configurate in modul MLAG (Multichassis Link Aggregation) si cele doua conexiuni ale nodurilor folosite sa fie conectate separat cate una in fiecare switch. Aceste aspecte nu sunt acoperite de aplicatia SimpleINFRA.
Fiecare switch trebuie sa aiba creat un utilizator administrator cu o parola de acces ce mai departe sunt folosite de scriptul scripts/switch-configure.sh
pentru a realiza urmatoarele actiuni:
- crearea VLANurilor necesare pentru OpenStack:
- VLAN_ADMINISTRATIV (necesar pentru operatii administrative la nivel de resurse fizice);
- VLAN_OPENSTACK (necesar pentru comunicarea interna a componentelor OpenStack)
- VLAN_ADRESE_PUBLICE (necesar pentru adresele publice disponibile pentru resursele virtuale create prin OpenStack)
- configurarea conexiunilor nodurilor instalate pentru conectivitate de inalta disponibilitate folosind protocolul LACP;
- configurarea VLANurilor mai sus amintite pe conexiunile nodurilor instalate;
Unitatea de stocare de date
Unitatea de stocare de date trebuie configurata astfel incat sa accepte adresele nodurilor instalate pentru transmiterea de discuri de date catre acestea. Acest lucru se realizeaza prin intermediul scriptului scripts/storage-configure.sh
. Acesta script are nevoie ca date de intrare de adresa echipamentului si de o pereche utilizator/parola cu drept administrativ pe echipamentul de calcul.
Configurare serviciu de administrare la distanta (iLo/IPMI)
Serviciul de administrare la distanta a echipamentelor fizice este o componenta hardware importanta ce permite executarea de operatii de pornire/oprire/configurare mod de pornire etc. asupra echipamentelor de calcul. Acest serviciu este folosit de Canonical MAAS pentru configurarea automata a resurselor. Pentru fiecare echipament este necesara obtinerea utilizatorului si a parolei implicite (oferita de productatorul echipamentului si se regaseste de regula imprimata pe carcasa echipamentului). Mai departe se foloseste scriptul scripts/ipmi-control.sh
pentru extragerea informatiilor necesare si configurarea initiala IPMI necesara pentru Canonical MAAS.
Pregatirea serviciului Canonical MAAS
Aceste servicii se instaleaza pe un nod de calcul fie fizic fie virtualizat folosind tehnologii de virtualizare (QEMU/KVM sau VMWare) si se va folosi sistemul de operare Ubuntu 22.04. Acest nod trebuie sa dispuna de doua interfete de retea configurate in VLANurile: VLAN_ADMINISTRATIV si VLAN_OPENSTACK. Comenzile de instalare MAAS sunt urmatoarele:
sudo apt-add-repository ppa:maas/3.2
sudo apt update
sudo apt-get -y install maas
Dupa instalare se creaza un utilizator administrator folosind comanda:
sudo maas createadmin --username=$PROFILE --email=$EMAIL_ADDRESS
maas apikey --username admin # se salveaza cheia API returnata MAAS_API_KEY
si apoi se acceseaza interfata de administrare:
http://MAAS_IP_ADDRESS:5240/MAAS
Pornirea initiala a resurselor
Pentru descoperirea automata a resurselor se va apela scriptul scripts/ipmi-control.sh
pentru pornirea acestora din retea.
Dupa descoperirea acestora automat, se foloseste scriptul scripts/maas-configure.sh
pentru modificarea anumitor parametrii fizici necesari instalarii ulterioare a OpenStack.
Pregatirea nodurilor operator si controllerului JUJU
Aceste doua noduri sunt folosite pentru operarea Canonical JUJU ce se ocupa de instalarea automata a solutiei de virtualizare OpenStack. Aceste doua noduri pot fi virtualizate. Nodul juju-controller trebuie configurat in MAAS ca nod virtual ce poate fi controlat de MAAS, similar cu nodurile fizice prin IPMI.
Pe nodul operator, instalat cu Ubuntu 22.04, se pregateste aplicatia Juju folosind urmatoarele comenzi:
sudo snap install juju --classic
cat > container-cloud.yaml <<EOF
clouds:
container-cloud:
type: maas
auth-types: [oauth1]
endpoint: http://MAAS_IP_ADDRESS:5240/MAAS
EOF
juju add-cloud --client -f container-cloud.yaml container-cloud
cat > container-cloud-credentials.yaml <<EOF
credentials:
container-cloud:
admin:
auth-type: oauth1
maas-oauth: MAAS_API_KEY
EOF
juju add-credential --client -f container-cloud-credentials.yaml container-cloud
Apoi se instaleaza controllerul JUJU:
juju bootstrap --bootstrap-series=focal --constraints tags=juju container-cloud container-juju-controller-01
Instalarea OpenStack
Mai departe, de pe nodul operator se poate face instalarea si configurarea automata a componentelor solutiei de virtualizare OpenStack folosind sablonul de instalare OpenStack-Bundle (accesul la acesta este restrictionat; vezi sectiunea Acces).
Dupa finalizarea cu succes a instalarii solutia de virtualizare OpenStack este disponibila la adresa componentei Dashboard
, configurata in OpenStack-Bundle.