Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



01.12.2022

Wyższy poziom programowania

Progress oferuje nowe narzędzia programistyczne: Progress Telerik, Progress Kendo UI i...
01.12.2022

Łączność w podróży

VMware SD-WAN VMware zaprezentował rozwiązanie SD-WAN nowej generacji, w tym nowego...
01.12.2022

Bezpieczne e-maile

Nowa aplikacja firmy Cypherdog Security Inc. umożliwia bezpieczną wymianę maili i...
01.12.2022

Pierwszy w branży

Schneider Electric wprowadza na rynek APC Smart-UPS Ultra. To pierwszy w branży...
01.12.2022

Przełączniki 10G dla MŚP

Nowe urządzenia to przełączniki 10G kompatybilne z systemem Omada SDN.
01.12.2022

Zarządzanie danymi

Firma Synology wprowadziła na rynek czterokieszeniowy DiskStation DS923+.
01.12.2022

Nowatorski system chłodzenia

OVHcloud zaprezentował nową, autorską technologię hybrydowego zanurzeniowego chłodzenia...
01.12.2022

Linia smart routerów

D-Link zaprezentował najnowszą rodzinę routerów Smart Wi-Fi z algorytmami sztucznej...
04.11.2022

Nowa platforma Red Hat

Nowa platforma Red Hat Enterprise Linux (RHEL) w wersjach 8.7 i 9.1 Beta obsługuje...

Opisywanie środowisk VMware vSphere za pomocą kodu

Data publikacji: 04-11-2022 Autor: Bartosz Bielawski

Infrastruktura definiowana za pomocą kodu pozwala na większą kontrolę nad środowiskiem i wprowadzanie w nim zmian. Sprawdzamy, jak to działa na gruncie VMware vSphere z wykorzystaniem PowerShell Desired State Configuration i Ansible'a.

 

Środowiskiem VMware vSphere można zarządzać zarówno z wykorzystaniem PowerShella (za pomocą PowerCLI), jak i Pythona (w tym wypadku sięgniemy po bibliotekę vSphere Automation SDK for Python). Niestety, choć korzystanie wyłącznie z tych narzędzi może pomóc nam automatyzować rozmaite zadania w ramach tej platformy (jak choćby tworzenie nowych maszyn wirtualnych), to nie gwarantuje kontroli nad istniejącymi zasobami. Jeśli chcemy uzyskać pełną kontrolę nad środowiskiem, musimy sięgnąć po narzędzia pozwalające opisywać infrastrukturę za pomocą kodu: VMware vSphere Desired State Configuration (VMware DSC) lub kolekcji modułów Ansible (community.vmware). W tym cyklu przyjrzymy się obu rozwiązaniom. W pierwszej kolejności postaramy się zadbać o środowisko, w ramach którego będziemy mogli rozpocząć pracę z oboma produktami.


Wybór produktu

 

Obecnie oba produkty jedynie częściowo pokrywają konfigurację środowiska. Najpierw powinniśmy więc wybrać ten, który oferuje wsparcie dla interesujących nas elementów infrastruktury.


Drugie kryterium to integracja z innymi elementami infrastruktury, którymi chcemy zarządzać. Jeśli przykładowo pamięci masowe wykorzystywane przez VMware konfigurować będziemy za pomocą Ansible'a, to logiczne będzie wykorzystanie tego samego produktu do zarządzania VMware.


Trzecim kryterium może być znajomość obu rozwiązań w zespole odpowiedzialnym za infrastrukturę VMware: jeśli w zespole brakuje wiedzy o jednym z dwóch rozwiązań, to jego wdrożenie może okazać się dużo trudniejsze. Tym kryterium jednak posługiwałbym się jedynie tam, gdzie pokrycie zasobami jest identyczne w obu przypadkach.


Ostatnia warta rozważenia opcja to wykorzystanie obu produktów poprzez dobranie ich według prostego klucza:

 

 

  • wymogi integracji z innymi elementami infrastruktury,
  • istnienie zasobów opisujących dany element infrastruktury lub znajomość produktu na poziomie umożliwiającym tworzenie własnych zasobów,
  • integracja wewnątrz danego produktu (by uniknąć zależności pomiędzy oboma rozwiązaniami).


