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


10.06.2019

Inteligentne zarządzanie...

W dniach 11, 12 i 13 czerwca – odpowiednio – w Gdańsku, w Warszawie i w Katowicach,...
27.05.2019

Rozwiązania na platformie GCP

Citrix SD-WAN i Citrix ADC
27.05.2019

Chmura hybrydowa

Dell Technologies Cloud
27.05.2019

Uproszczona komunikacja

Cisco Webex
24.05.2019

Konferencja IT Manager of...

W dniach 12–14 czerwca w Sopocie odbędzie się konferencja IT Manager of Tomorrow 2019. To...
24.05.2019

Ochrona sieci

Fortinet FortiOS 6.2
24.05.2019

Mniejsza złożoność

Rittal VX25 Ri4Power
24.05.2019

All-in-one NAS

QNAP TDS-16489U R2
24.05.2019

Układy SoC

AMD Ryzen Embedded R1000

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"