Cloud Init

Cloud-Init in VM

Cloud-Init in VM
Naslednji članek govori o oblaku init in težavah, ki jih ima, ter o tem, kako odprtokodna koda ne pomeni nujno svobode. Če želite za konfiguracijo slik v oblaku uporabiti oblak init, se le pomaknite navzdol do točke 3.

1. Kaj počne?

Ste se kdaj vprašali, kako ponudniki VPS konfigurirajo vaše VM-je, dodajo SSH-ključe, ustvarjajo uporabnike in namestijo pakete vsakič, ko v "oblaku" zavrtite nov VM? No, odgovor za večino prodajalcev je cloud-init. Večina OS in distribucij pošilja slike navideznega diska s svojimi operacijskimi sistemi, nameščenimi v sliki. Namestitev je zelo minimalna in lahko služi kot predloga za korenski datotečni sistem OS. Vzdrževalci OS so tudi dovolj prijazni, da zagotovijo navidezno diskovno sliko za vse različne formate, od surovih slik diska do qcow2 in celo vmdk, vdi in vhd.

Slika ima tudi vnaprej nameščen en dodaten paket, in sicer cloud-init. Naloga oblaka je, da inicializirajte VM (običajno v storitvi gostovanja v oblaku, kot so DigitalOcean, AWS ali Azure), se pogovorite s ponudnikom gostovanja vir podatkov in dobite informacije o konfiguraciji, ki jih nato uporabi za konfiguriranje VM.

Informacije o konfiguraciji lahko vključujejo uporabniške podatke kot so SSH ključi, ime gostitelja primerka, uporabniki in gesla ter kateri koli drug poljuben ukaz, ki ga uporabnik želi zagnati.

2. Težava z Cloud-Init

Cloud-init je odlično orodje, če uporabljate oblak, če vrtite VM-je ali kontejnerje in vas ponudnik v oblaku prijazno prosi za konfiguracijo v oblaku, je super! Z datoteko za konfiguracijo v oblaku, ki je tudi vaš uporabniški podatek, lahko dodajate uporabnike, izvajate poljubne ukaze, nameščate pakete takoj, ko ustvarjate VM. Postopek lahko ponavljamo znova in znova, ne da bi se vedno znova vnašali dolgočasni ukazi. Kmalu imate floto VM-jev, vsi z enako konfiguracijo.

Če pa se nekoliko poglobite in vidite, kako nastaja klobasa, boste začeli dvomiti v nekatere vidike oblaka init. Tako je na primer privzeto vir podatkov kot končna točka REST in je v bistvu trdo kodiran v sam paket cloud-init. Seveda lahko vir podatkov nastavite sami, vendar je postopek neroden in dolgotrajen. Dokumentacije za to skorajda ni.

Uradna dokumentacija ni nič drugega kot uporabniški priročnik za končne uporabnike, ki se zanašajo na že obstoječe storitve v oblaku. Ne pove vam, kako lahko nastavite svoj vir podatkov v oblaku, če ste prihajajoči prodajalec. Tudi dokumentacija za končnega uporabnika je slaba in priporočam ljudem, ki namesto tega uporabljajo odlično vadnico DigitalOcean.

Da bi stvari še poslabšale, uporabniki laboratorijev za virtualizacijo doma in majhnega zagona VPS težko izkoristijo te lahke slike v oblaku. V resnici ne morete zagnati VM iz teh predlog brez vira podatkov v oblaku ali nekega hekerja, ki ga je težko avtomatizirati in prilagoditi. Z drugimi besedami, sploh ne morete prezreti vklopa oblaka, razen če želite izdelati svoje predloge.

Na klasičen sistemski način se osvobodi svojih vnaprej določenih vlog in se začne zapletati z mreženjem in drugimi deli OS-ja, kar odvrne uporabnike. V paketu je Ubuntu 18.04 strežnik ISO, ki nima nobenega smisla (vsaj zame ne).

3. Rešitev za domače laboratorije

Če izvzamemo vse, se moram v svoji vsakdanji uporabi še vedno ukvarjati z oblaki. Imam zelo minimalno namestitev Debiana 9 na strojni opremi x86_64, ki jo uporabljam kot hipervizor KVM. Zelo sem si želel uporabiti slike diska qcow2, ki jih pošiljata Ubuntu in CentOS. V teh slikah diskov je vnaprej nameščen operacijski sistem, za njihovo uporabo pa morate preprosto:

  1. Kopirajte jih kot navidezno sliko trdega diska VM.
  2. Prilagodite navidezno velikost korenskega datotečnega sistema na želeno velikost (priporočeno je vsaj 10 GB). To ne bo povečalo fizične velikosti vašega VM-ja, vendar se slika diska lahko sčasoma poveča, saj ji VM doda več podatkov.
  3. Konfigurirajte VM s pomočjo oblaka-init. Vsaj minimalna zahteva je, da nastavite geslo korenskega uporabnika ali SSH ključe, vendar lahko storite skoraj vse, kar je mogoče v oblaku-init.