Jeśli zdecydujemy się na takie rozwiązanie, warto pamiętać o tym, by unikać sytuacji, gdy oba produkty opisują ten sam zasób: w przypadku konfliktu właściwości tego elementu będą zmieniać się niemal za każdym razem, gdy uruchomimy jedno z narzędzi.


Przygotowanie do pracy z VMware DSC


VMware DSC ewoluowało i obecnie skorzystać z niego możemy zarówno w środowisku z Windows PowerShell 5.1 (wykorzystując tradycyjny Local Configuration Manager, LCM), jak i za pomocą PowerShell 7 (polecenie Invoke-DscResource). W tym pierwszym przypadku wystarczy, jeśli zadbamy o najnowszą wersję Windows PowerShell i skonfigurujemy LCM w odpowiedni sposób. Niewątpliwą wadą tego rozwiązania jest to, że jeśli korzystamy z PowerShell DSC do zarządzania samym serwerem, to konfiguracja dla infrastruktury VMware łączyć się będzie z tą, która dotyczy serwera pośredniego. Może to prowadzić do sytuacji, gdy całość zajmuje za dużo czasu i automatyczne cykle uruchamiania testów będą zachodzić na siebie, powodując komplikacje z pobieraniem informacji o stanie zasobów. Dodatkowo praca z LCM nie pozwala na równoczesne aplikowanie i testowanie konfiguracji.


Drugie rozwiązanie, z wykorzystaniem PowerShell 7, wiąże się z kilkoma komplikacjami (do których wrócimy). Natomiast pozwala to nie tylko uniknąć problemów wspomnianych w przypadku pracy z LCM, ale też zyskać jeszcze jedną zaletę: PowerShell 7 możemy zainstalować na Linuksie, więc teoretycznie zarówno narzędzia związane z VMware DSC, jak i narzędzia związane z Ansible'em moglibyśmy zainstalować na jednym serwerze. W tym cyklu z narzędzi tych korzystać będziemy w ramach systemu Windows, ale większość wspomnianych rozwiązań zadziała równie dobrze na Linuksach.


Jeśli zdecydujemy się na budowanie narzędzi w ramach PowerShell 7 na systemie Windows, to na początek musimy zainstalować PowerShell 7 (nie jest on, w przeciwieństwie do Windows PowerShell, częścią systemu). Wersja wymagana przez VMware DSC to 7.0, ale warto zainstalować ostatnią stabilną wersję (w chwili powstawania artykułu była to wersja 7.2.6). Pakiet instalacyjny możemy zawsze pobrać pod linkiem
aka.ms/powershell.


Oprócz samego PowerShella musimy też zainstalować moduł PowerCLI w wersji przynajmniej 10.1.1 (znów – warto rozważyć pobranie najnowszej, stabilnej wersji – w chwili powstawania artykułu była to wersja 12.7.0.20091289). Moduł ten pobierzemy z PowerShell Gallery. Trzeba też pamiętać, że instalację musimy przeprowadzić w PowerShell 7:


Install-Module -Name VMware.PowerCLI


Ponieważ instalujemy moduł ze źródła niezaufanego (i raczej nie powinniśmy tego ustawienia zmieniać), to każdorazowo przy instalacji będziemy pytani o zgodę. Możemy tego uniknąć, korzystając z parametru Force polecenia Install-Module:


PS C:> Install-Module -Name VMware.PowerCLI


Untrusted repository
You are installing the modules from an untrusted repository.
If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to install the modules from 'PSGallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"):
PS C:> Install-Module -Name VMware.PowerCLI -Force

 

[...]

 

Autor zawodowo zajmuje się informatyką. Były Microsoft MVP w dziedzinie PowerShella. Bloger oraz jeden z moderatorów forum dotyczącego skryptów w serwisie TechNet. Autor książki „Windows PowerShell 5.1 Biblia”.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

prenumerata Numer niedostępny Spis treści

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik \"IT Professional\"