Virtual Machine Scale Set długo nie były obiektem mojego zainteresowania. Jako fan wszystkiego co PaaS, VMSS wydawały się niczym innym jak prostym zestawem maszyn. Jednak po dłuższej chwili zabawy i przy wykorzystaniu Visual Studio Team Systems udało się z nich wycisnąć więcej. Zobacz sam!
Jaki postawiłem sobie cel:
- Powołać z skryptu zestaw maszyn opartych o Ubuntu
- Zautomatyzować proces instalacji aplikacji na VMSS
- Zautomatyzować proces aktualizacji aplikacji na zestawie maszyn poprzez załadowanie nowego „build’a” i uruchomienie nowej wersji
- Zautomatyzować proces skalowania „w górę” i „w dół”
Efekt, jaki chciałem osiągnąć opisał PM grupy produktowej od VMSS, chciałem wszystko jednak sprawdzić sam, wykorzystują kod aplikacji pokazanej na tej stronie.
A więc jak powołać zestaw maszyn ze skryptu?
Wystarczy Ci polecenie az vmss create ale… Jeśli chcesz zrealizować punkt 2 i 3, nie możesz do tego celu wykorzystać obrazu systemu wprost z Azure, musi to być tzw. Custom Image czyli Twój własny obraz. Ale jak to???
W czasie kroków 2 i 3 będziemy potrzebowali dostać się do tego obrazu i go zmodyfikować. Gdyby to był obraz wprost z Azure, nie miałbyś takiej możliwości. I dlatego tak to:)
Przejdźmy do konkretów. Zaloguj się na portal i odtwórz konsolę CLI.
- Stwórz prostą maszynę wirtualną z system, z którego później będziesz korzystał. Ja korzystam z Ubuntu 16.04 LTS. Po stworzeniu zaloguj się do maszyny. Celowo korzystam z dysków nie zarządzanych, przy tych zarządzanych nie odniosłem sukcesu ale wrócę i do tego. Dyski zarządzane przy VMSS dają dużo więcej możliwości.
az vm create -n imageVM03 -l westeurope -g imageRG --size Standard_D1 --use-unmanaged-disk --admin-username mifurm --admin-password <twoje hasło> --image UbuntuLTS --storage-sku Standard_LRS ssh mifurm@52.166.63.169
- Aby z takiej maszyny stworzyć obraz, musimy ją pozbawić kilku informacji i profilu użytkownika. Wystarczy jedno polecenie jak niżej. Kiedy proces się skończy, wyjdź z maszyny i „połóż” ją.
sudo waagent -deprovision+user -force az vm deallocate -g imageRG -n imageVM03
- Połowa drogi za Tobą. Teraz musisz powiedzieć „chmurce”, że dysk maszyny ma być „zgeneralizowany” i znowu tylko jedno polecenie przed Tobą.
az vm generalize -g imageRG -n imageVM03
- Właśnie tyle trzeba, by mieć swój „Custom Image”. Ponieważ tutaj z premedytacją korzystam z dysków niezarządzanych („unmanaged disks”), musisz znaleźć konto składowania danych, gdzie leży dysk Twojej maszyny i zapisać sobie jego adres URL.
- Już czas na to, by stworzyć swój VMSS z własnego obrazu. Polecenie nie jest specjalnie skomplikowane. Sam zobacz.
az vmss create -n chat-vmss-dev -l westeurope -g chat-vmss-dev-rg --use-unmanaged-disk --instance-count 1 --image <url do Twojego obrazu dysku> --os-type linux --authentication-type password --admin-username mifurm --admin-password <Twoje hasło>
- I już. Masz swój VMSS utworzony z Twojego obrazu, który ma dostępną opcję CI/CD. Jeśli stworzysz VMSS z obrazu dostępnego wprost z Azure ta opcja nie będzie dostępna.
Proste? Proste. Jeśli masz ochotę, może wybrać opcję Configure i skonfigurować automat. W kolejnych wpisach, pokażę jak to zrobić krok po kroku!