OpenStack Quickstart
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.
Turinys
- 1 Virtuali mašina
- 2 Virtualios mašinos kūrimas (Horizon)
- 3 Virtualios mašinos kūrimas (CLI)
- 4 Virtualios mašinos importavimas (Horizon)
- 5 Atsarginių kopijų kūrimas (Horizon)
- 6 Atsarginių kopijų kūrimas (CLI)
- 7 Prisijungimas iš Windows
- 8 Loginio disko kūrimas (Horizon)
- 9 Loginio disko kūrimas (CLI)
- 10 DNS zonos, vidinio tinklo kūrimas (Horizon)
- 11 DNS zonos, vidinio tinklo kūrimas (CLI)
Virtuali mašina
Yra du galimi virtualios mašinos tipai:
- Virtuali mašina be loginio disko (Image-backed)
- Virtuali mašina su loginiu disku (Volume-backed)
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 „Security Groups“ - pasirinkite default ugniasienės taisyklių grupę.
- 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
- Tada reikia pridėti trūkstamas ugniasienės taisyklių grupes:
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
- Liko priskirti virtualų IP adresą.
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ą.
- „Compute“ -> „Images“. Kai baigs kėlimas, galite paleisti naują virtualią mašiną, pagal sukurtą virtualios mašinos momentinę kopiją.
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ą.
- „Connections“ -> „Data“ skiltyje nurodykite prisijungimo vardą debian.
- 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.