Sledijo naslednji koraki:

  1. Prenesite sliko v oblaku svojega najljubšega OS in jo shranite v direktorij / var / lib / libvirt / boot:
$ cd / var / lib / libvirt / boot
$ curl -O https: // cloud-images.ubuntu.com / xenial / current / xenial-server-cloudimg-
amd64-disk1.img
$ cd / var / lib / libvirt / images
  1. Ustvarite prazen navidezni trdi disk želene velikosti in vanj razširite preneseno sliko qcow2. Trde diske VM rad shranjujem v imeniku / var / lib / libvirt / images /, lahko izberete drug imenik. Karkoli izberete, zaženite spodnje ukaze v istem imeniku:
$ qemu-img create -f qcow2 myVM.qcow2 8G ## Ustvari trdi disk z
velikost navideznega diska 8 GB
$ virt-resize --expand / dev / sda1 / var / lib / libvirt / boot / xenial-server-
cloudimg-amd64-disk1.img
./ myVM.qcow2
  1. Ustvarite datoteke v oblaku. To so uporabniške in metapodatkovne datoteke:
$ vim metapodatki
primer-id: myVM
ime lokalnega gostitelja: myVM

$ vim uporabniški podatki
# cloud-config
uporabniki:
- ime: root
chpasswd:
seznam: |
root: myPassword
poteče: napačno

Edini uporabnik, ki ga imam tukaj, je korenski uporabnik. Če ne omenjate nobenega uporabnika, je privzeti uporabnik z imenom ubuntu se ustvari. Privzeto uporabniško ime se razlikuje od enega do drugega OS, zato priporočam, da navedete uporabnika, tudi če je pravičen koren. Naslednji del datoteke z uporabniškimi podatki pove cloud-initu, naj nastavi geslo za vse uporabnike, ki jim želite dodeliti geslo. Še enkrat, samo nastavljam geslo za korenskega uporabnika in tudi je myPassword. Prepričajte se, da med dvopičjem in nizom gesla ni prostora.

Še bolje pa je, da lahko namesto trdo kodiranih gesel uporabite SSH-ključe.

$ vim uporabniški podatki
# cloud-config
uporabniki:
- ime: root
ssh_pwauth: Resnično
ssh_authorized_keys:
- ssh-rsa
  1. Datoteke z uporabniškimi podatki in metapodatki vdelajte v iso.
$ genisoimage -izhod cidata-myVM.meta-podatki uporabniških podatkov iso -volid cidata -joliet -rock

Prepričajte se, da je datoteka cidata-myVM.iso se nahaja v / var / lib / libvirt / images /

  1. Pojdite v imenik / var / lib / libvirt / images in inicializirajte VM z ukazom virt-install: $ virt-install --import --name myVM --memory 2048 --vcpus 2 --cpu host
    --disk myVM.qcow2, format = qcow2, bus = virtio --disk myVM-cidata.iso, naprava = cdrom
    --omrežni most = virbr0, model = virtio --os-type = linux
    --os-variant = ubuntu16.04 --noautoconsole

    Zdaj se lahko poskusite prijaviti v VM z ukazom virsh console myVM in za prijavo s korenskim uporabniškim imenom in ustreznim geslom. Če želite zapreti konzolo, preprosto vnesite Ctrl +]

Zaključek

Slike v oblaku, ki jih dobi večina prodajalcev, so resnično učinkovite v smislu izkoriščanja virov in se počutijo zelo hitro in odzivne. Dejstvo, da se moramo kot izhodišče spoprijeti z neprijetno konfiguracijo oblaka, samo ovira skupnost pri sprejemanju KVM in sorodnih tehnologij.

Skupnost se lahko veliko nauči iz načina, kako Docker gradi in pošilja svoje slike. Z njimi je res enostavno upravljati tako tekoče vsebnike kot predloge, ki jih je enostavno distribuirati in uporabljati.z

Kazalec skoči ali se naključno premika med tipkanjem v sistemu Windows 10
Če ugotovite, da kazalec miške med tipkanjem v prenosnem računalniku ali računalniku Windows samodejno, naključno preskakuje ali se premika sam, vam l...
Kako obrniti smer drsenja miške in sledilne ploščice v sistemu Windows 10
Miška in Sledilna ploščicaRačunalništvo ni samo enostavno, ampak bolj učinkovito in manj zamudno. Življenja brez teh naprav si ne moremo predstavljati...
Kako spremeniti miškin kazalec in velikost, barvo in shemo kazalca v sistemu Windows 10
Kazalec miške in kazalec v operacijskem sistemu Windows 10 sta zelo pomembna vidika operacijskega sistema. To lahko rečemo tudi za druge operacijske s...