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


26.10.2020

Nowa wersja nVision

Można już pobierać nową wersję nVision
26.10.2020

Monitorowanie infrastruktury

Vertiv Environet Alert
23.10.2020

Telefonia w chmurze

NFON Cloudya
23.10.2020

Nowości w EDR

Bitdefender GravityZone
23.10.2020

Wykrywanie anomalii

Flowmon ADS11
23.10.2020

Mobilny monitor

AOC 16T2
22.10.2020

HP Pavilion

HP zaprezentowało nowe laptopy z linii Pavilion.
22.10.2020

Inteligentny monitoring

WD Purple SC QD101
22.10.2020

Przełącznik 2,5GbE

QNAP QSW-1105-5T

Automatyzacja zarządzania z Puppet Master

Data publikacji: 23-02-2017 Autor: Grzegorz Kuczyński

W poprzednim artykule przedstawiliśmy ogólne zasady działania narzędzia Puppet. Do celów testowych przeprowadziliśmy instalację Puppet Master i trzech klientów Puppet Agent. Poznaliśmy podstawowe polecenia Puppet oraz stworzyliśmy pierwszy w pełni działający manifest. W tej części skupimy się na tworzeniu manifestów.

Manifesty w Puppet tworzone są za pomocą deklaratywnego języka Domain Specific Language (DSL). Został on wyposażony w wiele mechanizmów typowych języków programowania, takich jak klasy. Jednak w DSL podstawowym typem danych są zasoby, a nie liczby czy znaki, chociaż one również są dostępne. Zdefiniowane zasoby odzwierciedlają te części systemu, które możemy modyfikować poprzez określanie ich stanu docelowego. W poprzedniej części stworzyliśmy manifest, którego zadaniem było zadbanie o to, aby na każdym agencie był zainstalowany edytor vim.

package { 'vim':
ensure => 'installed'
}

Powyższy kod przedstawia najprostszy przykład użytecznego manifestu. Jest to deklaracja określająca stan docelowy konkretnego zasobu. Puppet Master podczas interpretacji manifestu sprawdza, czy opisywany zasób jest unikatowy. Jeżeli nie będzie unikatowy, to serwer Puppet zgłosi błąd.

Opis każdego zasobu składa się z trzech elementów. Poniżej prezentujemy składnię deklaracji zasobu:

<type> { <title> :
attribute1 => value1,
attribute2 => value2,
}

Na początku występuje typ (type), który określa, jakim komponentem systemu chcemy manipulować. Może to być np. użytkownik (user), plik (file), usługa (service) lub pakiet (package).

Drugim elementem jest tytuł (title), który identyfikuje konkretną instancję zasobu w systemie. Tytuł w połączeniu z typem tworzy wskazanie na unikatowy element systemu, którym możemy zarządzać. Typ package i tytuł vim określa konkretny zasób systemu, jakim jest edytor tekstu vim.

Ostatnim elementem w deklaracji są atrybuty (attributes). Dotyczą one już zidentyfikowanego zasobu w systemie i może być ich więcej niż jeden. Każdy atrybut określa stan docelowy danego zasobu i może mieć więcej niż jedną docelową wartość. W naszym przykładzie wykorzystujemy atrybut ensure typu package. Wartość installed tego atrybutu oznacza, że w efekcie końcowym powinien być on zainstalowany w systemie.

> Resource Abstraction Layer

RAL to swego rodzaju interfejs do opisywanych wcześniej typów zasobów. Organizuje on i systematyzuje dostęp do informacji, jakie mogą oferować zasoby, oraz umożliwia bezpośrednie modyfikowanie tych zasobów bez użycia manifestów. Mimo że jeszcze nie używaliśmy terminu RAL, to w rzeczywistości skorzystaliśmy z tego mechanizmu za pomocą narzędzi CLI podczas uruchamiania usługi Puppet Agent. Poniżej prezentujemy, jak można używać powłoki RAL w celu inspekcji zasobów:

n2# puppet resource package vim
package { 'vim':
ensure => '2:7.4.160-1.el7',
}
n2# puppet resource package emacs
package { 'emacs':
ensure => 'purged',
}

Powyższe listingi potwierdzają instalację edytora vim na hoście n2. Nawet jeżeli usuniemy go za pomocą interfejsu RAL, to Puppet Master znajdujący się na hoście n1 zleci jego instalację w ciągu najbliższych pięciu minut.
 

[...]


Grzegorz Kuczyński
Autor zawodowo zajmuje się informatyką. Jest członkiem społeczności open source, prowadzi blog nt. systemu GNU/Linux.

Artykuł pochodzi z miesięcznika: IT Professional

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

.

Transmisje online zapewnia: StreamOnline

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