Debesų pradžia

„Cloud-Init“ ir VM

„Cloud-Init“ ir VM
Šiame straipsnyje šiek tiek kalbama apie „cloud-init“ ir jo problemas ir tai, kaip atvirasis šaltinis nebūtinai reiškia laisvę. Jei norite naudoti „cloud-init“, kad sukonfigūruotumėte debesų vaizdus, ​​tiesiog slinkite žemyn iki taško 3.

1. Ką tai daro?

Kada nors susimąstėte, kaip VPS teikėjai sukonfigūruoja jūsų VM, prideda SSH raktus, sukuria vartotojus ir įdiegia paketus kiekvieną kartą, kai „debesyje“ sukite naują VM? Na, atsakymas daugumai pardavėjų yra „cloud-init“. Dauguma OS ir paskirstymų siunčia virtualaus disko vaizdus su atitinkamomis paveikslėlyje įdiegtomis OS. Diegimas yra labai minimalus ir gali būti naudojamas kaip pagrindinė OS failų sistemos šablonas. OS prižiūrėtojai taip pat yra malonūs pateikti virtualų disko vaizdą visiems įvairiems formatams, pradedant neapdorotų disko vaizdais, baigiant „qcow2“ ir netgi „vmdk“, „vdi“ ir „vhd“.

Vaizde taip pat yra iš anksto įdiegtas vienas papildomas paketas ir tai yra „cloud-init“. Tai yra debesų inicijavimo darbas inicijuoti VM (paprastai debesų prieglobos tarnyboje, pvz., „DigitalOcean“, AWS ar „Azure“), kalba su prieglobos paslaugų teikėjo duomenų šaltinis ir gaukite konfigūracijos informaciją, kurią tada naudoja konfigūruodami VM.

Į konfigūracijos informaciją gali būti įtraukta vartotojo duomenys pvz., SSH raktai, egzemplioriaus prieglobos pavadinimas, vartotojai ir slaptažodžiai kartu su bet kuria kita savavališkąja komanda, kurią nori paleisti.

2. „Cloud-Init“ problema

„Cloud-init“ yra puikus įrankis, jei esate debesies vartotojas, jei sukate VM ar konteinerius, o jūsų debesies paslaugų teikėjas maloniai prašo jūsų „cloud-config“, tai puiku! Naudodami „cloud-config“ failą, dar žinomą kaip jūsų vartotojo duomenys, galite pridėti vartotojų, paleisti savavališkas komandas, diegti paketus iškart kuriant VM. Procesą galima kartoti vėl ir vėl be varginančių komandų. Netrukus turite VM parką, visi identiški.

Tačiau jei pasigilinsite šiek tiek giliau ir pamatysite, kaip gaminama dešra, pradėsite abejoti kai kuriais „cloud-init“ aspektais. Pvz., Pagal numatytuosius nustatymus duomenų šaltinis yra kaip REST galinis taškas, ir jie iš esmės yra koduojami į patį „cloud-init“ paketą. Žinoma, galite patys nustatyti duomenų šaltinį, tačiau procesas yra sudėtingas ir reikalaujantis daug laiko. Dokumentų, kaip tai padaryti, nėra, bet nėra.

Oficiali dokumentacija yra ne kas kita, kaip vartotojo vadovas, skirtas galutiniams vartotojams, besiremiantiems jau egzistuojančiomis debesijos paslaugomis. Nenurodoma, kaip galite nustatyti savo „cloud-init“ duomenų šaltinį, jei esate būsimas pardavėjas. Net galutinio vartotojo dokumentacija yra prasta, todėl žmonėms rekomenduočiau naudoti puikią „DigitalOcean“ mokymo programą.

Dar blogiau, vartotojams, turintiems namų virtualizavimo laboratorijas ir nedidelį VPS paleidimą, sunku pasinaudoti šiais lengvais debesų vaizdais. Negalite iš tikrųjų paleisti VM iš šių šablonų be debesies inicijavimo duomenų šaltinio ar įsilaužimo, kurį sunku automatizuoti ir keisti mastelį. Kitaip tariant, jūs netgi negalite pasirinkti ignoruoti „cloud-init“, nebent norite sukurti savo šablonus.

Klasikiniu būdu jis išsivaduoja iš savo iš anksto nustatytų vaidmenų ir pradeda netvarka su tinklais ir kitomis OS dalimis, kurios išstumia vartotojus. Jis sujungiamas „Ubuntu 18“.04 serverio ISO, kuris neturi jokios prasmės (bent jau ne man).

3. Namų laboratorijų sprendimas

Atmetus viską, aš vis tiek turiu susidurti su debesų inicijavimu kasdieniniame naudojime. X86_64 aparatinėje įrangoje turiu labai minimalų „Debian 9“ diegimą, kurį naudoju kaip KVM hipervizorių. Aš labai norėjau naudoti „qcow2“ disko vaizdus, ​​kuriuos siunčia „Ubuntu“ ir „CentOS“. Šiuose disko atvaizduose yra iš anksto įdiegta OS, todėl norėdami juos naudoti, tiesiog:

  1. Nukopijuokite juos kaip savo virtualiosios virtualiojo kietojo disko atvaizdą.
  2. Pakeiskite šakninių failų sistemos virtualaus dydžio dydį iki norimo dydžio (rekomenduojama mažiausiai 10 GB). Tai nepadidins jūsų VM fizinio dydžio, tačiau disko vaizdas laikui bėgant gali didėti, nes VM į jį įtraukiama daugiau duomenų.
  3. Konfigūruokite VM naudodami „cloud-init“. Minimalus reikalavimas yra nustatyti root vartotojo slaptažodį arba SSH raktus, bet jūs galite padaryti beveik viską, ką sugeba „cloud-init“.

