Mākonis Init

Cloud-Init un VM

Cloud-Init un VM
Šajā rakstā ir mazliet runāts par mākoņa iniciēšanu un tā problēmām, kā arī to, kā atvērtais kods ne vienmēr nozīmē brīvību. Ja mākoņa attēlu konfigurēšanai vēlaties izmantot mākonis-init, vienkārši ritiniet uz leju līdz 3. punktam.

1. Ko tas dara?

Kādreiz esat domājis, kā VPS pakalpojumu sniedzēji konfigurē jūsu VM, pievieno SSH atslēgas, izveido lietotājus un instalē paketes katru reizi, kad “mākonī” izveidojat jaunu VM? Nu, atbilde lielākajai daļai pārdevēju ir mākonis-init. Lielākā daļa operētājsistēmu un izplatītāju piegādā virtuālā diska attēlus ar attiecīgajām OS, kas ir instalētas attēlā. Instalācija ir ļoti minimāla un var kalpot kā veidne OS sakņu failu sistēmai. OS uzturētāji arī ir pietiekami laipni, lai nodrošinātu virtuālo diska attēlu visiem dažādiem formātiem, sākot no neapstrādātiem diska attēliem līdz qcow2 un pat vmdk, vdi un vhd.

Attēlā ir arī iepriekš instalēta viena papildu pakete, un tas ir mākonis-init. Tas ir mākoņa iniciācijas uzdevums palaist VM (parasti mākoņa mitināšanas pakalpojumā, piemēram, DigitalOcean, AWS vai Azure) runā ar mitināšanas pakalpojumu sniedzēja datu avots un iegūstiet konfigurācijas informāciju, kuru tā pēc tam izmanto VM konfigurēšanai.

Konfigurācijas informācija var ietvert lietotāja dati piemēram, SSH atslēgas, instances resursdatora nosaukums, lietotāji un paroles kopā ar jebkuru citu patvaļīgu komandu, kuru lietotājs vēlas izpildīt.

2. Problēma ar Cloud-Init

Cloud-init ir lielisks rīks, ja esat mākoņa lietotājs, ja vērpjat VM vai konteinerus un jūsu mākoņa nodrošinātājs ir laipns lūgt jums mākoņa konfigurāciju, tas ir lieliski! Izmantojot mākoņa konfigurācijas failu, kas ir arī jūsu lietotāja dati, varat pievienot lietotājus, palaist patvaļīgas komandas, instalēt paketes tieši VM izveides laikā. Procesu var atkārtot vēl un vēl, bez garlaicīgām komandām, kas tiek ierakstītas vēl un vēl. Drīz jums ir VM parks, visiem ar identisku konfigurāciju.

Tomēr, ja jūs rakt mazliet dziļāk un redzēt, kā tiek pagatavota desa, jūs sāksit apšaubīt dažus mākoņa iniciācijas aspektus. Piemēram, pēc noklusējuma datu avots ir kā REST galapunkts, un tie būtībā ir kodēti pašā mākoņa-init paketē. Protams, jūs pats varat iestatīt datu avotu, taču process ir sarežģīts un aizņem daudz laika. Dokumentācija, lai to izdarītu, nav pieejama.

Oficiālā dokumentācija ir tikai lietotāja rokasgrāmata galalietotājiem, kuri paļaujas uz iepriekš pastāvošajiem mākoņpakalpojumiem. Tas nenorāda, kā jūs varat iestatīt savu mākoņa-init datu avotu, ja esat gaidāms pārdevējs. Pat gala lietotāja dokumentācija ir slikta, un es ieteiktu cilvēkiem tā vietā izmantot DigitalOcean lielisko apmācību.

Vēl sliktāk ir tas, ka lietotājiem ar mājas virtualizācijas laboratorijām un nelielu VPS palaišanu ir grūti gūt labumu no šiem vieglajiem mākoņu attēliem. Jūs tiešām nevarat sākt VM no šīm veidnēm bez mākoņa iniciēšanas datu avota vai kāda hakeru, kuru ir grūti automatizēt un mērogot. Citiem vārdiem sakot, jūs pat nevarat izvēlēties ignorēt mākonis-init, ja vien nevēlaties izveidot savas veidnes.

Klasiskā sistēmas veidā tā atbrīvojas no iepriekš definētajām lomām un sāk jucināties ar tīkliem un citām OS daļām, kas izstumj lietotājus. Tas tiek komplektēts Ubuntu 18.04 servera ISO, kam nav jēgas (vismaz ne man).

3. Mājas laboratoriju risinājums

Neskatoties uz visām malām, man joprojām ir jācīnās ar mākoņa iniciāciju ikdienas lietojumā. Man ir ļoti minimāla Debian 9 instalācija aparatūrā x86_64, kuru es izmantoju kā KVM hipervizoru. Es patiešām gribēju izmantot qcow2 diska attēlus, kurus piegādā Ubuntu un CentOS. Šajos diska attēlos ir iepriekš instalēta OS, un, lai tos izmantotu, jums vienkārši jāveic:

  1. Kopējiet tos kā sava virtuālā virtuālā cietā diska attēlu.
  2. Mainiet saknes failu sistēmas virtuālā izmēra lielumu līdz vēlamajam izmēram (ieteicams vismaz 10 GB). Tas nepalielinās jūsu VM fizisko izmēru, bet diska attēls laika gaitā var pieaugt, jo VM tam pievieno vairāk datu.
  3. Konfigurējiet VM, izmantojot mākonis-init. Minimālā prasība ir iestatīt root lietotāja paroli vai SSH atslēgas, taču jūs varat darīt diezgan visu, ko mākonis-init spēj.

Tiek veiktas šādas darbības:

  1. Lejupielādējiet iecienītās OS mākoņa attēlu un saglabājiet to direktorijā / var / lib / libvirt / boot:
$ cd / var / lib / libvirt / boot
$ curl -O https: // mākonis-attēli.ubuntu.com / xenial / current / xenial-server-cloudimg-
amd64-disks1.img
$ cd / var / lib / libvirt / images
  1. Izveidojiet tukšu vajadzīgā izmēra virtuālo cieto disku un paplašiniet tajā lejupielādēto qcow2 attēlu. Man patīk saglabāt VM cietos diskus mapē / var / lib / libvirt / images / direktorijā, jūs varat izvēlēties citu direktoriju. Lai ko jūs izvēlētos, palaidiet tālāk norādītās komandas tajā pašā direktorijā:
$ qemu-img izveidot -f qcow2 myVM.qcow2 8G ## Izveidojiet cieto disku ar
virtuālā diska izmērs 8 GB
$ virt-resize --expand / dev / sda1 / var / lib / libvirt / boot / xenial-server-
cloudimg-amd64-disk1.img
./ myVM.qcow2
  1. Izveidojiet mākonis-init failus. Tie ir lietotāja datu un metadatu faili:
$ vim metadati
instance-id: myVM
vietējais-resursdatora nosaukums: myVM

$ vim lietotāja dati
# cloud-config
lietotāji:
- nosaukums: sakne
chpasswd:
saraksts: |
sakne: myPassword
derīguma termiņš: Nepatiesa

Vienīgais lietotājs, kas man šeit ir, ir root lietotājs. Ja nepieminat nevienu lietotāju, tad noklusējuma lietotājs ar vārdu ubuntu tiek izveidots. Noklusējuma lietotājvārds dažādās OS atšķiras, tāpēc iesaku norādīt lietotāju, pat ja tas ir tikai sakne. Nākamā lietotāja datu faila daļa liek mākonim init konfigurēt paroli visiem lietotājiem, kuriem vēlaties piešķirt paroli. Es atkal iestatu tikai root lietotāja paroli, un tā tas ir myPassword. Pārliecinieties, ka starp kolu un paroles virkni nav atstarpes.

Vēl labāk, jūs varat izmantot SSH taustiņus, nevis stingri kodētas paroles.

$ vim lietotāja dati
# cloud-config
lietotāji:
- nosaukums: sakne
ssh_pwauth: Patiesi
ssh_authorized_keys:
- ssh-rsa
  1. Iegult lietotāja datu un metadatu failus iso.
$ genisoimage -output cidata-myVM.iso -volid cidata -joliet -rock lietotāja datu metadati

Pārliecinieties, vai fails cidata-myVM.iso atrodas mapē / var / lib / libvirt / images /

  1. Dodieties uz / var / lib / libvirt / images direktoriju un inicializējiet VM ar virt-install komandu: $ virt-install --import --name myVM - memory 2048 --vcpus 2 --cpu host
    --disks myVM.qcow2, format = qcow2, bus = virtio - disks myVM-cidata.iso, ierīce = cdrom
    --tīkla tilts = virbr0, modelis = virtio --os-type = linux
    --os-variants = ubuntu16.04 - neautokonsole

    Tagad varat mēģināt pieteikties VM, izmantojot komandu virsh console myVM un pieteikšanās laikā izmantojot saknes lietotājvārdu un tam atbilstošo paroli. Lai izietu no konsoles, vienkārši ierakstiet Ctrl +]

Secinājums

Mākoņa attēli, kurus lielākā daļa pārdevēju piegādā, ir patiešām efektīvi resursu izmantošanas ziņā, un tie arī jūtas ļoti ātri un atsaucīgi. Fakts, ka mums kā sākuma punkts jārisina neērta mākoņa iniciācijas konfigurācija, tikai kavē kopienas KVM un ar to saistīto tehnoloģiju pieņemšanu.

Kopiena var daudz mācīties no tā, kā Docker veido un nosūta savus attēlus. Tos ir ļoti viegli pārvaldīt gan kā darbīgus konteinerus, gan kā veidnes, kuras ir viegli izplatīt un izmantot.z

HD Remastered spēles operētājsistēmai Linux, kurām nekad agrāk nebija Linux laidiena
Daudzi spēļu izstrādātāji un izdevēji nāk klajā ar veco spēļu HD remaster, lai pagarinātu franšīzes darbības laiku. Lūdzu, faniem, kas pieprasa saderī...
Kā izmantot AutoKey, lai automatizētu Linux spēles
AutoKey ir darbvirsmas automatizācijas lietderība operētājsistēmām Linux un X11, kas ieprogrammēta Python 3, GTK un Qt. Izmantojot skriptu un MACRO fu...
Kā parādīt FPS skaitītāju Linux spēlēs
Linux spēles ieguva lielu impulsu, kad Valve 2012. gadā paziņoja par Linux atbalstu Steam klientam un viņu spēlēm. Kopš tā laika daudzas AAA un indie ...