Cloud Init

Cloud-Init a VM

Cloud-Init a VM
Nasledujúci článok hovorí trochu o cloud-init a problémoch, ktoré má, a o tom, ako otvorený zdroj nemusí nutne znamenať slobodu. Ak chcete na konfiguráciu cloudových obrázkov použiť cloud-init, posuňte sa nadol k bodu číslo 3.

1. Čo to robí?

Zaujímalo vás, ako poskytovatelia VPS konfigurujú vaše virtuálne počítače, pridávajú vaše kľúče SSH, vytvárajú používateľov a inštalujú balíčky zakaždým, keď spustíte nový virtuálny počítač v „cloude“? Odpoveďou pre väčšinu predajcov je cloud-init. Väčšina OS a distribúcií dodáva obrazy virtuálnych diskov s príslušnými OS nainštalovanými v obraze. Inštalácia je veľmi minimálna a môže slúžiť ako šablóna pre koreňový súborový systém OS. Správcovia OS sú tiež natoľko láskaví, aby poskytovali obraz virtuálneho disku pre všetky rôzne formáty od nespracovaných obrazov diskov po qcow2 a dokonca aj vmdk, vdi a vhd.

Obrázok má tiež predinštalovaný jeden ďalší balík, a to je cloud-init. Úlohou cloud-init je inicializovať VM (zvyčajne v rámci cloudovej hostiteľskej služby, ako je DigitalOcean, AWS alebo Azure), hovorí s poskytovateľom hostenia dátový zdroj a získate informácie o konfigurácii, ktoré potom použije na konfiguráciu VM.

Informácie o konfigurácii môžu obsahovať použivateľské dáta ako sú kľúče SSH, názov hostiteľa inštancie, používatelia a heslá spolu s akýmkoľvek iným ľubovoľným príkazom, ktorý chce používateľ spustiť.

2. Problém s iniciatívou Cloud-Init

Cloud-init je vynikajúci nástroj, ak ste používateľom cloudu, ak roztáčate virtuálne počítače alebo kontajnery a váš poskytovateľ cloudu je natoľko láskavý, že vás požiada o konfiguráciu cloudu, je skvelé! Pomocou cloudového konfiguračného súboru alias vašich používateľských údajov môžete pridávať používateľov, spúšťať ľubovoľné príkazy a inštalovať balíčky hneď pri vytváraní virtuálneho počítača. Proces je možné opakovať stále dokola bez toho, aby ste opakovane vypisovali zdĺhavé príkazy. Čoskoro budete mať flotilu virtuálnych počítačov, všetky s identickou konfiguráciou.

Ak sa však pozriete trochu hlbšie a uvidíte, ako sa klobása vyrába, začnete pochybovať o niektorých aspektoch cloud-init. Napríklad predvolene je zdroj údajov ako koncový bod REST a sú v podstate napevno zakomponované do samotného balíka cloud-init. Iste, zdroj údajov môžete nastaviť úplne sami, ale tento proces je šťastný a časovo náročný. Dokumentácia k tomu je takmer úplná.

Oficiálna dokumentácia nie je nič iné ako používateľská príručka pre koncových používateľov spoliehajúcich sa na už existujúce cloudové služby. Nehovorí vám, ako môžete nastaviť svoj vlastný zdroj údajov cloud-init, ak ste pripravovaným dodávateľom. Aj dokumentácia pre koncových používateľov je zlá a odporučil by som ľuďom, aby namiesto toho používali vynikajúci tutoriál DigitalOcean.

Aby toho nebolo málo, pre používateľov s domácimi virtualizačnými laboratóriami a malým spustením VPS je ťažké ťažiť z týchto ľahkých cloudových obrázkov. Nemôžete skutočne spustiť VM z týchto šablón bez zdroja údajov typu cloud-init alebo nejakého hackerského programu, ktorý je ťažké automatizovať a škálovať. Inými slovami, nemôžete si zvoliť ani ignorovanie cloud-init, pokiaľ si nechcete vytvoriť vlastné šablóny.

Klasickým systémovým spôsobom sa vymaní zo svojich preddefinovaných rolí a začne sa trápiť so sieťami a inými časťami OS, čo používateľov odhodí. Dodáva sa v rámci systému Ubuntu 18.04 server ISO, ktorý nedáva absolútne žiadny zmysel (aspoň nie mne).

3. Riešenie pre domáce laboratóriá

Keď odchádzam bokom, stále musím pri každodennom používaní riešiť cloud-init. Mám veľmi minimálnu inštaláciu Debianu 9 na hardvéri x86_64, ktorú používam ako hypervisor KVM. Naozaj som chcel použiť obrazy diskov qcow2 dodávané systémami Ubuntu a CentOS. Tieto obrazy diskov majú v sebe predinštalovaný OS a na ich použitie stačí:

  1. Skopírujte ich ako obraz virtuálneho pevného disku vášho VM.
  2. Zmeňte veľkosť virtuálnej veľkosti koreňového súborového systému na požadovanú veľkosť (odporúča sa minimálne 10 GB). To nezvýši fyzickú veľkosť vášho VM, ale obraz disku sa môže časom zväčšovať, pretože k nemu VM pridáva ďalšie údaje.
  3. Nakonfigurujte VM pomocou cloud-init. Úplnou minimálnou požiadavkou je nastavenie hesla používateľa root alebo kľúčov SSH, ale môžete urobiť všetko, čo cloud-init dokáže.

