Puppet (typy)

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání
Typy jsou ve své podstatě předdefinované funkce s parametry, které lze využívat při sestavování vlastních funkcí a tříd.


Přehled použitelných typů

Poznámka Toto je pouze reprezentativní výběr námi používaných typů. Pro kompletní dokumentaci viz Docs:Type Reference na oficiálních stránkách stránkách http://puppetlabs.com

cron

Puppet (typy) cron

exec

Puppet (typy) exec

file

file zajišťuje realizaci veškerých souborových operací.

Parametry

backup

Parametr říká jaké má být cílové úložiště pro zálohu souboru. Defaultně zakládá démon puppetmaster přes typ filebucket úložiště main u sebe na serveru.

file {"cesta_k_souboru/soubor.txt":
        source => "/cesta_odkud_se_bere/soubor.txt",
        backup => main
}

Ve výše uvedeném případě, pokud se soubor soubor.txt liší od verze kopírované z výchozího zdroje, provede agent před nahrazením zálohu do úložiště main.

checksum

Tímto parametrem lze změnit, podle čeho má agent provádět ověření souboru. Výchozí je výpočet kontrolního součtu z obsahu souboru (md5), ale lze kontrolovat i jiné parametry. Což výrazně zkracuje čas který agent stráví ověřováním. Obzvlátě tam, kde jsou přes puppet spravovány velké soubory.

  • md5
  • md5lite
  • mtime
  • ctime
  • none
content

Hodnota, kterou parametr obsahuje se "nalije" do vytvořeného dokumentu. V manifestu lze použít přímo řetězec, ale i obsah proměnné

owner
purge
replace
source
sourceselect
target

filebucket

Přes typ filebucket se nastavuje úložiště které agent může použít, je-li nastaven parametr backup u file. Samo o sobě je toto nastavení k ničemu, není-li použito.

filebucket {'main':
     server => puppet,
     path => false
}

Má-li se používat jako výchozí, musí být to být v manifestu nastaveno:

File { backup => main }

Při ověřování se agent v tomto úložišti zeptá, jestli je kontrolní md5 součet souboru který se má nahradit stejný jako má ten soubor co je v úložišti. Pokud ano, tak krok při kterém by měl provést zálohu přeskočí, jelikož není nutný.

Parametry

name

Jméno vzdáleného úložiště.

path

Parametr může mít booleanovskou hodnotu true nebo false.

Je-li hodnota parametru true', použije agent lokální úložiště na klientském nodu.

port

Číslo portu na kterém naslouchá vzdálený server. Pro puppetmaster je výchozí port 8140

server

Doménové jméno serveru, který slouží jako vzdálené úložiště.

Není-li parametr uveden, zkontroluje agent nejprve hodnotu parametru path. Je-li nastaven na true použije lokální úložiště. V opačném případě odzálohuje soubor do výchozího úložiště na stroji kde běží puppetmaster. Tzn. aby agent zálohoval do vzdáleného úložiště musí mít path hodnotu false

group

Parametry

ensure
gid
members
name
provider
system

host

Puppet (typy) host

interface

Puppet (typy) interface

mount

Puppet (typy) mount

notify

Přes notify lze nastavit zprávu, kterou má agent poslat do logu při zpracování onoho bodu manifestu, kam je vložena.

notify { "Zpráva která se má poslat do logu":; }
Jul 30 18:37:19 git puppet-agent[24898]: Zpráva která se má poslat do logu
Jul 30 18:37:19 git puppet-agent[24898]: (/Stage[main]/Git::Config/Notify[Zpráva která se má poslat do logu]/message) defined 'message' as 'Zpráva která se má poslat do logu'
notify { "Zpráva která se má poslat do logu":
      withpath => true
}


Jul 30 18:38:41 git puppet-agent[25045]: (/Stage[main]/Git::Config/Notify[Zpráva která se má poslat do logu]/message) Zpráva která se má poslat do logu
Jul 30 18:38:41 git puppet-agent[25045]: (/Stage[main]/Git::Config/Notify[Zpráva která se má poslat do logu]/message) defined 'message' as 'Zpráva která se má poslat do logu'

package

Typ package s parametrem ensure nastaveným na installed (nainstalováno)

package { "strace": ensure => "installed" }
Poznámka Typ package pracuje vždy s výchozím manažerem instalačních balíčků. To však nemusí vždy být zrovna ten, který preferujete. Někdo kupř. upřednostňuje místo konzolových nástrojů pro APT aptitude. Výchozího správce balíků lze nastavit jako hodnotu parametru provider. U Debianu připadají v úvahu prakticky tři možnosti:
  • apt
  • aptitude (může lépe zpracovávat vzájemné závislosti mezi balíky)
  • dpkg (neumožňuje používat pro ensure hodnotu latest)

Z hlediska základní funkcionality mají všechny tři možnosti zhruba stejné možnosti

V případě že je třeba nainstalovat více balíčků najednou, lze buď pro každý balík nastavit samostatný typ package ..

package { "strace": ensure => "installed" }
package { "screen": ensure => "installed" }
package { "less": ensure => "installed" }

Nebo - v případě, že u všech balíků má být hodnota parametru ensure stejná - lze zápis zjednodušit nastavením globální hodnoty parametru ensure. Pro typ package, pak bude Puppet automaticky předpokládat že hodnota parametru ensure je installed.

Package { ensure => "installed" }
package { "strace": }
package { "screen": }
package { "less": }

Místo tupého opakování konfigurace typu package lze s výhodou použít pole:

$baliky = [ "strace", "screen", "less" ]
package { $baliky: ensure => "installed" }

Resp.

Package { ensure => "installed" }
$baliky = [ "strace", "screen", "less" ]
package { $baliky:}
Poznámka Má-li puppet provádět i automatické aktualizace balíků, pak musí být hodnota parametru ensure latest (nejaktuálnější), nikoliv installed

Odebrání balíčku

Aby balíček nebyl nainstalován, resp. v případě že již nainstalován byl byl také odebrán zajistí hodnota ensure absent (nenainstalovaný), resp purged (kompletně odebraný)

Poznámka Hodnota purged zajistí, že manažer instalačních balíčků odstraní i veškeré pozůstalé konfigurační soubory

resources

Puppet (typy) resources

schedule

Puppet (typy) schedule

service

Puppet (typy) service

ssh_authorized_key

Puppet (typy) ssh authorized key

sshkey

Puppet (typy) sshkey

user

Puppet (typy) user