Jak si připravit vlastní image v Azure přímo v portálu

Nastartovat základní image v Azure, přidat si tam co potřebuji a následně z toho udělat můj vlastní custom image a používat při tvorbě dalších VM - to je něco, co je samozřejmě v PowerShell a CLI možné od cloudové nepaměti. Všimli jste si ale, že tento proces můžete také kompletně dělat v GUI? Podívejme se jak.

Připravíme si image

Nejprve jsem si udělal resource group s názvem images a v té jsem klasickým postupem spustil dvě VM ze základního Azure image - jedno s Windows, jednu s Linuxem. Jak už určitě víte základní image neobsahuje žádné natvrdo nastavené přihlašovací údaje - při vytváření VM specifikujete jméno a heslo (případně SSH klíč u Linuxu), takže cloud nám uživatele založí, udělá mu home adresář apod. To je důležitá vlastnost, protože z bezpečnostního hlediska není dobré mít v image nějaké existující credentials. Tuto funkci budeme chtít zachovat, ale o tom později.

Moje resource group aktuálně vypadá takhle:

Ve svém Linux stroji udělám co potřebuji ve svém vlastním image mít. V mé ukázce to bude jednoduché založení nějakého souboru.

tomas@mujlinux:~$ sudo touch /opt/byl-jsem-tu
tomas@mujlinux:~$ ls /opt/
byl-jsem-tu

Něco podobného udělám ve Windows.

Generalizace image a jeho zachycení

Pokud bychom teď zachytili image tak jak ho máme, zůstanou v něm například naše přihlašovací údaje a některé další nastavení (například cache DHCP adresy). To nechci (a navíc nenastartuje). Rád bych, aby se image choval stejně jako ty základní, tedy nic takového ať tam není a při deploymentu si určíme jiné jméno a heslo. Potřebujeme tedy image tzv. generalizovat.

V Linuxu zadejte tento příkaz:

tomas@mujlinux:~$ sudo waagent -deprovision+tomas
WARNING! The waagent service will be stopped.
WARNING! Cached DHCP leases will be deleted.
WARNING! root password will be disabled. You will not be able to login as root.
WARNING! /etc/resolvconf/resolv.conf.d/tail and /etc/resolvconf/resolv.conf.d/original will be deleted.
Do you want to proceed (y/n)y

Teď už se strojem nic nedělejte a v GUI ho vypněte.

Stejný postup použijeme v případě Windows. V cmd použijte spusťte tuto malou aplikaci.

cd %windir%\system32\sysprep
sysprep.exe

Vyplňte tak jak to mám já.

Stejně jako u Linuxu proveďte zastavení (dealokaci) v GUI.

Přistupme k zachycení našeho diskového obrazu.

Pojmenujte si tento image a uložíme si ho do nové resource group, kde si budeme naše vlastní image schovávat. VM nechte zničit - protože je generalizovaná, už ji stejně nemůžeme používat.

Opakujte postup i pro druhou mašinu a následně můžeme vymazat celou resource group images se zbytky našich strojů (síť a tak).

Deployment VM z mých image

Naše vlastní diskové obrazy najdeme v resource group.

Na image můžeme kliknout a dát Create VM.

To nás hodí do průvodce, kterého už jistě dobře znáte.

Managed image z našeho vlastního VHD

To s čím jsme v tomto článku pracovali je tzv. managed image. Nemusíme starat o nějakou storage, ve které je uložen, nevidíme konkrétní VHD soubor. Existuje samozřejmě možnost unmanaged image, kdy jde o VHD soubor v Azure storage. To použijete například v okamžiku, kdy si image připravíte ve svém vlastním prostředí, nainstalujete do něj potřebného agenta (například waagent v Linuxu) a uploadnete do Azure Storage. Pokud ale chcete, aby ho uživatelé mohli pohodlně používat bez PowerShellu, CLI či ARM šablon, udělejme z něj managed image.

Najděte objekt Image v marketplace.

Najdeme si VHD v naší storage a managed image jednoduše vytvoříme.

Po chvilce ho najdeme v našem katalogu.

 

Práce s vlastními image v Azure před pár lety byla pro ty, kteří vládli své klávesnici v prostředí PowerShell, CLI či ARM šablon. Dnes ale můžete vlastní image vytvářet a používat jednoduše přímo z GUI. Je to snadné.

 



GitHub Codespaces - vývojářské prostředí od stroje po knihovny a kompilátor, které naběhne za 15 vteřin Compute
Microsoft Dev Box - virtuální pecko pro vývojáře a kdy použít vs. GitHub Codespaces, Windows365 nebo Azure Virtual Desktop Compute
ARM64 v Azure a jak používat s Kubernetes, Terraform a GitHub Actions a multi-arch image Compute
On-demand capacity reservation vs. reserved instances v Azure - kdy co a proč nejčastěji oboje Compute
Confidential Computing - zabezpečení dat při jejich používání, kdy ani root systému nemá šanci je rozlousknout Compute