Postupujú sa podľa týchto krokov:

  1. Stiahnite si cloudový obrázok svojho obľúbeného operačného systému a uložte ho do adresára / var / lib / libvirt / boot:
$ cd / var / lib / libvirt / boot
$ curl -O https: // cloudové obrázky.ubuntu.com / xenial / current / xenial-server-cloudimg-
amd64-disk1.obr
$ cd / var / lib / libvirt / obrázky
  1. Vytvorte prázdny virtuálny pevný disk požadovanej veľkosti a rozbaľte do neho stiahnutý obrázok qcow2. Rád ukladám pevné disky VM do adresára / var / lib / libvirt / images /, môžete si zvoliť iný adresár. Čokoľvek si vyberiete, spustite nižšie uvedené príkazy v rovnakom adresári:
$ qemu-img create -f qcow2 myVM.qcow2 8G ## Vytvorte pevný disk pomocou
veľkosť virtuálneho disku 8 GB
$ virt-resize --expand / dev / sda1 / var / lib / libvirt / boot / xenial-server-
cloudimg-amd64-disk1.obr
./ myVM.qcow2
  1. Vytvorte súbory typu cloud-init. Jedná sa o súbory používateľských údajov a metadát:
$ vim metaúdaje
instance-id: myVM
local-hostname: myVM

$ vim užívateľské údaje
# cloud-config
používatelia:
- meno: root
chpasswd:
zoznam: |
root: mojePassword
expirovať: Falošné

Jediný používateľ, ktorého tu mám, je užívateľ root. Ak neuvediete žiadneho používateľa, potom predvoleného používateľa s menom ubuntu sa vytvorí. Predvolené používateľské meno sa líši od jedného operačného systému k druhému, a preto odporúčam špecifikovať používateľa, aj keď je spravodlivý koreň. Ďalšia časť súboru s údajmi používateľov informuje cloud-init, aby nakonfiguroval heslo pre všetkých používateľov, ktorým chcete prideliť heslo. Opäť iba nastavujem heslo iba pre používateľov root a je moje heslo. Uistite sa, že medzi dvojbodkou a reťazcom hesla nie je medzera.

Lepšie je, že namiesto pevného hesla môžete používať SSH kľúče.

$ vim užívateľské údaje
# cloud-config
používatelia:
- meno: root
ssh_pwauth: Pravda
ssh_authorized_keys:
- ssh-rsa
  1. Vložte súbory s používateľskými údajmi a metadátami do iso.
$ genisoimage -output cidata-myVM.iso -volid cidata -joliet -rock používateľské údaje metaúdaje

Uistite sa, že súbor cidata-myVM.iso sa nachádza v / var / lib / libvirt / images /

  1. Prejdite do adresára / var / lib / libvirt / images a inicializujte VM pomocou príkazu virt-install: $ virt-install --import --name myVM --memory 2048 --vcpus 2 --cpu host
    --disk myVM.qcow2, format = qcow2, bus = virtio --disk myVM-cidata.iso, zariadenie = cdrom
    --sieťový most = virbr0, model = virtio --os-type = linux
    --os-variant = ubuntu16.04 --noautoconsole

    Teraz sa môžete pokúsiť prihlásiť na VM pomocou príkazu virsh console myVM a prihlásenia pomocou koreňového používateľského mena a zodpovedajúceho hesla. Ak chcete konzolu opustiť, jednoducho stlačte Ctrl +]

Záver

Cloudové obrázky, ktoré väčšina dodávateľov dodáva, sú skutočne efektívne z hľadiska využitia zdrojov a navyše sa cítia skutočne rýchlo a pohotovo. Skutočnosť, že sa musíme najskôr vysporiadať s nepríjemnou konfiguráciou cloud-init, iba bráni komunite v prijatí KVM a súvisiacich technológií.

Komunita sa môže veľa naučiť z toho, ako Docker zostavuje a dodáva svoje obrázky. Spravujú sa skutočne ľahko ako spustené kontajnery a šablóny, ktoré sa ľahko distribuujú a používajú.z

Hry Battle For Wesnoth 1.13.6 Vývoj uvoľnený
Battle For Wesnoth 1.13.6 Vývoj uvoľnený
Battle For Wesnoth 1.13.6 vydané minulý mesiac, je šiestym vývojovým vydaním v 1.13.séria x a prináša množstvo vylepšení, najmä používateľského rozhra...
Hry Ako nainštalovať League Of Legends na Ubuntu 14.04
Ako nainštalovať League Of Legends na Ubuntu 14.04
Ak ste fanúšikom League of Legends, potom je to pre vás príležitosť otestovať spustenie League of Legends. Upozorňujeme, že program PlayOnLinux podpor...
Hry Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
Nainštalujte si najnovšiu strategickú hru OpenRA na Ubuntu Linux
OpenRA je herný engine Libre / Free Real Time Strategy, ktorý obnovuje rané hry z Westwoodu, ako napríklad klasické Command & Conquer: Red Alert. Dist...