Przejdź do głównej zawartości

Jeden post z tagiem "walidacja"

Wyświetl wszystkie tagi

IaC control via PowerShell module for ARM templates

· 3 min aby przeczytać
Piotr Rogala
MVP Azure & owner JustCloud.pl

Debug natywnych szablonów ARM jest ciężkim procesem dla wielu osób. Utrzymanie infrastruktury jako kod również nie jest prostą sprawą, dlatego często używa się Terraform-a dla wdrożeń w Microsoft Azure.

Szablony ARM nie posiadają pliku stanu, jak to jest w Terraform, dlatego często spotykam się z opinią, że ARM-y są beznadziejne. Po wdrożeniu trudno jest utrzymać stały rozwój infrastruktury z tego samego szablonu oraz często problemem jest przewidywalność, co się stanie z obiektami, które już masz. Nie będę się rozwodził, co lepsze, co gorsze, ponieważ wiele zależy od naszej wiedzy, podejścia, problemu lub zlecenia, które wykonujemy. Jako inżynier nie przywiązuję się do rozwiązań i uważam, że do każdego problemu należy podchodzić indywidualnie. Moim zdaniem najlepsze rozwiązania to rozwiązania natywne, nie wymagające tworzenia koła na nowo. Stąd zachęcam do pisania szablonów ARM dla Azure.

Jako pomoc w tworzeniu infrastruktury jako kod (IaC) w Microsoft Azure polecam zapoznać się z modułem PowerShell: ARMHelper

https://www.powershellgallery.com/packages/ARMHelper/0.6.2

Za pomocą komendy Test-ARMExistingResource możemy zbudować polecenie, które sprawdzi nam wskazany szablon w kontekście deployowanych zasobów w Azure i wyświetli, co się stanie. Przykład poniżej przedstawia stworzoną resource group bez zasobów:

Użyłem szablonu z mojego repo: https://github.com/RogalaPiotr/JustCloudPublic/tree/master/simple-vm-shutdown-on-time
Wykonuję kolejno komendy: