Skip to main content

7 posts tagged with "powershell"

View All Tags

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

· 2 min read
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 użycia 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: 

https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/pools/add?view=azure-devops-rest-5.1

Poniższy przykładowy skrypt możemy rozbudować dla innych operacji stosując odpowiedni uri dla potrzebnej operacji z powyższego linku.

Na początku definiujemy zmienne:

IaC control via PowerShell module for ARM templates

· 2 min read
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ę Terraforma 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ą beznadziejnie. 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ązuje 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 z deploy'owanych zasobów w Azure i wyświetli co się stanie. Przykład poniżej przedstawia stworzoną resource groupe bez zasobów:

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

Delete VM and create again based on .vhd

· 4 min read
Piotr Rogala
MVP Azure & owner JustCloud.pl

W tej części tytuł jest angielski, ponieważ nie stosuje spolszczeń dla technicznego języka. Ten post jest spowodowany tym co Microsoft niestety przestał wspierać w Azure a mianowicie breaklease dla blobów podpiętych do wirtualnej maszyny. Było mi to potrzebne do jednego zadania, dlatego byłem zmuszony zrobić coś innego. Mianowicie potrzebne mi było usunięcie maszyny i stworzenie jej bazując na istniejących vhd'kach w innym kontenerze dodatkowo moje założenie wymagało powershell'a. W skrócie odtworzenie maszyny z jakiegoś stanu, który jest przechowywany jako kopia dysków wirtualnej maszyny. Myślę, że są osoby, którym się to przyda.

Krótki opis:

  1. Podajemy nazwę maszyny lub listę maszyn z naszej subskrypcji.
  2. Na podstawie nazwy maszyny znajdujemy resource groupe.
  3. Wyłączamy maszynę.
  4. Na podstawie RG i nazwy VM sprawdzamy jakie dyski są podpięte do maszyny.
  5. Znajdujemy sobie context dla dysków.
  6. Mając wszystkie dane przechodzimy do usuwania maszyny.
  7. Usuwany obecny vhd z OS.
  8. Kopiujemy w jego miejsce wcześniej skopiowany vhd z kontenera "images".
  9. Przeprowadzamy dalej tą samą operacje dla wszystkich podpiętych dysków data.
  10. Na podstawie wszystkich zebranych wcześniej danych tworzymy wirtualną maszynę.

Profil logowania do Azure

· 2 min read
Piotr Rogala
MVP Azure & owner JustCloud.pl

Spotkałem się ostatnio z bardzo ciekawym feature’m związanym z zapisaniem swojego profilu logowania do Azure. W skrócie opisując jeśli używasz często PowerShella, a dodatkowo masz MFA zapewne wiesz jak denerwujące jest ciągłe pytanie o login i hasło. Kiedyś pojawiła się opcja związana z zapisaniem credential’i do pliku a następnie za pomocą skryptu można było sobie zautomatyzować proces logowania. Aczkolwiek przestało to działać po wprowadzeniu ARM'a itd. Aby nie rozwodzić się nad tym przedstawię Ci jak możemy sobie ułatwić życie i pracę ze skryptami, ale o tym później. Na początku proszę Cię o wykonanie aktualizacji PowerShell Azure ponieważ poniższe polecenia są dostępne od wersji 3.8.0 oraz 4.2.0 w celu aktualizacji możesz użyć Web Installer’a z linku poniżej.

Dokumentacja: Add-AzureRmAccount: https://docs.microsoft.com/en-us/powershell/module/azurerm.profile/add-azurermaccount?view=azurermps-3.8.0 Save-AzureRmContext: https://docs.microsoft.com/en-us/powershell/module/azurerm.profile/save-azurermcontext?view=azurermps-3.8.0 Import-AzureRmContext: https://docs.microsoft.com/en-us/powershell/module/azurerm.profile/import-azurermcontext?view=azurermps-4.2.0 WebInstaller: https://www.microsoft.com/web/downloads/platform.aspx