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


17.09.2019

PLNOG23 czyli sieci 5G,...

Największa polska konferencja telekomunikacyjna powraca do Krakowa! Wśród nowości ścieżka...
05.09.2019

Cloudya – nowa usługa NFON

Po ponad dekadzie ciągłego rozwoju technologii Cloudya, swobodna i niczym nie ograniczona...
02.09.2019

Na dużą skalę

Kaspersky Hybrid Cloud Security
02.09.2019

Bezpieczny brzeg sieci

Fortinet Secure SD-Branch
02.09.2019

Nowoczesne centra danych

AMD EPYC
30.08.2019

Dostęp do AI i ML

VMware Cloud Foundation
30.08.2019

Lekkość i moc

Toshiba Portégé A30-E
30.08.2019

Bez przestojów

APC Easy UPS On-Line
29.08.2019

Duże moce

Lenovo ThinkSystem SR635 i SR655

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"