Przejdź do głównej zawartości

7 postów z tagiem "powershell"

Wyświetl wszystkie tagi

Przyspieszenie pracy nad tagowaniem zasobów za pomocą PowerShell - Tag raport Microsoft Azure

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

Kiedyś przygotowałem ten skrypt, żeby szybko móc otagować wiele zasobów wdrożonych na platformie Microsoft Azure. Jest kilka sposobów, aby to zrobić szybko i prosto; starałem się przygotować rozwiązanie uniwersalne, łatwe i bezpieczne w użyciu.

Dlatego postanowiłem zrobić jeden skrypt, który generuje wszystkie zasoby do pliku CSV. Drugi skrypt, na podstawie pliku CSV, pobiera dane zasobów i nadpisuje je na platformie.

Skrypty są dostępne na GitHub:

Opis skryptów:

  • GetAllTags.ps1 - generuje dwa pliki CSV: jeden dla Resource Group, a drugi dla Resources. Jest to istotne, ponieważ grupy i zasoby są rozdzielone, co pozwala tagować je niezależnie, bez wyszukiwania typów zasobów.
  • SetTagsResourceGroups.ps1 - skrypt, który pobiera dane z pliku CSV zawierającego spis Resource Group z tagami do wdrożenia.
  • SetTagsResources.ps1 - skrypt, który pobiera dane z pliku CSV, w którym zapisane są zasoby z tagami do wdrożenia.

Wysłanie żądania API z PowerShell do Azure DevOps

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

Często stajemy przed wyzwaniem zintegrowania ze sobą wielu narzędzi. Jeżeli stosujemy PowerShell w celu automatyzacji swojej infrastruktury bądź budowy prostych skryptów, może nam się przydać zastosowanie wywołania żądania API za pomocą PowerShell.

Poniższy przykład zaprezentuje użycie wysłania żądania za pomocą API do Azure DevOps w celu dodania puli agentowej.

Referencje API do Azure DevOps są dostępne tutaj:

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: