OpenStack Quickstart

Iš LITNET WIKI.
Peršokti į: navigacija, paiešką

Greita pradžia su LITNET debesijos paslaugos naudojama platforma „OpenStack“. Žingsniai aprašomi paprastam scenarijui, su nuorodomis į detalų skilties ar veiksmo aprašymą.

Detalesnė dokumentacija patalpinta čia.

Virtuali mašina

Yra du galimi virtualios mašinos tipai:

Abu tipai veikia skirtingai atliekant įvairias operacijas, kaip mašinos sukūrimas, trynimas, atstatymas iš kopijos.

Virtualios mašinos kūrimas (Horizon)

Atvejis: 3 Ubuntu OS atvaizdo(„image-backed“) virtualios mašinos. Joms sukuriama privati raktų pora („key pair“), naudojamas ssh prisijungimui. Pakeičiama esama „security group“, kad praleistų įeinantį ICMP ir SSH srautą. Vienai išskiriamas ir priskiriamas „floating IP“.

  • „Compute“ -> „Instances“ -> „Launch Instance“.
  • Skiltis „Details“ - Nurodykite vardą „vm“. Skaičių pasirinkite patys.
  • Skiltis „Source“ - pasirinkite Debian-10 atvaizdą. Pasirinkite „Create New Volume“ -> „No“.
  • Skiltis „Flavor“ - pasirinkite l1.2xsmall konfigūraciją.
  • Skiltis „Networks“ - pasirinkite Projektas_Network tinklą.
  • Skiltis „Key Pair“ - reikia naujos raktų poros. Pasirinkite „Create Key Pair“, nurodykite vardą „raktupora“, pasirinkite tipą „SSH Key“. Spauskite „Copy Private Key to Clipboard“ (rakto turinys bus patalpintas į iškarpinę). Sukurkite savo kompiuteryje failą "privatus.key". Jį atsidarykite su teksto redaktoriumi. Įdėkite nukopijuotą raktą ir išsaugokite. Spauskite „Done“.
  • Spauskite „Launch Instance“. Po kiek laiko virtuali mašina bus sukurta ir paleista.
  • „Actions“ -> „Associate Floating IP“. Spauskite pliusą, norėdami išskirti naują virtualų IP adresą. Nurodykite DNS zoną bei virtualios mašinos vardą.

Detaliai procesas aprašytas čia. Virtualiai mašinai pilnai užsikrovus, prie jos galite prisijungti naudodami savo čia sukurtą privatų raktą bei nurodytą „floating ip“ ar jo FQDN vardą.

Virtualios mašinos kūrimas (CLI)

Atvejis: 3 Ubuntu OS atvaizdo(„image-backed“) virtualios mašinos. Joms sukuriama privati raktų pora („key pair“), naudojamas ssh prisijungimui. Pakeičiama esama „security group“, kad praleistų įeinantį ICMP ir SSH srautą. Vienai išskiriamas ir priskiriamas „floating IP“.

CLI paruošimas čia.

 nova boot --flavor KONFIGURACIJA --image ATVAIZDAS --min-count SKAICIUS --key-name RAKTUPORA --nic net-id=TINKLO_ID --security-groups UGNIASIENES_TAISYKLES PAVADINIMAS
  • Pirmiausia reikia naujos raktų poros. Ji sukuriama pavadinimu „raktas“, ir privatus raktas išsaugomas į failą „privatus.pem“. Svarbu pakeisti failo teises.
nova keypair-add raktas > privatus.pem
chmod 600 privatus.pem
nova flavor-list
glance image-list
openstack network list
  • Pasirinkus norimus parametrus (šiuo atveju l1.2xsmall, Debian-10 bei norimo tinklo ID, galima pradėti kūrimą:
nova boot --flavor l1.2xsmall   --image Debian-10   --min-count 3   --key-name raktas   --nic net-id=TINKLO_ID  --security-groups default   vm 
openstack security group rule create --remote-ip "JUSU_IP" --dst-port 22 --protocol tcp --ingress default
openstack security group rule create --remote-ip "0.0.0.0/0" --protocol icmp --ingress default
openstack floating ip create vlan229

Matomas virtualus IP adresas.

openstack server add floating ip VM_VARDAS VIRT_IP_ADRESAS

Pastaba: Virtualų IP adresą galima priskirti tik vidiniame tinkle esančioms virtualioms mašinoms. Vlan229 yra išorinis tinklas, t. y. jame esančios VM turi išorinius IP adresus.

Virtualios mašinos importavimas (Horizon)

Atvejis: importuojamas VMware Workstation Player sukurtos virtualios mašinos diskas su Ubuntu. Įkeliamas atvaizdas, pagal jį sukuriamas loginis diskas, iš kurio leidžiama virtuali mašina. Dažnai virtualūs diskai būna paskirstyti per keletą failų. Juos turėsite konvertuoti į vieną failą. Tam galite naudoti VMware Virtual Disk Manager.

  • „Compute“ -> „Images“ -> „Create Image“.
  • Nurodykite pavadinimą, pasirinkite savo failą ir nurodykite tipą. Matomumą pasirinkite „Private“. Spauskite „Create Image“.
  • Kai atvaizdas bus įkeltas, „Actions“ -> „Create Volume“. SVARBU: dydis turi būti lygus ar didesnis už disko „Max Size“ reikšmę. Galite pakeisti tipa į ssd. Spauskite „Create Volume“.
  • „Volumes“ -> „Volumes“. Kai loginis diskas bus pilnai sukurtas, „Actions“ -> „Launch as Instance“.
  • Skiltis „Details“ - Nurodykite vardą.
  • Skiltis „Flavor“ - pasirinkite l1.csmall konfigūraciją.
  • Skiltis „Networks“ - pasirinkite vlan229 tinklą.
  • „Compute“ -> „Instances“ -> „Actions“ -> „Console“. Dabar galite prisijungti.

Atsarginių kopijų kūrimas (Horizon)

Norint išlaikyti duomenų vientisumą, prieš kurdami atsargines kopijas, išjunkite virtualią mašiną arba įsitikinkite, kad atvaizdas metaduomenyse turi žymes :

 os_require_quiesce     yes
 hw_qemu_guest_agent    yes 

ir virtualios mašinos OS įdiegta qemu-guest-agent. Tokiu atveju mašinos darbas kopijos sudarymo metu sustabdomas automatiškai. Tai ypač svarbu loginio disko virtualioms mašinoms.

Atvaizdo virtuali mašina

Jei VM paleidote be loginio disko:

  • „Actions“ -> „Shut Off Instance“. (Neprivaloma)
  • „Actions“ -> „Create Snapshot“. Nurodykite pavadinimą.

Tolesni žingsniai identiški kūrimui, pasirenkant momentinę kopiją kaip atvaizdą.

Loginio disko virtuali mašina

Loginio disko virtualių mašinų atsarginės kopijos daromos loginiais diskais, todėl galima kurti arba loginio disko momentines kopijas, arba loginio disko atsargines kopijas, bet ne virtualios mašinos momentines kopijas. Jei VM paleidote su loginiu disku:

Naudojant atsargines kopijas:

  • „Volumes“ -> „Volumes“ -> „Actions“ -> „Create Backup“. Nurodykite pavadinimą.
  • „Actions“ -> „Restore Backup“. Pasirinkite, kurį loginį diską atstatyti, ar kurti naują. Spauskite „Restore Backup to Volume“.

Baigus, bus sukurta loginio disko kopija. Naudojant momentines kopijas:

  • „Volumes“ -> „Volumes“ -> „Actions“ -> „Create Snapshot“. Nurodykite pavadinimą ir spauskite „Create Volume Snapshot (Force)“.
  • „Actions“ -> „Create Volume“. Nurodykite pavadinimą ir spauskite „Create Volume“.

Tolesni žingsniai identiški kūrimui, pasirenkant naują loginį diską, kaip užkrovimo šaltinį. Daugiau apie loginius diskus ir jų kopijas čia.

Atsarginių kopijų kūrimas (CLI)

CLI paruošimas čia.

Norint išlaikyti duomenų vientisumą, prieš kurdami atsargines kopijas, išjunkite virtualią mašiną arba įsitikinkite, kad atvaizdas metaduomenyse turi žymes :

 os_require_quiesce     yes
 hw_qemu_guest_agent    yes 

ir virtualios mašinos OS įdiegta qemu-guest-agent. Tokiu atveju mašinos darbas kopijos sudarymo metu sustabdomas automatiškai. Tai ypač svarbu loginio disko virtualioms mašinoms.

Atvaizdo virtuali mašina

Jei VM paleidote be loginio disko:

openstack server stop VM_VARDAS #tik jei neidiegta qemu-guest-agent
openstack server image create --name SNAPSHOT_VARDAS VM_VARDAS

Kai baigs kėlimas, galite paleisti naują virtualią mašiną, pagal sukurtą virtualios mašinos momentinę kopiją.

 nova boot --flavor KONFIGURACIJA --image SNAPSHOT_VARDAS --key-name RAKTUPORA --nic net-id=TINKLO_ID --security-groups UGNIASIENES_TAISYKLES VM_VARDAS 

Arba sukūrti loginį diską.

 openstack volume create --image SNAPSHOT_VARDAS

Loginio disko virtuali mašina

Loginio disko virtualių mašinų atsarginės kopijos daromos loginiais diskais, todėl galima kurti arba loginio disko momentines kopijas, arba loginio disko atsargines kopijas, bet ne virtualios mašinos momentines kopijas. Jei VM paleidote su loginiu disku:

Reikės loginio disko ID.

openstack server show VM_VARDAS

Skyrelis „volumes_attached“.

Naudojant atsargines kopijas

 openstack volume backup create --force DISKO_ID

Baigus, bus sukurta loginio disko atsarginė kopija. Ją atstatyti:

 openstack volume backup restore SNAPSHOT_ID DISKO_ID

Naudojant momentines kopijas

openstack volume snapshot create --volume DISKO_ID --force KOPIJOS_VARDAS

Pagal momentinę kopiją galima sukurti loginį diską:

openstack volume create --snapshot KOPIJOS_VARDAS DISKO_VARDAS

Dabar iš loginio disko galima paleisti virtualią mašiną:

nova boot --flavor KONFIGURACIJA --boot-volume NAUJO_DISKO_ID --key-name RAKTUPORA --nic net-id=TINKLO_ID --security-groups UGNIASIENES_TAISYKLES VM_VARDAS


Daugiau apie loginius diskus ir jų kopijas čia.

Prisijungimas iš Windows

Atvejis: Reikia naudojant SSH prisijungti prie linux VM iš Windows. „PuTTY“ reikalauja kitokio formato rakto, todėl naudodami „PuTTYgen“ konvertuosite savo turimą raktą į formatą, kurį supranta „PuTTY“.

  • Reikalingos programos: „PuTTY“, „PuTTYgen“. Jos yra nemokamos, galite atsisiųsti iš čia.
  • Paleiskite „PuTTYgen“. „Conversions“ -> „Import key“. Pasirinkite savo privatų raktą (jį gavote kurdami raktų porą). Galima nurodyti slaptažodį. Spauskite „Save private key“. Nurodykite pavadinimą.
  • Paleiskite „PuTTY“. „Session“ skiltyje nurodykite IP adresą.
  • „Connections“ -> „SSH“ -> „Auth“ skiltyje nurodykite konvertuotą privatų raktą.
  • Spauskite „Open“. Paprašys „Windows Registry“ įsiminti nuotolinę mašiną. Spauskite „Yes“.

Daugiau apie prisijungimą prie Linux/Windows VM iš Linux/Windows OS rasite čia.

Loginio disko kūrimas (Horizon)

Atvejis: Atvaizdo VM reikia sukurti 1 GB diską. Diską prijungti ir atjungti. Išplėsti iki 2 GB ir prijungti kitai VM.

  • „Volumes“ -> „Volume“ -> „Create Volume“.
  • Nurodykite pavadinimą „diskas“.
  • Pasirinkite tipą ir dydį (jei reikia).
  • Spauskite „Create Volume“.
  • „Actions“ -> „Manage Attachments“. Nurodykite, prie kurios VM jungiate. „Attach Volume“.
  • „Actions“ -> „Manage Attachments“ -> „Detach Volume“.
  • „Volumes“ -> „Volume“ -> „Actions“ -> „Extend Volume“. Pasirinkite naują dydį.
  • „Actions“ -> „Manage Attachments“. Nurodykite, prie kurios VM jungiate. „Attach Volume“.

Prijungti prie ir atjungti nuo VM diskus galima ir per „Compute“ -> „Instances“ -> „Actions“ -> „Attach Volume“.

Daugiau apie loginius diskus rasite čia.

Loginio disko kūrimas (CLI)

Atvejis: Atvaizdo VM reikia sukurti 1 GB diską. Diską prijungti ir atjungti. Išplėsti iki 2 GB ir prijungti kitai VM.

CLI paruošimas čia.

Sukuriamas vienas 1 GB dydžio loginis diskas:

openstack volume create --size 1 diskas

Jis prijungiamas prie ir atjungiamas nuo pasirinktos VM:

openstack server add volume vm-1 diskas
openstack server remove volume vm-1 diskas

Jis praplėčiamas iki 2 GB dydžio ir vėl prijungiamas prie VM:

openstack volume set diskas --size 2
openstack server add volume vm-1 diskas

Daugiau apie loginius diskus rasite čia.

DNS zonos, vidinio tinklo kūrimas (Horizon)

Atvejis: Reikia susikurti DNS zoną, bei vidinį tinklą, kuriame paleistai VM reikia priskirti virtualų IP adresą su DNS vardu.

Pirmiausia reikės savo DNS serveryje pridėti įrašus, kad už norimą subzoną (šiuo atveju pavyzdys.litnet.lt) atsakingi litnet DNS serveriai:

pavyzdys                        IN      NS      ns1-cloud.litnet.lt.
pavyzdys                        IN      NS      ns2-cloud.litnet.lt.
pavyzdys                        IN      NS      ns3-cloud.litnet.lt.

Toliau subzoną tvarkysite OpenStack aplinkoje.

DNS Zona

1. „DNS“ -> „Zones“ -> „Create Zone“.

2. Nurodykite pavadinimą su tašku gale. Šiuo atveju pavyzdys.litnet.lt. .

3. Nurodykite savo (savininko) kontaktinį el. pašto adresą ir „Time to Live“ sekundėmis (min 600). Paspauskite „Submit“.

Po kiek laiko, DNS subzona bus užregistruota.

Tinklas, maršrutizatorius

Šią dalį galima atlikti per „Network“ -> „Networks“ -> „Create Network“ bei „Network“ -> „Routers“ -> „Create Router“, bet patogiau per „Network“ -> „Network Topology“.

1. Spauskite „Create Network“. Nurodykite pavadinimą. Spauskite „Next“ arba eikite į „Subnet“ skiltį.

2. Nurodykite potinklio pavadinimą bei privataus tinklo adresą, pvz.: 10.10.10.0/24.

3. Spauskite „Next“. Čia galima nurodyti galimus IP adresus, arba palikti tuščią (visas potinklis).

Tinklas sukurtas, tačiau reikia jį prijungti prie išorinio tinklo. Tam naudosime maršrutizatorių.

4. Spauskite „Create Router“.

5. Nurodykite pavadinimą bei pasirinkite išorinį tinklą vlan229. Spauskite „Create Router“.

6. Spauskite žemėlapyje ant maršrutizatoriaus ir spauskite „Add interface“. Pasirinkite potinklį. Spauskite „Submit“.

Virtuali mašina

Tolesni žingsniai identiški kūrimui, pasirenkant sukurtą tinklą vietoj išorinio vlan229.

1. Spauskite ant sukurtos virtualios mašinos žemėlapyje, „View instance details“ arba „Compute“ -> „Instances“.

2. Spauskite „Associate Floating IP“.

3. Prie „IP Address“ spauskite pliusą.

4. Nurodykite, kad virtualus IP adresas bus vlan229 tinklo. Nurodykite DNS domeną, kuris baigiasi tašku. Šiuo atveju pavyzdys.litnet.lt. . Nurodykite DNS pavadinimą. Spauskite „Allocate IP“.

5. Spauskite „Associate“.

Dabar galite pasiekti VM naudojant jos DNS pavadinimą. Kad jis pradėtu veikti, gali prireikti iki valandos.

Daugiau apie tinklus rasite čia.

Daugiau apie DNS rasite čia.

DNS zonos, vidinio tinklo kūrimas (CLI)

Atvejis: Reikia susikurti DNS zoną, bei vidinį tinklą, kuriame paleistai VM reikia priskirti virtualų IP adresą su DNS vardu.

CLI paruošimas čia.

Pirmiausia reikės savo DNS serveryje pridėti įrašus, kad už norimą subzoną (šiuo atveju pavyzdys.litnet.lt) atsakingi litnet DNS serveriai:

pavyzdys                        IN      NS      ns1-cloud.litnet.lt.
pavyzdys                        IN      NS      ns2-cloud.litnet.lt.
pavyzdys                        IN      NS      ns3-cloud.litnet.lt.

Toliau subzoną tvarkysite OpenStack aplinkoje.

DNS Zona

openstack zone create --email ELPASTAS --ttl 3600 pavyzdys.litnet.lt.

Svarbu: DNS zonos pavadinimo gale turi būti taškas!

Po kiek laiko, DNS subzona bus užregistruota.


Tinklas, maršrutizatorius

Sukurti tinklą:

 openstack network create network1

Sukurti potinklį nurodytam tinklui:

 openstack subnet create subnet1 --network network1 --subnet-range 10.10.10.0/24

Tinklas sukurtas, tačiau reikia jį prijungti prie išorinio tinklo. Tam naudosime maršrutizatorių.

Sukurti maršrutizatorių ir priskirti jam išorinį tinklą:

 openstack router create router1
 openstack router set router1 --external-gateway v229

Susieti maršrutizatorių su potinkliu:

 openstack router add subnet router1 subnet1

Sukurti prievadą konkrečiam adresui:

 openstack port create --network network1 --fixed-ip subnet=subnet1,ipaddress=10.10.10.10 port1

Galima kurti ir nenurodant konkretaus adreso (sistema parinks automatiškai)

 openstack port create --network network1 port2 #alternatyva

Virtuali mašina

Sukurti virtualią mašiną nurodant sukurtą prievadą:

openstack server create --key-name RAKTUPORA --image ATVAIZDAS --flavor KONFIG --port port1 VM_VARDAS  --availability-zone nova

Pridėti (ir sukurti) virtualų IP adresą:

 openstack floating ip create --dns-domain pavyzdys.litnet.lt. --dns-name masina vlan229 

Svarbu: DNS zonos pavadinimo gale turi būti taškas, DNS vardo gale - jokio taško! Priskirti virtualų IP adresą virtualiai mašinai:

openstack server add floating ip VM_VARDAS FLOATING_IP


Dabar galite pasiekti VM naudojant jos DNS pavadinimą. Kad jis pradėtu veikti, gali prireikti iki valandos.

Daugiau apie tinklus rasite čia.

Daugiau apie DNS rasite čia.