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



29.12.2022

Nowe funkcje od Oracle

W aplikacjach CX, SCM, EPM i HCM Fusion Cloud firmy Oracle pojawiło się wiele nowych...
29.12.2022

Inteligentne sygnały

Nowa usługa Vectra MDR zapewnia wsparcie ekspertów w zakresie bezpieczeństwa...
29.12.2022

Wieloetapowa analiza treści

Firma WithSecure wprowadziła nową warstwę ochrony w swojej opartej na chmurze platformie...
29.12.2022

Kontrola aplikacji

Fortinet zaprezentował nowe funkcje systemu FortiSASE: bezpieczny prywatny dostęp (Secure...
29.12.2022

Zgodnie z przepisami

Nowe rozwiązanie do zarządzania danymi firmy Commvault, oferowane w formie usługi,...
29.12.2022

Większa elastyczność w...

Schneider Electric ogłosił wprowadzenie na rynek urządzenia zasilającego APC NetShelter...
29.12.2022

Firewall nowej generacji

Fortinet zaprezentował nową rodzinę zapór sieciowych nowej generacji (NGFW) – FortiGate...
29.12.2022

Nowy przełącznik źródeł...

Vertiv przedstawił nową rodzinę przełączników źródeł zasilania Vertiv Geist RTS, które...
29.12.2022

Routery VPN Omada

TP-Link poszerza portfolio routerów VPN o dwa nowe urządzenia. ER7212PC to urządzenie 3 w...

Tworzenie konfiguracji w VMware DSC

Data publikacji: 29-12-2022 Autor: Bartosz Bielawski

Po pierwszych dwóch częściach cyklu poświęconego VMware vSphere DSC wiemy już, jak przygotować środowisko do pracy i jakich narzędzi możemy użyć przy tworzeniu, testowaniu i aplikowaniu konfiguracji z wykorzystaniem tego narzędzia. W części trzeciej przyjrzymy się, jak podzielić konfigurację na mniejsze fragmenty oraz jak może wyglądać przykładowa konfiguracja dla pojedynczego hosta.

 

VMware DSC bazuje na skryptach – musimy zadbać o ich odpowiednią strukturę oraz o przekazywanie parametrów wewnątrz tych skryptów. Podobnie jak wszystkie skrypty, te wykorzystywane przez VMware DSC zaczynają się od bloku parametrów. Możemy je wykorzystać zarówno na początku skryptu, jak i wewnątrz konfiguracji, musimy jednak pamiętać, by parametry zdefiniować również wewnątrz konfiguracji:


[CmdletBinding()]
param (
[String]$VIServer
)
configuration Podstawowa {
param (
[String]$VIServer
)
Import-DscResource -ModuleName VMware.vSphereDSC
# ...
}


Skrypty mogą zawierać kilka konfiguracji, które możemy kompilować osobno i wybierać interesującą nas konfigurację, gdy uruchamiamy polecenie New-VmwDscConfiguration.


Skrypt z konfiguracjami


Gdy tworzymy poszczególne konfiguracje, mamy dwie możliwości – przekazywanie szczegółów połączenia w każdym z zasobów bądź skorzystanie z bloku vSphereNode. Z pierwszej opcji skorzystać musimy wtedy, gdy VMware DSC będziemy używać w ramach tradycyjnego DSC. Nie możemy w tym wypadku polegać na bieżącej sesji, gdyż silnik odpowiedzialny za DSC, Local Configuration Manager (LCM), uruchamiać będzie procesy w kontekście bieżącego systemu. Ponieważ zdecydowaliśmy na samym początku, że korzystać będziemy z PowerShell 7, możemy użyć nieco wygodniejszego rozwiązania, jakim jest blok vSphereNode. W bloku tym na początku definiujemy, jakie połączenie używane będzie przy konfigurowaniu systemu, dzięki czemu we wszystkich wykorzystanych zasobach informację o połączeniu możemy pominąć. Przykładowa prosta konfiguracja korzystająca z obu możliwości:


configuration Tradycyjna {
param(
[string]$VIServer,
[PSCredential]$Credential
)
Import-DscResource -ModuleName 'VMware.vSphereDSC'
node localhost {
Datacenter Serwerownia {
Server = $VIServer
Credential = $Credential
Name = 'Serwerownia'
Location = ''
Ensure = 'Present'
}
}
}
configuration vSphereNode {
param (
[String]$VIServer
)
Import-DscResource -ModuleName 'VMware.vSphereDSC'
vSphereNode $VIServer {
Datacenter Serwerownia {
Name = 'Serwerownia'
Location = ''
Ensure = 'Present'
}
}
}


Oczywiście tak jak wspomnieliśmy w poprzedniej części, taka konfiguracja zadziała jedynie wtedy, gdy uprzednio nawiążemy połączenie z serwerem w niej wykorzystywanym. Zdecydowanie upraszcza to konfigurowanie obszernych środowisk bez konieczności powtarzania w zasadzie niezmiennych parametrów połączenia. Ważne jednak, by pamiętać o tym udogodnieniu w trakcie tworzenia konfiguracji. Mimo że większość zasobów wymaga parametrów Server i Credential, to gdy korzystamy z nich w ramach bloku vSphereNode, możemy je pominąć.


Konfiguracja infrastruktury


Tworząc skrypt z konfiguracjami, powinniśmy też zadbać, by móc bez trudu wykorzystywać konfiguracje dla wielu podobnych elementów infrastruktury. Najlepszym sposobem, by to osiągnąć, jest skorzystanie ze znanego z tradycyjnego DSC parametru ConfigurationData. Jest to tablica skrótów, w której możemy przekazywać wszelkie dynamiczne elementy naszej konfiguracji – w przypadku tworzenia klastrów mogłaby to być ich nazwa, w przypadku hostów – nazwa, parametry związane z ustawieniami sieci czy dostępne wirtualne przełączniki i grupy portów. Tutaj również musimy pamiętać, by parametr ten umieścić na poziomie skryptu oraz na poziomie samej konfiguracji:


[CmdletBinding()]
param (
[HashTable]$ConfigurationData,
[String]$VIServer
)
configuration Podstawowa {
param (
[HashTable]$ConfigurationData,
[String]$VIServer
)
Import-DscResource -ModuleName VMware.vSphereDSC

vSphereNode $VIServer {
Datacenter Serwerownia {
Name = $ConfigurationData.Datacenter
Location = ''
Ensure = 'Present'
}
}
}

 

Oczywiście o obu parametrach (VIServer, ConfigurationData) musimy pamiętać w trakcie uruchamiania polecenia New-VmwDscConfiguration:


$parametry = @{
Path = ‘KonfiguracjePodstawowe.ps1’
ConfigurationName = ‘Podstawowa’
Parameters = @{
VIServer = ‘vcenter.contoso.com’
ConfigurationData = @{
Datacenter = ‘Serwerownia’
}
}
}
New-VMwDscConfiguration @parametry


Gdy tworzymy repozytorium konfiguracji, warto zadbać o pewną strukturę, dzięki której łatwiej będzie zarządzać konfiguracją na poziomie pojedynczego hosta wirtualizacji oddzielnie od ustawień na poziomie całego vCenter, klastra czy dystrybuowanego przełącznika wirtualnego. Warto też zadbać, by pewne parametry współdzielone pomiędzy węzłami klastra (jak choćby parametry dotyczące sieci służącej do zarządzania czy do vMotion) łatwo było definiować niezależnie od samego pliku konfiguracyjnego, oddzielając w ten sposób dane od kodu. Możemy więc rozważyć następującą strukturę:

 

  • folder Konfiguracje zawierający skrypty dla pojedynczego hosta;
  • folder Globalne zawierający skrypty dla vCenter, klastrów itp.;
  • folder Hosty zawierający szczegółowe ustawienia, takie jak adresy IP, dla poszczególnych hostów;
  • folder DaneGlobalne zawierający ustawienia współdzielone – nazwy grup portów oraz sieci administracyjnych/vMotion, przynależność hostów do poszczególnych klastrów, konfiguracja dystrybuowanych wirtualnych przełączników.


Informacje usystematyzowane w ten sposób umożliwiają większą kontrolę nad ustawieniami bez konieczności powielania danych w kilku plikach i mieszania ustawień – tych, które umożliwiają dodawanie nowego hosta do klastra, z tymi, które ustawiłyby wszystkie sieci dostępne w ramach takiego klastra.

 

[...]

 

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\"