Atliekami šie veiksmai:

  1. Atsisiųskite savo mėgstamos OS debesies vaizdą ir išsaugokite jį aplanke / var / lib / libvirt / boot:
$ cd / var / lib / libvirt / boot
$ curl -O https: // debesų vaizdai.ubuntu.com / xenial / current / xenial-server-cloudimg-
amd64-disk1.img
$ cd / var / lib / libvirt / images
  1. Sukurkite tuščią norimo dydžio virtualų standųjį diską ir išplėskite į jį atsisiųstą „qcow2“ vaizdą. Man patinka laikyti VM standžiuosius diskus aplanke / var / lib / libvirt / images / directory, galite pasirinkti kitą katalogą. Kad ir ką pasirinktumėte, vykdykite toliau nurodytas komandas tame pačiame kataloge:
$ qemu-img sukurti -f qcow2 myVM.qcow2 8G ## Sukurkite standųjį diską naudodami
virtualaus disko dydis 8 GB
$ virt-resize --expand / dev / sda1 / var / lib / libvirt / boot / xenial-server-
„cloudimg-amd64-disk“.img
./ myVM.qcow2
  1. Kurkite „cloud-init“ failus. Tai yra vartotojo duomenų ir metaduomenų failai:
$ vim metaduomenys
instance-id: myVM
local-hostname: myVM

$ vim vartotojo duomenys
# cloud-config
vartotojai:
- vardas: šaknis
chpasswd:
sąrašas: |
šaknis: „myPassword“
pasibaigti: klaidinga

Vienintelis vartotojas, kurį čia turiu, yra pagrindinis vartotojas. Jei neminite jokio vartotojo, tada numatytasis vartotojas su vardu ubuntu susikuria. Numatytasis vartotojo vardas skirtingose ​​OS skiriasi, todėl aš rekomenduoju nurodyti vartotoją, net jei jis yra teisingas šaknis. Kitoje vartotojo duomenų failo dalyje „cloud-init“ nurodoma sukonfigūruoti slaptažodį visiems vartotojams, kuriems norite priskirti slaptažodį. Vėlgi, aš tik nustatau slaptažodį tik root vartotojui, ir jis yra „myPassword“. Įsitikinkite, kad tarp dvitaškio ir slaptažodžio eilutės nėra vietos.

Dar geriau, galite naudoti SSH raktus, užuot uždėję kietojo kodo slaptažodžius.

$ vim vartotojo duomenys
# cloud-config
vartotojai:
- vardas: šaknis
ssh_pwauth: Tiesa
ssh_authorized_keys:
- ssh-rsa
  1. Įdėkite vartotojo duomenų ir metaduomenų failus į iso.
$ genisoimage -output cidata-myVM.iso -volid cidata -joliet -rock vartotojo duomenų metaduomenys

Įsitikinkite, kad failas cidata-myVM.iso yra / var / lib / libvirt / images /

  1. Eikite į / var / lib / libvirt / images katalogą ir inicijuokite VM naudodami komandą „virt-install“: $ virt-install --import --name myVM --memory 2048 --vcpus 2 --cpu host
    --diskas myVM.qcow2, format = qcow2, bus = virtio --disk myVM-cidata.iso, prietaisas = cdrom
    --tinklo tiltas = virbr0, modelis = virtio --os-type = linux
    --os variantas = ubuntu16.04 - neautokonsolė

    Dabar galite pabandyti prisijungti prie VM naudodami komandą virsh console myVM ir prisijungdami naudodami šakninį vartotojo vardą bei atitinkamą slaptažodį. Norėdami išeiti iš konsolės, tiesiog įveskite Ctrl +]

Išvada

Debesų vaizdai, kuriuos pateikia dauguma pardavėjų, yra tikrai efektyvūs išteklių naudojimo požiūriu, be to, jie jaučiasi tikrai greitai ir greitai reaguoja. Tai, kad turime spręsti nepatogią „cloud-init“ konfigūraciją, kaip pradinį tašką, tik trukdo bendruomenei pritaikyti KVM ir susijusias technologijas.

Bendruomenė gali daug sužinoti iš to, kaip „Docker“ kuria ir siunčia savo atvaizdus. Juos tikrai lengva valdyti kaip veikiančius konteinerius ir šablonus, kuriuos lengva platinti ir naudoti.z

Pridėkite pelės gestus prie „Windows 10“ naudodami šiuos nemokamus įrankius
Pastaraisiais metais kompiuteriai ir operacinės sistemos labai išsivystė. Buvo laikas, kai vartotojai turėjo naudoti komandas naršydami per failų tvar...
Valdykite ir valdykite pelės judėjimą tarp kelių „Windows 10“ monitorių
„Dual Display Mouse Manager“ leidžia jums valdyti ir konfigūruoti pelės judėjimą tarp kelių monitorių, sulėtinant jo judėjimą šalia sienos. „Windows 1...
„WinMouse“ leidžia tinkinti ir pagerinti pelės žymeklio judėjimą „Windows“ kompiuteryje
Jei norite pagerinti numatytąsias pelės žymiklio funkcijas, naudokite nemokamą programinę įrangą „WinMouse“. Tai prideda daugiau funkcijų, kurios padė...