Kontakty

Bábková inštalácia a nastavenie. Inštalácia a konfigurácia bábkového servera. Úplný zoznam bash parametrov pôvodného inštalačného skriptu

Za efektívnejšie použitie sa musí bábka chápať, ako sú vybudované moduly a manifesty. Táto príručka vás zoznámi s prácou týchto bábkových komponentov na nastavení zásobníka lampy na serveri Ubuntu 14.04.

Požiadavky

  • Inštalácia bábky (master a agent). Viac o tom -.
  • Schopnosť vytvoriť aspoň jeden Ubuntu Virtual Server 14.04 pre servis uzdeniny bábkovej agentúry.

Základy bábkového kódu

Prostriedky

Bábkový kód sa skladá hlavne zo zdrojov. Zdroj je fragmentom kódu, ktorý opisuje stav systému a určuje zmeny, ktoré potrebujú. Napríklad:

užívateľ ("Mitchell":
Skontrolujte \u003d\u003e prítomné
UID \u003d\u003e "1000",
gid \u003d\u003e "1000",
Shell \u003d\u003e "/ Bin / Bash",
Home \u003d\u003e "/ Home / Mitchell"
}

Oznámenie zdroja má takýto formát:

resouodu_Type ("Resours_name"
Atribút \u003d\u003e hodnota
...
}

Ak chcete zobraziť všetky typy bábkových zdrojov, zadajte príkaz:

bábkové zdroje -types.

Viac informácií o typoch zdrojov sa dozviete v tomto návode.

Manifest

Manifest je scenár orchestrácie. Bábkové programy s rozširovaním .pp sa nazývajú manifests. Bábkový manifest predvolený - /etc/puppet/manifests/site.pp.

Triedy

Rovnako ako v akomkoľvek konvenčnom programovacom jazyku sú triedy zodpovedné za organizovanie a opätovné použitie častí ORCHEC.

Definícia triedy je blokom kódu, ktorý popisuje, ako trieda funguje. Po určení triedy ho môžete použiť v manifestí.

Definícia triedy má takýto formát:

trieda example_class (
...
Kód.
...
}

Tento kód definuje triedu EXEST_CLASS. Bábkový kód bude v kučeravých zátvorkách.

Vyhlásenie o triede je miesto v kódexe, kde sa volá jedna alebo iná trieda. Pomocou reklamy typu bábkovej triedy spracováva svoj kód.

Vyhlásenie o triede je spoločné a podľa typu zdroja.

Zvyčajná deklarácia triedy sa pridá k kódexu pomocou kľúčového slova.

zahŕňajú príklad Gelex_class

Pri vyhlásení typu zdroja je trieda oznámená vo formáte zdrojov:

triedy ("example_class" :)

Takáto reklama vám umožňuje pridať parametre triedy do kódu, ktorý prepíše štandardné hodnoty atribútov triedy. Napríklad:

uzol "Host2" (
Trieda ("Apache" :) # Použite Apache Module
Apache :: VHOST ("Príklady.com": # Definovať zdroj VHOST
port \u003d\u003e "80",
DOCROOT \u003d\u003e "/ var / www / html"
}
}

Moduly

Modul je skupina prejavov a iných súborov, usporiadaných vopred určitým spôsobom, ktorý umožňuje uľahčiť spojenie a opätovné použitie jednotlivých častí ORCHEC. Moduly pomáhajú systematizovať bábkovému kódu, pretože s ich kódom pomoci možno rozdeliť na niekoľko prejavov.

Bábkové moduly sú uložené v adresári / etc / bábky / moduly.

Písanie manifestá

Môžete cvičiť písanie manifests, moduly a triedy bábka na príklade inštalácie zásobníka lampy na server Ubuntu (v dôsledku toho sa ukáže).

Takže na vykonanie organizovania servera Ubuntu 14.04 a nainštalujte naňho zásobník, potrebujete zdroje na takéto akcie:

  • inštalácia balíka Apache2.
  • spustenie služby Apache2.
  • inštalácia balíka mySQL servery, MySQL-Server.
  • spustiť službu MySQL.
  • inštalácia balíka PC5
  • vytvorenie PHP testovacieho skriptu, info.php.
  • pred inštaláciou každého balíka aktualizujte index APT.

Nižšie nájdete tri príklady bábkového kódu, s ktorým môžete získať takúto inštaláciu stohu lampy.

Prvý príklad naučí základné manifesty v jednom súbore. Druhý príklad pomôže zostaviť a používať triedu a modul založený na predtým písaných manifestoch. V treťom príklade sa dozviete, ako používať predmontované verejne dostupné moduly na inštaláciu zásobníka lampy.

Poznámka: Na testovanie je lepšie používať nový virtuálny server.

Príklad 1: Inštalácia lampy pomocou jedného manifestu

Bábkový manifest môže byť napísaný na uzle agentúry, a potom ho vykonať pomocou príkazu na aplikáciu bábky (pre to nemusíte mať nastavenie od sprievodcu a agenta).

V tejto časti sa dozviete, ako písať prejavy, ktoré budú používať takéto typy reklám zdrojov:

  • exec: Realizácia príkazov.
  • balík: Inštalácia balíkov.
  • služba: Riadenie služieb.
  • súbor: Správa súborov.

Vytvorenie manifestu

Vytvorte nový manifest:

sudo vi /etc/puppet/manifests/lamp.pp.

Pridajte k nemu nasledujúci kód, aby ste vyhlásili potrebné zdroje.

Spustenie príkazu "apt-get update"
Exec ("apt-update": Exec zdroj "apt-update"
Príkaz \u003d\u003e "/ usr / bin / apt-get update" # príkaz, ktorý spustí tento zdroj
}
# Inštalácia balíka Apache2
Balenie ("Apache2":
Požadovať \u003d\u003e Exec ["apt-update"], # APT-UPDATE QUYER PRED INŠTALUJTE
Skontrolujte \u003d\u003e nainštalované,
}
# Spustenie APACE2 SERVICE
SERVIS ("APACHACH2":
Uistite sa \u003d\u003e Beh,
}
# Nastaviť MySQL-Server
Balík ("MySQL-Server":
Vyžadovať \u003d\u003e Exec ["APT-UPDAP"], # APT-UPDATE Požiadavka odložená
Skontrolujte \u003d\u003e nainštalované,
}
# Spustenie služby MySQL
SERVIS ("MYSQL":
Uistite sa \u003d\u003e Beh,
}
# Inštalácia Pack PHP5
Balík ("php5":
Vyžadovať \u003d\u003e Exec ["APT-UPDAP"], # APT-UPDATE Požiadavka pred inštaláciou
Skontrolujte \u003d\u003e nainštalované,
}
# Spustenie servisu info.php
Súbor ("/var/www/html/info.php":
Skontrolujte \u003d\u003e súbor,
Obsah \u003d\u003e "", # Phpinfo kód
Požadovať \u003d\u003e Balíček ["Apache2"], # Apache2 Požiadavka balíkov
}

Manifestá

Ak chcete použiť nový prejav, zadajte príkaz:

sudo bábka aplikovať --test

Vydá sa výsledok hlasitosti, ktorý zobrazuje všetky zmeny v stave média. Ak nie sú žiadne chyby vo výstupu, môžete otvoriť externú IP adresu alebo názov domény v prehliadači. Na obrazovke sa zobrazí testovacia stránka PHP. To znamená, že Apache a PHP fungujú.

Teraz je na serveri nainštalovaný zásobník lampy pomocou bábky.

Toto je pomerne jednoduchý manifest, pretože sa dá vykonať na agente. Ak nemáte báskový sprievodca, iné uzly agentúry nebude môcť používať tento manifest.

Bábkový master server kontroluje zmeny stavu servera každých 30 minút.

Príklad 2: Nastavenie zásobníka lampy pomocou modulu

Teraz skúste vytvoriť jednoduchý modul na základe manifestu lampy, ktorý ste napísali v predchádzajúcej časti.

Ak chcete vytvoriť modul, vytvorte nový adresár v adresári modulov (jeho názov sa musí zhodovať s názvom modulu). Tento adresár musí obsahovať adresár prejavov a súbor init.pp. V súbore INIT.PP je zadaná trieda bábky (jeho názov sa musí zhodovať s názvom modulu).

Vytvorenie modulu

Prejdite na balíkový master server a vytvorte adresárovú štruktúru modulu:

cD / ETC / BUNKTY / MODULS
SUDDO MKDIR -P LAMP / LASTE

Vytvorte a otvorte súbor init.pp v editore:

sUDDO VI LAMP / manifests / init.pp

Vložte triedu svietidla do súboru:

lampa triedy (
}

Skopírujte obsah zjavtecu z časti 1 a vložte ho do jednotky triedy lampy. Teraz máte definíciu triedy lampy. Iné manifesty budú môcť túto triedu používať ako modul.

Uložte a zatvorte súbor.

Použitie modulu v hlavnom manifest

Teraz môžete konfigurovať hlavný manifest a použiť modul lampy na inštaláciu stohu lampy na serveri.

Na panenovom hlavnom serveri upravte takýto súbor:

sudo vi /etc/puppet/manifests/site.pp.

S najväčšou pravdepodobnosťou je súbor prázdny. Pridajte k nej nasledujúce riadky:

predvolené uzol ()
Uzol "Lamp-1" (
}

Poznámka: Namiesto lamp-1 zadajte názov hostiteľa svojho bábkového prostriedku na inštaláciu zásobníka.

Blok uzla vám umožňuje zadať bábkový kód, ktorý sa použije len na niektoré uzly.

Predvolená jednotka sa vzťahuje na všetky uzly agentúry, ktoré nemajú individuálny blok (nechať ho prázdne). Jednotka LAMP-1 sa použije na uzol agentúry LAMP-1.

Pridajte nasledujúci riadok k tomuto bloku, ktorý používa modul lampy:

Uložte a zatvorte súbor.

Teraz bude môcť bábka Agentúry sťahovať nastavenia z hlavného servera a nainštalovať zásobník lampy. Ak chcete vykonať zmeny práve teraz, spustite príkaz na agenta:

sudo bábkové agent --test

Moduly sú najvhodnejšie. opätovné použitie Bábkový kód. Okrem toho moduly pomáhajú logicky organizovať kód.

Príklad 3: Inštalácia lampy pomocou verejných modulov

Modul MySQL sa používa rovnakým spôsobom. Pridajte takéto riadky na blokové uzly:

tRIEDA ("MYSQL :: SERVER":
root_password \u003d\u003e "heslo",
}

Môžete tiež prejsť parametre modulu MySQL.

Pridajte zdroj, ktorý kopíruje info.php na požadované miesto. Použite zdrojový parameter. Do bloku uzla pridajte nasledujúce riadky:

súbor ("info.php": # názov súboru zdrojov
Cesta \u003d\u003e "/Var/wwww/html/info.php", # cieľová cesta
Skontrolujte \u003d\u003e súbor,
Vyžadujú \u003d\u003e trieda ["Apache"], # Apache Trieda na použitie
zdroj \u003d\u003e "bábka: // / modules/apache/info.php", miesto, kde je potrebné kopírovať súbor
}

Táto deklarácia triedy používa zdrojový parameter namiesto obsahu. Tento parameter používa nielen obsah súboru, ale tiež ho kopíruje.

Bábka: // //modules/apache/info.php bábka bude kopírovať v /etc/puppet/modules/apache/files/info.php.

Uložte a zatvorte súbor.

Vytvorte súbor info.php.

sUDDO SH-C "ECHO""\u003e /etc/puppet/modules/apache/files/info.php"

Teraz bude môcť bábka Agentúry sťahovať nastavenia z hlavného servera a nainštalovať zásobník lampy. Ak chcete vykonať zmeny v prostredí agenta práve teraz, spustite príkaz na tomto uzle:

sudo bábkové agent --test

Tento príkaz si stiahne všetky aktualizácie pre aktuálny uzol a nainštalujte naň. Aby ste sa uistili, že Apache a PHP pracujte, otvorte adresu IP alebo uzol domény v prehliadači:

http: //lamp_1_public_ip/info.php.

Záver

Teraz máte základné zručnosti na prácu s modulmi a bábkovými manifestmi. Pokúste sa vytvoriť jednoduchý manifest a modul.

Bábka je skvelá pre správu konfiguračných súborov aplikácií.

Tagy:

Riadenie veľkého počtu systémov UNIX nie je možné nazývať pohodlné. Ak chcete zmeniť jeden parameter, správca má prístup k každému stroju, skripty môžu len čiastočne pomôcť a nie vo všetkých situáciách.

Treba to uznať správcovia systému Windows Siete sú stále vo výhodnejšej polohe. Stačí zmeniť nastavenia skupinových politík a po chvíli všetky sieťové počítače, vrátane novo nainštalovaného operačného systému "rozpoznať" o inovácii, ak sa im určite týkajú. Pri pohľade na dlhú dobu vývoja Unixu je možné poznamenať, že nič také nepatrilo. Existujú riešenia ako Kickstart, ktoré pomáhajú pri primárnej inštalácii operačný systémAle ďalšia konca si bude vyžadovať značné úsilie. Komerčné riešenia, ako je Bladelogic a Opsware, problém automatizácie nastavení rieši len čiastočne, ich hlavnú výhodu. grafické rozhranieÁno, a nechajte ich kúpiť len vo veľkých organizáciách. Samozrejme, existujú projekty, ktoré ponúkajú bezplatné riešenia, ale po celú dobu ich existencie nemohli vytvoriť veľkú komunitu. Napríklad CFengine nie je veľmi populárny u administrátorov, aj keď iná ako Linux môže byť použitý v * BSD, Windows a Mac OS X. Môže to byť spôsobené relatívnou zložitosťou pri vytváraní konfigurácií. Pri popise úloh je potrebné zohľadniť funkcie každého špecifického systému a manuálne ovládať postupnosť akcií pri vykonávaní príkazov. To znamená, že administrátor musí pamätať, že pre niektoré systémy je potrebné písať addruder pre iné UserAdd, berte do úvahy umiestnenie súborov v rôznych systémoch, a tak ďalej. Toto je poradie veľkosti komplikuje proces písania príkazov, je veľmi ťažké vytvoriť správnu konfiguráciu s procesom, a môžete si prečítať vytvorené konfigurácie po chvíli prakticky nie sú skutočné. Napriek GPL License Cfengine v skutočnosti projekt jednej osoby, ktorá kontroluje všetky zmeny a nemá veľký záujem o budovanie otvorenej spoločnosti. Výsledkom je, že CFengine je celkom uspokojujúci vývojár, a pre zostávajúcich správcov je skôr prebytočnou bolesťou hlavy. Zlepšiť CFEGINE vývojárov tretích strán Boli vytvorené rôzne prírastky, ktoré často zhoršujú situáciu. Autor viacerých takýchto modulov na CFengine Luke Kanies na konci sa rozhodol vyvinúť podobný nástroj, ale bez mnohých CFEngine Chyby.

Bábkové funkcie

Bábka, ako je CFengine, je systém klient-server pomocou deklarácie, ktorý je povinný vykonať jazyk na opis úloh a knižníc na ich implementáciu. Zákazníci pravidelne (štandardne 30 minút) sú pripojené k centrálnemu serveru a získajú najnovšiu konfiguráciu. Ak nastavenia nie sú zhodné so stavom systému, budú vykonané, ak je to potrebné, server sa vzťahuje na operácie operácií. Server správy môže uložiť v syslog alebo súbore, vytvoriť program RRD, pošlite do zadaného e-mailu. Ďalšie úrovne transakčných a odberových abstrakcií predstavujú maximálnu kompatibilitu s existujúcimi nastaveniami a aplikáciami, ktoré vám umožňujú zamerať sa na systémové objektyBez obáv o rozdiely v implementácii a popise podrobných príkazov a formátov súborov. Správca pôsobí len s typom objektu, zvyšok bábky sa na seba. Typ balíkov vie, asi 17 dávkových systémov, ktoré budú automaticky uznané na základe informácií o verzii distribúcie alebo systému, hoci v prípade potreby môže byť dávkový manažér násilne pridaný.

Na rozdiel od skriptov, ktoré často nie sú možné používať v iných systémoch, budú bábkové konfigurácie napísané správcami tretích strán väčšinou pracovať v akejkoľvek inej sieti. V bábkovej kuchárku [ http://www.reduktiveLabs.com/trac/puppet/tags/puppet%2CRECIPE] Existujú už tri desiatky receptov. Momentálne, bábka oficiálne podporuje tieto operačné systémy a služby: Debian, Redhat / Fedory, Solaris, Suse, Centos, Mac OS X, OpenBSD, Gentoo a MySQL, LDAP.

Bábka. Jazyk

Ak chcete pokračovať, najprv by sa mali riešiť hlavným prvkom a jazykovým schopnostiam. Jazyk je jednou z silných stránok bábky. S ním sú opísané zo zdrojov, ktoré správcovi plánuje riadiť a akcie. Na rozdiel od väčšiny takýchto riešení vám pániteľský jazyk umožňuje zjednodušiť výzvu na všetky podobné zdroje na akomkoľvek systéme v heterogénnom prostredí. Popis prostriedku spravidla pozostáva z mena, typu a atribútov. Napríklad zadajte súbor / etc / passwd a nastaviť jeho atribúty:

súbor ("/ etc / passwd":

vlastník \u003d\u003e root,

skupina \u003d\u003e root,

Teraz zákazníci, pripojenie k serveru, kopírovať súbor / etc / passwd súbor a nainštalujte zadané atribúty. V jednom pravidle môžete definovať niekoľko prostriedkov naraz, oddeliť ich bodom so čiarkou. A čo ak sa konfiguračný súbor používa na serveri, sa líši od klienta alebo sa nepoužíva vôbec? Napríklad táto situácia sa môže vyskytnúť pri nastavení Pripojenia VPN. V tomto prípade môžete špecifikovať smernicu o zdrojoch. Tu sú dve možnosti, pretože obvykle určiť cestu k inému súboru, sú tiež podporované dva URI protokolu: súbor a bábka. V prvom prípade sa používa odkaz na externý server NFS, v druhej verzii na bábkovom serveri, NFS sa spustí podobná služba, ktorá vyváža zdroje. V druhom prípade je štandardne uvedená cesta vzhľadom na panenský koreňový adresár - / etc / bábka. To znamená, že Link Puppet: //server.domain.com/config/sshd_config bude zodpovedať súboru / etc / bábku / config / sshd_config. Tento adresár môžete prepísať pomocou smernice Filebucket, hoci je viac správnejšia na používanie sekcie rovnakého mena v /etc/puppet/fileserver.conf súboru. V tomto prípade môžete obmedziť prístup k službe len zo špecifických adries. Napríklad popisujeme konfiguračnú časť.

cesta / var / bábka / config

povoliť *. Domain.com.

povoliť 192.168.0. *

povoliť 192.168.1.0/224

odmietnuť * .wireless.domain.com.

A potom sa pozrite v tejto časti pri popisení zdrojov.

zdroj \u003d\u003e "bábka: //server.domain.com/config/sshd_config"

Predtým, ako kolon je názov zdroja. V najjednoduchších prípadoch, ako meno, môžete jednoducho zadať najlepšie použitie alias alebo premenné. Alias \u200b\u200bje inštalovaný pomocou smernice o alias. Cesta úplného súboru. V zložitejších konfiguráciách

súbor ("/ etc / passwd":

alias \u200b\u200b\u003d\u003e passwd

Ďalšou možnosťou vytvoriť pseudonym je vhodný v prípade, keď sa musíte zaoberať rôznymi operačnými systémami. Napríklad vytvorte zdroj popisujúci súbor sshd_config:

súbor (sshdconfig:

názov \u003d\u003e $ OperatingSystem? (

solaris \u003d\u003e "/ usr / local / etc / ssh / sshd_config",

predvolené \u003d\u003e\u003e "/ etc / ssh / sshd_config"

V tomto príklade sme čelia možnosti voľby. Súbor pre Solaris je špecifikovaný samostatne, súbor / etc / ssh / sshd_config bude vybraný pre všetky ostatné. Teraz môžete kontaktovať tento zdroj ako Sshdconfig, v závislosti od operačného systému bude vybratá požadovaná cesta. Uvádzame napríklad, že ak je spustený démon sshd a prijatý nový súbor, mali by ste servis reštartovať.

uistite sa \u003d\u003e TRUE,

prihlásiť sa \u003d\u003e súbor

Premenné sa často používajú pri práci s užívateľskými údajmi. Napríklad opíšte umiestnenie domovských adresárov:

$ Homeroot \u003d "/ home"

Teraz môžete kontaktovať súbory konkrétneho používateľa ako

$ (HOMEROOOOOT) / $ NAME

Názov účtu užívateľa bude nahradený v parametri $ NAME. V niektorých prípadoch je vhodné určiť predvolenú hodnotu pre určitý typ. Napríklad pre typ exec, adresáre, v ktorých musia vyhľadávať, spustiteľný súbor sú veľmi často uvedené.

Exec (cesta \u003d\u003e "/ usr / bin: / bin: / usr / sbin: / sbin")

V skutočnosti, ak potrebujete špecifikovať niekoľko vnorených súborov a adresárov, môžete použiť parameter recurse.

súbor ("/etc/apache2/conf.d":

zdroj \u003d\u003e "bábka: // bábka: //server.domain.com/config/apache/conf.d",

recurse \u003d\u003e "true"

Do tried alebo definícií môže byť integrovaných niekoľko zdrojov. Triedy sú kompletným popisom systému alebo služieb a používajú sa od seba.

"/ Atď / passwd": vlastník \u003d\u003e koreň, skupina \u003d\u003e koreň, režim \u003d\u003e 644;

"/ Atď / tieň": vlastník \u003d\u003e koreň, skupina \u003d\u003e koreň, režim \u003d\u003e 440

Rovnako ako v objektovo orientovaných jazykoch, triedy môžu byť prepísané. Napríklad vlastník týchto súborov FreeBSD skupiny je. Preto, aby ste nezískali zdroj úplne, vytvorte novú triedu FreeBSD, ktorá zdedí trieda Linuxu:

trieda FreeBSD inherits Linux (

Súbor ["/ etc / passwd"] (skupina \u003d\u003e koleso);

Súbor ["/ etc / Shadow"] (skupina \u003d\u003e koleso)

Pre pohodlie môžu byť všetky triedy prevzaté do samostatného súboru, ktorý obsahuje smernicu o zahrnutí. Definície môžu trvať mnoho parametrov ako argumenty, ale nepodporujú dedičstvo a používajú sa, ak potrebujete opísať použité viaceré objekty. Napríklad definujeme domovský adresár používateľov a príkazov, ktoré potrebujete na vytvorenie nového účtu.

definovať user_homedir ($ Group, $ FullName, $ Ingroups) (

užívateľ ("$ NAME":

skontrolujte \u003d\u003e prítomné

komentár \u003d\u003e "$ fullname",

gid \u003d\u003e "$ skupina",

skupiny \u003d\u003e $ Ingroups,

Členstvo \u003d\u003e minimum,

shell \u003d\u003e "/ Bin / Bash",

hOME \u003d\u003e "/ HOME / $ NAME",

vyžadujú \u003d\u003e skupina [$ skupinu],

exec ("$ NAME HOMEDIR":

príkaz \u003d\u003e "/ bin / cp -r / etc / skel / home / $ name; / chown -r $ Name: $ Skupina / Home / $ Name »

vytvorí \u003d\u003e "/ Home / $ Name",

vyžadujú \u003d\u003e používateľ [$ name],

Teraz vytvoriť nový Účet Stačí kontaktovať user_homedir.

user_homedir ("Sergej":

skupina \u003d\u003e "Sergej",

fULLNAME \u003d\u003e "Sergej Jaremchuk",

ingroups \u003d\u003e ["Media", "admin]

Samostatne existujú opisy uzlov (uzlov), ktoré podporujú dedičstvo, ako aj triedy. Pri pripájaní klienta do bábkového servera, zobrazí sa stojany uzla a nastavenia špecifické len pre tento počítač sú vydané. Ak chcete opísať všetky ostatné systémy, môžete použiť predvolené nastavenie uzla. Opis všetkých typov je uvedený v dokumente "Type Reference", s ktorým je potrebné, aby ste sa v každom prípade zoznámili aspoň s cieľom pochopiť všetky funkcie bábkového jazyka. odlišné typy Povolené vykonanie zadaných príkazov, vrátane pri vykonávaní určitých podmienok (napríklad zmena konfiguračného súboru), pracujte s CRON, povereniami a užívateľskými skupinami, počítačmi, montážnymi zdrojmi, počiatočnými a zastavovacími službami, inštaláciou, aktualizáciou a vymazaním balíkov, práce Kľúče SSH, Solaris zóny a tak ďalej. To je, aké jednoduché je možné aktualizovať zoznam balíkov v distribúciách pomocou apt, denne medzi 2 a 4 hodinami.

plán (denne:

obdobie \u003d\u003e denne

rozsah \u003d\u003e

exec ("/ usr / bin / apt-get aktualizácia":

plán \u003d\u003e Denne

Za toto obdobie bude každý systém aktualizovaný len raz, potom, čo sa úloha považuje za vykonanú a bude odstránená z klientský počítač. Bábkový jazyk podporuje iné známe štruktúry: Podmienky, funkcie, polia, Komentáre a podobné.

Inštalácia bábky.

Bábka bude vyžadovať Ruby (\u003e \u003d 1.8.1) s podporou OpenSSL a XMLRPC knižnice, ako aj rýchlejšia knižnica [ http://rerectivelabs.com/projects/facter.]. V úložisku Ubuntu 7.04, ktorý bol použitý počas skúšobnej inštalácie, paket Puppy je už povolený.

$ sudo apt-cache Hľadať bábka

bábka - centralizovaná správa konfigurácie pre siete

puppetmaster - centralizovaná konfigurácia riadenie hnacieho démona

Pri inštalácii budú inštalované všetky potrebné závislosti: faktor libopensl-rubhy libxmlrpc-rubín.

$ sudo apt-get nainštalovať bábka puppetmaster

Skontrolujte, či príkaz Ruby Knižnice.

$ RUBY -ROPENSSL -E "DACH: YEP"

~ $ RUBY -RXMLRPC / KLIENT A KLIENTOU - POTREBY: YEP "

Ak nie sú prijaté chyby, potom všetko, čo potrebujete, je už zahrnutý. Súbory, v ktorých sú opísané požadovanou konfiguráciou systému v bábkovej terminológii, sa nazývajú manifests. Pri spustení sa démon pokúša čítať /etc/puppet/manifests/site.pp súbor, pričom jeho neprítomnosť dáva varovnú správu. Pri testovaní môžete zadať démon do práce v režime AUTON, v ktorom sa vyžaduje manifekt

$ sudo / usr / bin / bábkamasterd -Nonodes

Ak je to potrebné, iné súbory môžu byť pripojené na stránke.pp, ak sa môžete pripojiť. Pre skúšobný beh do tohto súboru môžete aplikovať najjednoduchšie pokyny.

súbor ("/ etc / sudoers":

vlastník \u003d\u003e root,

skupina \u003d\u003e root,

Všetky konfiguračné súbory ako servery a zákazníci sa nachádzajú v / etc / bábka. File FileServer.conf O o ktorom sme hovorili vyššie, sa nevyžaduje a používajú sa len vtedy, keď bude bábka fungovať ako súborový server. Ubuntu V tomto súbore sa exportuje podadresár / etc / bábka / súbory. V podadresári SSL budú certifikáty a tlačidlá použité na šifrovanie zákazníckych pripojení. Kľúče sa vytvoria automaticky, keď prvýkrát spustíte BUPEPPTMASTER, môžete ich vytvoriť ručne príkazom.

$ sudo / usr / bin / bábkammasterd -mkusers.

BUPPPTD.CONDF A BUPEPPTMASTERD.CONKOVACÍ sú podobné. Zahŕňajú niektoré parametre démonov na klínovi a serveri. Súbor klienta je iný len prítomnosťou serverový parameterUkazuje sa na počítač, na ktorom je puppetmasterd beží.

server \u003d grinder.com.

logdir \u003d / var / log / bábka

vardir \u003d / var / lib

rUNDIR \u003d / VAR / RUN

# Send Report Server

Aby ste sa neroztlačili všetko manuálne, môžete vytvoriť šablónu pomocou samotného bábky.

$ bábka -Genconfig\u003e /etc/puppet/puppetd.conf

Podobne môžete vytvoriť webové stránky.pp na serveri.

$ pupped -genmanifest\u003e /etc/puppet/manifests/site.pp

Ďalší súbor tagmail.conf vám umožňuje určiť poštové adresy, na ktoré budú odosielanie správ. V najjednoduchšom prípade môžete použiť jeden riadok.

všetko: [Chránené e-mail]

Konfiguračné súbory nestačia, aby sa klient mohol pripojiť k serveru. Ak to chcete urobiť, stále potrebujete podpísať certifikáty. Najprv, aby server dozviete o novom počítači na klientskom systéme, zadajte príkaz:

$ SUDO BUPPETD -SERVEROVÉHO GRINDER.com -waitforcert 60 -test

info: Žiadosť o certifikát

uPOZORNENIE: V tejto relácii SSL nebude overené

oZNÁMENIE: Nedostal certifikát

Ak je vydaný iný reťazec, mali by ste skontrolovať operáciu servera.

$ Ps aux | Grep bábka.

bábka 5779 0.0 1.4 27764 15404? SSL 21:49 0:00 RUBY / USR / SBIN / BUPOVNÍKAMASTERY

Brána firewall musí umožniť pripojenia k portu 8140.

Na serveri získame zoznam certifikátov, ktoré potrebujú podpisy.

$ sudo bábka-zoznam

nomad.grinder.com.

A predplatiť certifikát zákazníka.

$ sudo bábka -sign nomad.grinder.com

Teraz sa klient môže voľne pripojiť k serveru a prijímať nastavenia.

Bohužiaľ, všetky možnosti bábky v rámci článku show jednoducho nie je možné. Ale ako vidíte tento funkčný a flexibilný nástroj, ktorý vám umožní vyriešiť väčšinu úloh na simultánnom podaní veľkého počtu systémov. Ak musíte nakonfigurovať niekoľko systémov podľa prírody. A najdôležitejším projektom sa podarilo zbierať doteraz malú, ale neustále rastúcu komunitu. Preto dúfame, že dobrý nápad nebude dávať zomrieť alebo odísť.

Nie je to tak dávno na stránkach časopisu, videli sme systém diaľkové ovládanie Konfigurácia strojov CFENGINE UNIX, čo výrazne uľahčuje životnosť systémový administrátor Automatizáciou akcií na konfiguráciu viacerých sieťových uzlov. Ale bez ohľadu na to, aké pohodlné CFengine má mnoho nevýhod, ktoré je zbavené systému nazývaného bábky.

Predstavte si, že ako správca systému zodpovedný za udržiavanie výkonu stoviek a iných strojov bežiacich operačných systémov, ako napríklad UNIX. Každý z nich vyžaduje konfiguráciu, periodické aktualizácie a monitorovanie, zatiaľ čo sa predpokladá, že mnohé z nich vykonávajú podobné funkcie.

Dve tretiny sú pracovné stanice, niekoľko ďalších routers, zvyšok je niekoľko webových serverov a dátových skladov. OTÁZKA: Ako zvládnuť túto ekonomiku? Najjednoduchšia odpoveď sa ľahko pripojí k každému z nich pomocou SSH a vykonať potrebné zmeny. Táto metóda však má dva problémy. Po prvé, je to veľmi pracné. Po druhé, administratíva neustále bude musieť vykonávať mnoho monotónnych akcií (napríklad na aktualizáciu OpenOffice.org na všetkých pracovných staniciach, budete musieť dokončiť rovnaké príkazy niekoľkých desiatok času). Môžete sa pokúsiť vyhnúť tomuto problému písaním niekoľkých skriptov, ktoré sa pripoja k každému stroju a vykonajte pred predpísané príkazy. Ale tu čakáte na problémy.

Skripty budú neustále upravovať, aby ich prispôsobili každej úlohe; V skriptoch budú musieť zohľadniť rozdiel v operačných systémoch a verziách, budú musieť pred aplikáciou na pracovné stroje. Všeobecne platí, že nie sú v komore. Správna odpoveď je použitie takzvaných systémov diaľkového ovládania pre konfigurácie, ktorých najznámejšie zástupcovia sú otvorené systémy Cfengine a bábka. Takéto systémy sa zúčastňujú na všetky zodpovednosti za prinášanie konfigurácie strojov počúvanie, Náročné od administrátora len popis koncového stavu systému v špeciálnom jazyku (napríklad popis, ktorý balíky musia byť inštalované v operačnom systéme, ktoré rady by sa mali pridať do konfiguračných súborov, ktoré príkazy musia byť dokončené , atď.). Po tom, všetky uzly sami dostanú informácie o požadovanom stave zo servera a vykoná sa automatická autokonfigurácia. Vďaka tomuto mechanizmu môžu byť nové stroje plne nakonfigurované bez ľudského zásahu, a existujúce sú prekonfigurované pridaním len niekoľkých riadkov na stav stave.

Bábka?

Už sme venovali celý článok systém CFengine, takže dnes sa zameriame na bábkový systém, ktorý môže byť nazývaný jeho ideologický nasledovník. Bábka vyvinula Luke Kanies, ktorý bol unavený z CFengine obmedzenia a rozhodol sa vytvoriť jej dokonalý analógový analóg od nuly. Ak ste už používali Cfenfine, pravdepodobne nájdete bábkové pohodlnejšie a výkonný systém. Panelský stav Popis jazyka je vyšší a flexibilný, takže administrátor sa nemusí starať o také veci ako písanie jednotlivých pravidiel pre každý typ OS alebo detailný popis vykonávanie triviálnych akcií. Bábka umožňuje jeho pánovi zameraniu na to, čo chce urobiť, namiesto toho, aby to robil (napríklad nastaviť konkrétny balík na ktorýkoľvek z podporovaného systému operačného systému, stačí písať doslovne niekoľko riadkov, ktoré hovoria "nainštalovať tento program", Namiesto opisu príkazov potrebných na jeho inštaláciu). Bábka napísala jednoduchý jazyk Ruby, takže stačí, aby sa jednoducho zmestili do špecifickej úlohy a rozšíriť funkčnosť (je k dispozícii flexibilný pluginový systém).

Okrem toho, na rozdiel od modelu CFengine, ktorý sa skutočne otáča okolo jednej osoby, bola vytvorená veľká nadšená komunita, ktorá bola vytvorená okolo bábky, ktorá sa zdieľanie kódu zdieľajú príklady konfigurácie a písať dokumentáciu.

Všeobecne platí, že bábka poskytuje dojem modernejšieho a dobre sledovaného systému s dobrým dizajnom. Podobne ako CFengine, podporuje takmer všetky moderné OS podobné UNIX (vrátane Macos X) a môže tiež pracovať v prostredí cygwin cez okná. Zoznam svojich závislostí zahŕňa len rubínový tlmočník a faktor nástroj, takže by nemali existovať žiadne problémy s inštaláciou (spravodlivosť stojí za to povedať, že zoznam závislostí CFengine je tiež kratší).

Inštalácia

Podobne ako CFengne, Bábka je systém klient-server, ktorý sa skladá z riadiaceho servera a podriadených uzlov. Server ukladá opis koncových stavov uzlov (ktoré sa z hľadiska bábky nazývajú manifest) a čaká na ich pripojenie. Každý pol hodiny (predvolené) Klient sa pripojí k serveru, dostane od neho popis konečného stavu, skontroluje ho s prúdom a, ak a / alebo opísaný stav zmenil, posilnil systém, po ktorom ide do spánku . Komunikácia sa vykonáva cez šifrovaný kanál, takže útoky na základe substitúcie stavov stavu sú vylúčené (ale ak cracker zachytí server, potom budú všetky uzly pod jeho kontrolou).

Bábka je zahrnutá do úložiska všetkých populárnych distribúcií, takže jeho inštalácia by nemala spôsobiť ťažkosti. Napríklad v Debian / Ubuntu môže byť bábkový klient inštalovaný takto:

$ sudo apt-get inštalovať bábku

Server - tak:

$ sudo apt-get nainštalovať bábka puppetmaster

Konfiguračné súbory zákazníka a servera sú uložené v adresári / etc / bábka. Najdôležitejšie je z nich je /etc/puppet/manifests/site.pp súbor obsahujúci manifest.

Uloží sa popis stavu a mal by existovať len na serveri. Pre pohodlie ladení jednoduchá konfigurácia:


Trieda passwd (
Súbor ("/ etc / passwd":
Vlastník \u003d\u003e root,
Skupina \u003d\u003e root,
MODE \u003d\u003e 644,
}
}
Predvolené nastavenie uzla (
Zahŕňajú passwd.
}

Tieto riadky opisujú stav, v ktorom by mal byť majiteľom vlastníka / etc / passwd root, a prístupové práva na 644 sú nastavené na 644. V nasledujúcej časti budeme zvážiť formát zjavného súboru. Druhý najdôležitejší súbor sa nazýva /etc/puppet/puppet.conf. Nastavuje konfiguráciu servera a zákazníka, takže musí byť prítomný na všetkých strojoch organizovaných v bábkovej sieti. V Ubuntu tento súbor obsahuje nevyhnutné minimum a vo väčšine prípadov dostatočné nastavenia. Pod ich pripomienkami:

# Vi /etc/puppet/puppet.conf.
# Štandardné spôsoby katalógu
Logdir \u003d / var / log / bábka
Vardir \u003d / var / lib
Ssldir \u003d / var / lib / bábka / ssl
Rundir \u003d / var / beh / bábka
# Poloha nástrojov,
# Používa sa na získanie informácií o operačnom systéme
Factpath \u003d $ VARDIR / lib / faktor
# Synchronizácia pluginov
# (nainštalované pluginy na serveri - sú skopírované zákazníkom)
Pluginsync \u003d true.
# Katalóg so šablónmi (čítať o nich nižšie)
Templatedir \u003d $ confdir / šablóny
# Synchronizácia s ETCEKEKER
# (Kto vie - pochopí, zvyšok nepotrebuje)
PRERUN_COMMAND \u003d / ETC / BUNKPETY / ETCEKEKEKER-COMPORT
Postrrun_command \u003d / etc / BUNKPETY / ETCEKEKER-COMUNTPOST

Konfiguračný súbor môže obsahovať veľký počet Rôzne možnosti, ktorých informácie možno získať generovaním predvolenej konfigurácie:

$ sudo bábkamasterd-genconfig\u003e / etc / bábka /
BUPOPPDD.CONDF.DEFAULT.

Predvolená konfigurácia klienta je generovaná pomocou iného príkazu:

$ sudo bábka -Genconfig\u003e /etc/puppet/puppetd.conf.Default

FileServer.conf a Auth.conf súbory sa používajú na konfiguráciu súborového servera (prečítajte si to v časti Súbor Server) a autentifikáciu. Zatiaľ čo nemajú zmysel. Na konci konfigurácie musí byť bábkový server reštartovať:

$ sudo /etc/init.d/puppetmaster reštartujte

Potom bude pripravený prijať požiadavky zákazníkov. Avšak, bez podpísaného certifikátu, žiadny klient nemôže získať manifest zo servera a nakonfigurovať stroj.

Preto musíme spúšťať bábkové klienti v testovacom režime tak, aby mohli preniesť svoje certifikáty na podpisový server (mimochodom, súčasne na všetkých počítačoch, ktoré možno vykonať pomocou nástroja SHUUX):

$ SUDO BUPPETD -SERVEROVÝ BUSTOVÝ SERVER --VROSE -TEST

Vrátime sa na server a získame zoznam certifikátov pripravených na podpisy:

$ sudo bábka - zoznam

Vyberte hostiteľa zo zoznamu a podpíšte jej certifikát:

$ sudo bábka -sign nomad.grinder.com

Alebo sa prihlásime na všetko naraz:

$ sudo bábka -sign -all -all

Teraz môžete spustiť zákazníkov v bojovom režime. Najprv však musíte zaregistrovať názov bábkového servera v konfiguračnom súbore (štandardne jeho názov je len bábka):

$ sudo su.
# Echo "\u003e\u003e /etc/puppet/puppet.conf
# Echo "server \u003d bábka-server.com" \u003e\u003e /etc/puppet/puppet.conf
# VÝCHOD.

Spustiť zákazníkov:

$ sudo /etc/init.d/puppet Start

Jazyk Popis stavu

Ako je uvedené vyššie, bábka používa svoj vlastný jazyk opis jazyka konečného stavu operačného systému, s ktorým SYSADMIN indikuje, ako musia byť komponenty OS udelené na dosiahnutie požadovaného stavu. Toto je pomerne komplikovaný jazyk, ktorý je však oveľa jednoduchší ako akýkoľvek programovací jazyk. Ak ste aspoň povrchne oboznámení s bash skriptovým jazykom, môžete ľahko pochopiť bábkový jazyk. Kľúčovým prvkom jazyka je zdroje, s ktorými je popis založený na tom, ako by sa mal poskytnúť jeden z komponentov OS. Napríklad ďalší najjednoduchší zdroj opisuje požadovaný stav súboru / etc / passwd:

# Vi /etc/puppet/manifests/site.pp.
Súbor ("/ etc / passwd":
Majiteľ \u003d\u003e "root"
}

Tu je súbor zdrojov. Existuje niekoľko desiatok z nich, od zdrojov, ktoré spravujú súbory, ako v tomto príklade a končiacich balíčkov a služieb. ROW / ETC / PASSWD - Názov zdroja.

V prípade typu súboru sa názov zhoduje s cestou do súboru, avšak v niektorých iných typoch môže byť názov ľubovoľný. Rad majiteľa \u003d\u003e "root" popisuje inštaláciu vlastníka atribútu koreňovej hodnoty, to znamená, že vlastník (vlastník) zadaného súboru musí byť správcom.

Každý typ zdrojov má svoj vlastný súbor atribútov, ktoré sú k dispozícii na úpravu, plus sú špeciálne atribúty meta, ktoré môžu byť použité v akomkoľvek zdroji. Jednou z dôležitých kvality zdrojov je možnosť odkazu na ne. Toto môže byť použité na vytvorenie reťazcov závislosti. Nasledujúca položka vytvára zdroj / etc / skupinu, ktorá závisí od zdrojov / etc / passwd (závislosti sú špecifikované pomocou požiadaviek meta atribútu):

# Vi /etc/puppet/manifests/site.pp.
Súbor ("/ etc / group":
Vyžadujú \u003d\u003e súbor ["/ etc / passwd"],
Vlastník \u003d\u003e "root",
}

To znamená, že zdroj / etc / skupinový prostriedok môže byť nakonfigurovaný (daný na vyššie uvedené) len vtedy, ak je nakonfigurovaný zdroj / etc / passwd. Zdroje môžu byť zoskupené do zbierky zdrojov nazývaných triedy. Je potrebné, aby sa spojil podobný význam a typ úlohy vykonával zdroje v jednom abstraktnom zdroji. Napríklad, pre pohodlie by sme mohli kombinovať inštaláciu a spustenie webového servera NGINX na jeden abstraktný zdroj rovnakého mena:

# Vi /etc/puppet/manifests/site.pp.
Trieda nginx (
Balík ("nginx":
Skontrolujte \u003d\u003e nainštalované
}
Služby ("nginx":
Uistite sa \u003d\u003e Beh,
Vyžadujú \u003d\u003e balík ["nginx"],
}
}

Tu sa typ balíka zdroj používa na inštaláciu NGINX balíčka do systému a služba je spustenie služby rovnakého mena. Použitie Vyžadovať, nútiť systém na spustenie služby len vtedy, ak bol balík úspešne nainštalovaný. Pohodlie tried je, že môžu byť zahrnuté aj v závislosti od:

# Vi /etc/puppet/manifests/site.pp.
Service ("Squid":
Uistite sa \u003d\u003e Beh,
Vyžadujú \u003d\u003e trieda ["nginx"],
}

Rovnako ako v reálnych jazykoch OOP, triedy môžu navzájom zdediť a prepísať atribúty:

# Vi /etc/puppet/manifests/site.pp.
Trieda passwd (
Súbor ("/ etc / passwd":
Vlastník \u003d\u003e "root",
skupina \u003d\u003e "root",
}
}
Trieda Passwd-BSD zdedí passwd (
Súbor ["/ etc / passwd"] (skupina \u003d\u003e "koleso")
}

Trieda Passwd-BSD je zdedená z Passwd na prepísanie atribútu skupiny / etc / passwd (v BSD Systems / ETC / Passwd patrí do skupiny kolies, takže sme vytvorili samostatnú triedu pre takéto systémy). Neskôr považujeme za správnejší a zrejmý spôsob, ako vybrať alternatívne hodnoty atribútov pomocou podmienok.

Premenné sú jednou z neodcudziteľných komponentov akéhokoľvek programovacieho jazyka a v bábkovom jazyku. Premenné začínajú z $ Marka a môžu obsahovať ľubovoľné číslo, reťazec alebo booleanovú hodnotu (true, false):

$ Wall_apache \u003d true
$ Apache_version \u003d "2.2.14"

Jedným z najvýkonnejších vlastností bábkového jazyka spojeného s premennými je integrácia s nástrojom na získanie informácií o faktorovom stroji. Tento nástroj vráti všetky informácie špecifické pre stroj, vo forme párov "kľúčových hodnôt", ktoré sú v bábke transformované do premenných rovnakého mena. Spolu s podmienečnými pokynmi bábkového jazyka môžu byť použité na zmenu atribútov zdrojov v závislosti od vlastností stroja.

Napríklad trieda Passwd je opísaná vyššie môže byť ľahko prepísaná tak, aby automaticky zvolila atribút v závislosti od typu OS (už nie je potrebná trieda):

# Vi /etc/puppet/manifests/site.pp.
Súbor ("/ etc / passwd":
Vlastník \u003d\u003e "root",
Skupina \u003d\u003e $ jadro? (
Linux \u003d\u003e "root",
FreeBSD \u003d\u003e Koleso ",
},
}

V závislosti od toho, ktorý operačný systém bude analyzovaný týmto fragmentom zjavca, hodnota atribútov skupiny bude buď koreň alebo koleso. Okrem podmieneného operátora podporuje bábkový jazyk operátor voľby, ktorý môže byť použitý na vytvorenie jedného alebo iného zdroja v závislosti od hodnoty premennej:

# Vi /etc/puppet/manifests/site.pp.
Case $ operatingystem (
REDHAT: (SERVIS ("HTTPD": URČIŤ \u003d\u003e Beh))
Debian: (Service ("Apache": Skontrolujte \u003d\u003e Beh))
Predvolená hodnota: (Service ("Apache2": Skontrolujte \u003d\u003e
))
}

Tento kód definuje rôzne možnosti zdrojov pre typ servisu, v závislosti od operačného systému (názvy služieb v rôznych distribúcii Linuxu sa môžu líšiť, takže aký druh služby musí spustiť bábku, je potrebné špecifikovať individuálne pre každú z nich).

Predvolený variant sa používa, ak hodnota premennej nezodpovedá žiadnej z predchádzajúcich možností. Okrem predtým diskutovaných typov súborov zdrojov, balíčku a servisu podporuje bábka veľké množstvo druhých, vrátane tých, ktoré vytvorili vývojármi THERE-Page Type. Ich podrobný opis, vrátane príkladov, podporovaných atribútov a funkcií, môžete nájsť v oficiálnej dokumentácii - http://docs.puppetlabs.com/references/stable/TYPE.html. Nižšie je uvedený zoznam a stručný opis najpoužívanejších:

Populárne typy bábkových zdrojov

  • cron - Cron Management
  • exec - Spustenie skriptov a tímov
  • súbor - Správa súborov
  • fileBucket - Záložné súbory
  • skupina - Riadenie skupiny
  • hostiteľ - Správa záznamov v súbore / etc / hosts
  • rozhranie - Konfigurácia sieťových rozhraní
  • systémy montáže - montáž
  • upozorniť - odoslanie správy do súboru denníka bábka
  • balík - Manažment balíkov
  • služby - riadiace služby
  • sshkey - SSH Keys Management
  • upratané - odstrániť súbory v závislosti od podmienok
  • užívateľ - User Management
  • zóny - Manažment zón Solaris

Druhá po zdrojoch je dôležitosť bábkového jazyka - to sú uzly (uzly). Pomocou ich pomoci môže správca opísať, čo by sa mali uplatňovať tieto alebo iné zdroje a triedy na aké stroje. Inými slovami, toto je spôsob, ako špecifikovať individuálnu konfiguráciu pre každý zo strojov, ktoré sa zúčastňujú na bábkovom sieti. Najjednoduchší príklad uzla je uvedený na začiatku článku v časti "Inštalácia":

# Vi /etc/puppet/manifests/site.pp.
Predvolené nastavenie uzla (
Zahŕňajú passwd.
}

Toto je predvolený predvolený uzol, ktorý obsahuje zdroj / triedu passwd. Predvolené znamená "Všetky ostatné uzly", preto sa na každom z nich nakonfiguruje zdroj / trieda passwd definovaná niekde vyššie. Zahrnúť kľúčové slovo tu sa používa na pohodlie, v skutočnosti všetky triedy a zdroje môžu byť opísané priamo v popise stránky, ale neodporúča sa to urobiť. Okrem predvoleného nastavenia môžete zadať názov siete zariadenia v názve hostiteľa (potom všetky zdroje opísané v uzle budú nakonfigurované len na tomto stroji), alebo ľubovoľný názov (potom tento uzol môže byť zdedený iným uzlom) . Ak chcete pochopiť, ako to všetko funguje v spojení s triedami a zdrojmi, zvážte príklad pripraveného bábkového manifestu používaného na konfiguráciu dvoch sieťových strojov (webový server a NTP server):

# Vi /etc/puppet/manifests/site.pp.
# Inštalácia a spustenie SSH servera
Trieda sshd (
Balíček (OpenSSH-Server: Skontrolujte \u003d\u003e nainštalované)
Služba (SSHD:
Názov \u003d\u003e $ OperatingSystem? (
Fedora \u003d\u003e "SSHD",
Debian \u003d\u003e "ssh",
Predvolené \u003d\u003e "SSHD",
},
Povoliť \u003d\u003e TRUE,
Uistite sa \u003d\u003e Beh,
}
}
# Inštalácia a spustenie Apache
Trieda HTTPD (
Balenie (httpd: essuse \u003d\u003e nainštalované)
SERVIS (HTTPD:
Povoliť \u003d\u003e TRUE,
Uistite sa \u003d\u003e Beh,
}
}
# Inštalácia a spustenie NTP servera
Trieda ntpd (
Balík (NTP-Server: Skontrolujte \u003d\u003e nainštalované)
Služby (
NTP-Server:
Povoliť \u003d\u003e TRUE,
Uistite sa \u003d\u003e Beh,
}
}
# Základný uzol, ktorý sa používa len ako rodič všetkých ostatných
Základňa uzla (
Zahŕňajú SSHD.
}
# Uzol, na ktorom bude webový server umiestnený
Node Web.server.com Dedintits Base (
Interlus httpd.
}
# Np server uzol
Uzol NTP.server.com Dedintits Base (
Zahrnúť NTPD.
}

Táto jednoduchá konfigurácia robí veľa konfigurácie: vedie k inštalácii a spusteniu Apache na stroji s adresou Web.server.com a inštaláciou a spustením NTP servera autom ntp.server.com.. Okrem toho oba stroje inštalujú SSH server. Takáto konfigurácia je sotva usporiadaná aspoň jeden administrátor; Bude musieť vážne dokončiť, aby naučil správne konfigurovať servery, prijímať čerstvé konfigurácie a iné súbory z hlavičky bábky.

Jasne však ukazuje silu bábky. S pomocou jednoduchej konfigurácie sme to urobili tak, že samotné stroje nainštalujú a spustili potrebný softvér a podporili ho v pracovnom stave (ak spadá server, samotný bábka sa prehodnocuje, aby sa systém dostal do požadovaného stavu).

Súborový server.

Mnohé úlohy vzdialená správa Nie je možné vyriešiť bez kopírovania ďalších súborov na strojoch. To môže byť predpravené konfigurácie, webové stránky pre Apache, pakety, ktoré chýbajú v oficiálnom úložisku, a oveľa viac. Aby ste uľahčili proces prenosu týchto súborov do vzdialených uzlov, bábka obsahuje súborový server.

Nastavenia súboru Server sú uložené v súbore /etc/puppet/fileserver.conf. Nútiť bábku, aby zákazníkom poskytli zákazníkom obsah konkrétneho adresára, musíte v ňom dať niekoľko riadkov v ňom:

# Vi /etc/puppet/fileserver.conf.
Cesta \u003d / var / bábka / súbory
Povoliť * .server.com.

Tieto dva riadky ukazujú, že adresár / var / bábka / súbory musia byť prístupné všetkým hostiteľom domény server.com. Okrem toho môžeme špecifikovať úplné doménové meno povoleného stroja alebo jeho IP adresy, ako aj odrezať smernicu o odmietnutí. Potom môže byť akýkoľvek súbor tohto adresára premiestnený k klientovi pomocou prostriedku súborov. Napríklad:

# Vi /etc/puppet/manifests/site.pp.
Súbor ("/etc/httpd/conf/httpd.conf":
Zdroj \u003d\u003e "bábka: //httpd/httpd.conf",
MODE \u003d\u003e 644,
}

Súbor httpd.conf umiestnený na serveri v adresári / var / bábka / súboroch / httpd sa bude kopírovať do cieľového stroja na ceste zadanej v mene zdroja.

závery

V tomto článku sme sa pozreli na veľmi malú časť bábkových funkcií. V skutočnosti je to komplexný systém, plne opísaný len na stránkach knihy. Bábka je zároveň veľmi jednoduchá pri nastavovaní a sprievode, najmä preto, že môžete nájsť veľa príkladov jeho konfigurácie.

Info.

  • Bábka používa protokol HTTP, takže na zvýšenie výkonu môžete spustiť webový server.
  • Bábka môže byť použitý pre autokonfiguráciu a udržiavať jeden miestny stroj.
  • Kombinácia bábky, inštalácia siete OS (PXE-INŠTALÁCIA) A SAMOSTATOČNÉ INŠTALÁCIE SAMOSTATNOSTI, Môžete vytvoriť úplne samo-konfigurovateľnú sieť strojov, nasadiť, ktoré stačí na vykonanie jedného príkazu.
  • Bábka využíva mnoho veľkých spoločností v ich práci, ako napríklad Google, Fedora Project, Stanfordská univerzita, Red Hat, Siemens IT riešenie a Sugarcrm.

Odkazy.

  • http://docs.puppetlabs.com - bábková dokumentácia
  • http://docss.puppetlabs.com/guides/Language_Tutorial.html - Úplný popis bábkového jazyka
  • http://docss.puppetlabs.com/references/stable/TYPE.html - Typy prostriedkov

Keď sa počet serverov spravuje menej ako desať, sa zriedka zaujíma o svoje centralizované riadenie, nemusí to byť potrebné. Keď sú servery desiatky - centralizovaná kontrola softvéru a konfigurácií mimoriadne užitočná. Keď sú servery stovky a tisíce - je to životne dôležité. Existuje mnoho takýchto programov, napríklad: šéfkuchár, cfengine, bábka ... to je posledné a bude diskutovaná v tejto zápise.

Bábka sa považuje za jedným z najlepších riešení týmto spôsobom. Využíva spoločnosti ako Google, Citrix a Red Hat. Ide o aplikáciu klient-server napísaná v programovacom jazyku Ruby, ktorá sa rozprestiera na dve verzie:

  • Bábkový open source - plne bezplatná verzia
  • Bábkový podnik je bezplatná konfigurácia na 10 serverov, čo je potrebná na nákup licencií.

Zvážte inštaláciu servera a pupku otvoreného zdroja, ktorý je prítomný v balíkoch najmodernejších distribúcií. Ďalej pôjdeme o Ubuntu 12.04 Presie Pangolin.

Bábkový serverová časť sa volá bábka, Začnite z neho inštaláciu:

: ~ # Apt-get nainštalovať bábkummaster

A teraz klient:

: ~ # Apt-get inštalovať bábku

V konfiguračnom súbore klienta /etc/puppet/puppet.conf. Musíte povedať o serveri pridaním nasledujúcej časti:

Server \u003d Puppet.Local Report \u003d True Pluginsync \u003d FALSE

V počiatočnej fáze pluginsync je lepšie vypnúť.

Začnime klienta bábka, aby ste vytvorili žiadosť o certifikát:

: ~ # Puppet --Veterbose --test info: Vytvorenie nového kľúča SSL pre Linux.Local info: Vytvorenie novej požiadavky na SSL certifikát pre Linux.Local Info: Certifikačné odtlačky prstov (MD5): E5: EA: AC: 5B: 22: 9a: BA: 42: B8: A1: 63: 9E: 1F: 1F: 23: 51 Ukončenie; Nie je nájdený žiadny certifikát a waittercert je zakázaný

Na serveri je potrebné skontrolovať, či sa získa požiadavka certifikátu a ak áno, píšeme certifikát:

: ~ # Puppetca --List "Linux.Local" (E5: EA: AC: 5B: 22: 9A: BA: 42: B8: A1: 63: 9E: 1F: 1F: 23: 51): ~ # Puppetca - -Sign Linux.Local Upozornenie: podpísaná požiadavka na certifikát pre Linux.Local Upozornenie: Odstránenie bábka súboru :: SSL :: CertifikáciatereQuest Linux.Local na "/var/lib/puppet/ssl/ca/requests/linux.LOCAL.PEM"

Opakujte predchádzajúci krok na klientovi:

: ~ # BUPBERD -VERBOSE --Test info: caching Certifikát pre Linux.Local info: Načítanie plugin info: caching crelection_revocation_list pre Ca Info: caching katalóg pre Linux.Local info: aplikovanie konfiguračnej verzie "1356278451" Info: Vytvorenie štátneho súboru / Var / lib / bábka / stav / state.yaml UPOZORNENIE: Dokončené katalóg behom za 0.02 sekundy

Skvelé, všetko funguje. Choďte na vytvorenie prvého manifestu. Manifest, sú opísané v špeciálnom deklaratívnom jazyku. Budeme sa okamžite postarať o dobro, použite modulárnu štruktúru a triedy. Napríklad napíšeme modul, ktorý bude udržiavať aktuálny súbor / etc / hostitelia Na všetkých našich serveroch.

Skontrolujte, či Bábka hľadá moduly:

: ~ # Bábka Aplikujte --ConfigPrint MODULAPATH / ETC / BUNCHPETY / MODULS: / USR / SHARE / SHARE

Vytvorte adresáre pre váš modul

: ~ # CD / etc / bábky / moduly: ~ # mkdir hostitelia; CD Hostitelia; MKDIR sa prejavuje; CD sa prejavuje.

Prvým manifestom je hlavným súborom modulu - mal by sa nazývať init.pp.

Trieda Hosts (# Puppet.Local Host ("Puppet.Local": Skontrolujte \u003d\u003e "prítomný", TARGET \u003d\u003e "/ etc / hosts", IP \u003d\u003e "192.168.0.1", host_alias \u003d\u003e "Bábka",) Linux .Local Host ("Linux.Local": Skontrolujte \u003d\u003e "prítomné", TARGET \u003d\u003e "/ etc / hosts", IP \u003d\u003e "192.168.0.2", host_alias \u003d\u003e "Linux",)

Štandardne hľadá bábka. /etc/puppet/manifests/site.pp. Ak chcete prevziať konfiguráciu, dajte ho nasledujúcemu formuláru:

Predvolené nastavenie uzla (vrátane hostiteľov)

Kontrola manifestu na serveri:

: ~ # Bábka Aplikovať --Verbose /etc/puppet/manifests/site.pp Info: Aplikácia konfiguračnej verzie "1356281036" Upozornenie: / Stage // Host / Samozrejme: Vytvorené informácie: FileBucket Pridávanie (MD5) Upozornenie: / Stage // Host / Samozrejme: Vytvorené upozornenie: Dokončený katalóg RUN RUNNOSŤ za 0.03 sekúnd

Na klientovi:

: ~ # Ll / etc / hosts rw-r - r- r- 1 root root 290 december 16 19:10 / atď / hostitelia: ~ # BUPBPTD --Verbose --test info: caching katalóg pre Linux.Local info: aplikovanie konfigurácie Verzia "1356283380" Info: Filebucket Pridanie Upozornenie: / Stage / Hosts / Host / Skontrolujte: Vytvorené oznámenie: Vytvorené upozornenie: Dokončené katalóg RUN za 0.04 sekúnd: ~ # ll / etc / hosts -rw-r - r- 1 koreň root 551 DEC 23 20:43 / ETC / HOSTS

Potom, čo sme sa uistili, že všetko funguje, umožňuje službu začať službu, v / etc / default / bábka Zmena:

# Spustite bábku na topánke? Štart \u003d ÁNO.

Spustiť službu

: ~ # Service Puppet Start

Bábka bude vypočuť spočenec BUPPTPMASTER SERVERATEĽA Každých 30 minút na zmenu konfigurácie av prípade potreby vykonajte príslušné nastavenie systému.

Sergey Yaremchuk

Centralizovaná konfigurácia systému UNIX pomocou bábky

Riadenie veľkého počtu systémov UNIX nie je možné nazývať pohodlné. Ak chcete zmeniť jeden parameter, správca má prístup k každému stroju, skripty môžu len čiastočne pomôcť a nie vo všetkých situáciách.

Je potrebné si uvedomiť, že správcovia Windows-Network sú stále vo výhodnejšej pozícii. Stačí zmeniť nastavenia politiky skupiny, a po chvíli všetky sieťové počítače, vrátane novo nainštalovaného operačného systému, "uznávajú" o inovácii, ak sú samozrejme záujem. Pri pohľade na dlhú dobu vývoja Unixu je možné poznamenať, že nič také nepatrilo. Existujú riešenia ako Kickstart, ktoré pomáhajú pri primárnej inštalácii operačného systému, ale ďalšia dokončovacia úprava bude vyžadovať značné úsilie. Komerčné riešenia, ako je Bladelogic a Opsware, problém automatizácie nastavení riešiť len čiastočne, ich hlavnou výhodou je prítomnosť grafického rozhrania a iba veľké organizácie ich môžu získať. Samozrejme, existujú projekty, ktoré ponúkajú bezplatné riešenia, ale po celú dobu ich existencie nemohli vytvoriť veľkú komunitu. Napríklad CFengine nie je veľmi populárny s popularitou pulpites, hoci, okrem Linuxu, môže byť použitý v * BSD, Windows a Mac OS X. Možno súvisí s relatívnou zložitosťou pri vytváraní konfigurácií. Pozitívne úlohy musia brať do úvahy vlastnosti každého špecifického systému a manuálne ovládať postupnosť akcií pri vykonávaní príkazov. To znamená, že správca musí pamätať, že pre niektoré systémy je potrebné písať addruder pre iných - Userradd, berte do úvahy umiestnenie súborov v rôznych systémoch a tak ďalej. Toto je poradie veľkosti komplikuje proces písania príkazov, je veľmi ťažké vytvoriť správnu konfiguráciu z go, a vytvorené konfigurácie čítať v určitom čase takmer nereálne. Napriek licencii CFEGINE GPL v skutočnosti projekt jednej osoby, ktorá kontroluje všetky zmeny a nemá veľký záujem o budovanie otvorenej spoločnosti. Výsledkom je, že CFengine je celkom uspokojujúci vývojár, a pre zostávajúcich správcov je skôr prebytočnou bolesťou hlavy. Na zlepšenie CFengine boli vytvorené rôzne dodatky vývojárov tretích strán, ktoré situáciu často zhoršili. Autorka niekoľkých takýchto modulov do CFengine Luke Kanies (Luke Kanies) Vitoga sa rozhodol vyvinúť podobný nástroj, ale bez mnohých cfengine chybov.

Bábkové funkcie

Bábka, podobne ako CFengine, je systém klient-server pomocou deklarácie, to znamená, že je povinné vykonať jazyk na opis úloh a knižnice pre pevné. Zákazníci pravidelne (štandardne každých 30 minút) sú pripojené k centrálnemu serveru a prijímať poslednú konfiguráciu. Ak nastavenia nie sú zhodné so stavom systému, budú vykonané, ak je to potrebné, server sa vzťahuje na operácie operácií. Server správy môže uložiť softwarelog alebo súbor, vytvoriť program RRD, odoslať na zadaný e-mail. Ďalšie úrovne abstrakcie transakcií a zdrojov poskytujú maximálnu kompatibilitu s sovietskymi nastaveniami a aplikáciami, čo vám umožní zamerať sa na systémové objekty, bez toho, aby ste sa starali o rozdiely v implementácii a popisovaní podrobných príkazov formátov súborov. Správca pôsobí len s typom objektu, zvyšok bábky sa na seba. Typ balíkov teda vie o 17 dávkových systémoch, ktoré sa automaticky vykazujú na základe informácií o verzii distribúcie alebo systému, hoci v prípade potreby môže byť dávkový manažér násilne pridaný.

Na rozdiel od skriptov, ktoré sú často nemožné používať v iných systémoch, bábkové konfigurácie napísané administrátormi tretích strán väčšinou pracujú v akejkoľvek inej sieti. Bábkový kuchárka už má tri desiatky receptov hotových receptov. Momentálne, bábka oficiálne podporuje tieto operačné systémy a služby: Debian, Redhat / Fedory, Solaris, Suse, Centos, Mac OS X, OpenBSD, Gentoo a MySQL, LDAP.

Bábka. Jazyk

Ak chcete pokračovať, najprv by sa mali riešiť hlavným prvkom a jazykovým schopnostiam. Jazyk je jednou z silných stránok bábky. S tým popisuje zdroje, ktoré správcovi plánuje riadiť a akcie. Na rozdiel od väčšiny takýchto riešení vám pániteľský jazyk umožňuje zjednodušiť výzvu na všetky podobné zdroje na akomkoľvek systéme v heterogénnom prostredí. Popis prostriedku spravidla pozostáva z mena, typu a atribútov. Zadajte napríklad súbor / etc / passwd a nainštalujte jeho atribúty:

súbor ("/ etc / passwd":

Vlastník \u003d\u003e root,

Skupina \u003d\u003e root,

MODE \u003d\u003e 644,

Teraz zákazníci, pripojenie k serveru, skopírujte súbor / etc / passwd súbor a nainštalujte zadané atribúty. V jednom pravidle môžete definovať niekoľko prostriedkov naraz, oddeliť ich bodom so čiarkou. A čo ak sa konfiguračný súbor používaný na serveri líši od klienta alebo sa vôbec nepoužíva? Táto situácia môže nastať napríklad, keď sú pripojenia VPN nastavenia. V tomto prípade by ste mali špecifikovať súbor smernice o zdrojoch. Tu sú dve možnosti, môžete, ako obvykle určiť cestu k súboru CCDRUG, ako aj pomocou dvoch protokolov URI, ktoré sú podporované: súbor a bábka. V prvom prípade sa používa odkaz na externý server NFS servera, v druhej verzii bábky je spustená služba podobná NFS, ktorá vyváža zdroje. V druhom prípade je štandardne uvedená cesta vzhľadom na koreňový adresár bábka / etc / bábka. To znamená, že Link Puppet: //server.domain.com/config/sshd_config bude zodpovedať súboru / etc / bábku / config / sshd_config. Tento katalóg môžete prepísať do smernice FILEBUCKET, hoci je viac správnej časti na používanie sekcie rovnakého mena v súbore /etc/puppet/fileserver.conf. V tomto prípade môžete obmedziť prístup k službe iba sofistikovaných adries. Popíšeme napríklad sekciu Config:

Cesta / var / bábka / config

Povoliť *. Domain.com.

Povoliť 127.0.0.1

Povoliť 192.168.0. *

Povoliť 192.168.1.0/224

Odmietnuť * .wireless.domain.com.

A potom sa pozrite v tejto časti pri popisení zdrojov:

zdroj \u003d\u003e "bábka: //server.domain.com/config/sshd_config"

Predtým, ako kolon je názov zdroja. V najjednoduchších prípadoch môžete jednoducho zadať úplnú cestu k súboru. V zložitejších konfiguráciách je lepšie použiť alias alebo premenné. Alias \u200b\u200bsa stanovuje pomocou smernice o alias:

súbor ("/ etc / passwd":

Alias \u200b\u200b\u003d\u003e passwd

Ďalšou možnosťou vytvoriť pseudonym je vhodný v prípade, keď sa musíte zaoberať rôznymi operačnými systémami. Napríklad vytvorte zdroj, ktorý opisuje súbor sshd_config:

súbor (sshdconfig:

Názov \u003d\u003e $ OperatingSystem? (

Solaris \u003d\u003e "/ usr / local / etc / ssh / sshd_config",

Predvolené \u003d\u003e\u003e "/ etc / ssh / sshd_config"

V tomto príklade sme čelia možnosti voľby. Súbor pre Solaris je špecifikovaný samostatne, súbor / etc / ssh / sshd_config bude vybraný pre všetky ostatné. Teraz môžete kontaktovať tento zdroj ako Sshdconfig, v závislosti od operačného systému bude vybratá požadovaná cesta. Napríklad uvádzame, že ak sa spustí démon SSHD a prijatý nový súbor, mali by ste reštartovať službu:

služba (SSHD:

Uistite sa \u003d\u003e TRUE,

Prihlásiť sa \u003d\u003e súbor

Premenné sa často používajú pri práci s užívateľskými údajmi. Napríklad opíšte umiestnenie adresárov domácej adresára:

$ Homeroot \u003d "/ home"

Teraz môžete kontaktovať súbory konkrétneho používateľa ako:

$ (HOMEROOOOOT) / $ NAME

Názov účtu užívateľa bude nahradený v parametri $ NAME. V niektorých prípadoch je vhodné určiť predvolenú hodnotu pre určitý typ. Napríklad pre typ exec, adresár, v ktorých by mali vidieť spustiteľný súbor, sú veľmi často uvedené:

Exec (cesta \u003d\u003e "/ usr / bin: / bin: / usr / sbin: / sbin")

V prípade, že potrebujete určiť niekoľko vnorených súborov a adresárov, môžete použiť parameter recurse:

súbor ("/etc/apache2/conf.d":

Zdroj \u003d\u003e "bábka: // bábka: //server.domain.com/config/apache/conf.d",

Recurse \u003d\u003e "true"

Niekoľko zdrojov je možné kombinovať do tried alebo definícií. Triedy sú dokončené popis systému alebo služby a používajú sa na oddelenie:

trieda Linux

Súbor (

"/ atď / passwd": over \u003d\u003e koreň, skupina \u003d\u003e koreň, režim \u003d\u003e 644;

"/ Etc / Shadow": Ovner \u003d\u003e koreň, skupina \u003d\u003e koreň, režim \u003d\u003e 440

Rovnako ako v objektovo orientovaných jazykoch, triedy môžu byť prepísané. Napríklad v FreeBSD skupiny-majiteľ týchto súborov je koleso. Preto nie, aby ste nezískali zdroj úplne, vytvorte novú triedu FreeBSD, ktorá zdedí trieda Linux:

trieda FreeBSD inherits Linux (

Súbor ["/ etc / passwd"] (skupina \u003d\u003e koleso);

Súbor ["/ etc / Shadow"] (skupina \u003d\u003e koleso)

Pre pohodlie môžu byť všetky triedy vniknúť do samostatného súboru na pripojenie smernice. Definície môžu trvať mnoho parametrov ako argumenty, ale nepodporujú dedičstvo a používajú sa, ak potrebujete opísať použité viaceré objekty. Napríklad definujeme domovský adresár používateľov a príkazov, ktoré potrebujete na vytvorenie nového účtu:

definovať user_homedir ($ Group, $ FullName, $ Ingroups) (

Užívateľ ("$ NAME":

Skontrolujte \u003d\u003e prítomné

Komentár \u003d\u003e "$ fullname",

Gid \u003d\u003e "$ skupina",

Skupiny \u003d\u003e $ Ingroups,

Členstvo \u003d\u003e minimum,

Shell \u003d\u003e "/ Bin / Bash",

HOME \u003d\u003e "/ HOME / $ NAME",

Vyžadujú \u003d\u003e skupina [$ skupinu],

Exec ("$ NAME HOMEDIR":

Príkaz \u003d\u003e "/ bin / cp -r / etc / skel / home / $ name; / bin / chown -r $ NAME: $ Skupina / HOME / $ NAME

Vytvorí \u003d\u003e "/ Home / $ Name",

Vyžadujú \u003d\u003e používateľ [$ name],

Ak chcete vytvoriť nový účet, stačí kontaktovať Uster_homedir:

user_homedir ("Sergej":

Skupina \u003d\u003e "Sergej",

FULLNAME \u003d\u003e "Sergej Jaremchuk",

Ingroups \u003d\u003e ["Media", "admin]

Samostatne popisuje uzly (uzol), ktoré podporujú dedičstvo, ako aj triedy. Keď je klient pripojený k pupku serveru, vyberie sa príslušný sekcia uzla a nastavenia špecifické len pre tento počítač. Ak chcete opísať všetky ostatné systémy, môžete použiť predvolené nastavenie uzla. Opis všetkých typov je uvedený v dokumente "Type Reference", s ktorým musíte čítať v každom prípade, aspoň s cieľom pochopiť všetky funkcie bábkového jazyka. Rôzne typy umožňujú tieto príkazy, vrátane pri vykonávaní určitých podmienok (napríklad zmena konfiguračného súboru), pracovať s CRON, povereniami a užívateľskými skupinami, počítačmi, namontovanými zdrojmi, počiatočnými a zastavovacími službami, inštaláciou, aktualizáciou a vymazaním balíkov, práce s SSH Kľúče, Solaris zóny a tak ďalej. To je, ako je možné vykonať jednoduché aktualizáciu zoznamu balíkov v distribúciách pomocou APT, denne medzi 2 a 4 hodinami:

plán (denne:

Obdobie \u003d\u003e denne

Rozsah \u003d\u003e

exec ("/ usr / bin / apt-get aktualizácia":

Plán \u003d\u003e Denne

Aktualizácia pre toto obdobie každým systémom bude vykonaná len raz, po ktorej sa úloha považuje za vykonanú a bude odstránená z klientskeho počítača. Bábkový jazyk podporuje iné známe štruktúry: Podmienky, funkcie, polia, Komentáre a podobné.

Inštalácia bábky.

Bábka bude vyžadovať Ruby (počnúc verziou 1.8.1 a vyšším) s OpenSSL podporou a knižnicami XMLRPC, rovnako ako rýchlejšia knižnica. V úložisku Ubuntu 7.04, ktorý bol použitý počas skúšobnej inštalácie, paket Puppy je už povolený:

$ sudo apt-cache Hľadať bábka

~ $ RUBY -RXMLRPC / KLIENT A KLIENTOU - POTREBY: YEP "

yep.

Ak nie sú prijaté chyby, znamená to, že všetko, čo potrebujete, je už zahrnutý. Súbory, ktoré opisujú požadovanú konfiguráciu systému, bábková terminológia sa nazýva manifests (manifests). Pri spustení sa démon pokúša čítať /etc/puppet/manifests/site.pp súbor, pričom jeho neprítomnosť dáva varovnú správu. Pri testovaní môžete zadať démon, aby ste mohli pracovať v režime offline, v ktorom sa vyžaduje manifekt:

$ sudo / usr / bin / bábkamasterd -Nonodes

Ak je to potrebné, iné súbory môžu byť pripojené na stránke.pp, ak sa môžete pripojiť. Pre skúšobný beh do tohto súboru môžete aplikovať najjednoduchšie pokyny.

trieda sudo (

Súbor ("/ etc / sudoers":

Vlastník \u003d\u003e root,

Skupina \u003d\u003e root,

MODE \u003d\u003e 440,

predvolené nastavenie uzla (

Zahŕňajú sudo.

Všetky konfiguračné súbory, oba servery a zákazníci sa nachádzajú v / etc / BUPPTP. Súbor filesserver.conf, ktorý sme už hovorili, sa nevyžaduje a používa sa len vtedy, keď bude bábka fungovať aj ako súborový server. Ubuntu V tomto súbore sa exportuje podadresár / etc / bábka / súbory. V podadresári SSL budú certifikáty a tlačidlá použité na šifrovanie zákazníckych pripojení. Klávesy sa vytvoria automaticky, keď prvý spustíte BUNCHPETMASTERD, môžete ich manuálne vytvoriť s príkazom:

$ sudo / usr / bin / bábkammasterd --mkusers

BUPPPTD.CONDF A BUPEPPTMASTERD.CONKOVACÍ sú podobné. Zahŕňajú niektoré parametre démonov na klientskom systéme a serveri. Súbor klienta sa líši len o prítomnosť parametra servera, ktorý zadá počítač, na ktorom je spustený bábka:

server \u003d grinder.com.

logdir \u003d / var / log / bábka

vardir \u003d / var / lib

rUNDIR \u003d / VAR / RUN

# Send Report Server

správa \u003d TRUE.

Ak chcete nevytlačiť všetko manuálne, môžete vytvoriť šablónu pomocou bábky:

$ bábky --Genconfig\u003e /etc/puppet/puppetd.conf

Podobne môžete vytvoriť obe stránky.pp na serveri:

$ bábky -genmanifest\u003e /etc/puppet/manifests/site.pp

Ďalší súbor tagmail.conf vám umožňuje určiť poštové adresy, na ktoré budú odosielanie správ. V najjednoduchšom prípade môžete použiť jeden riadok:

všetko: [Chránené e-mail]

Konfiguračné súbory nestačia, aby sa klient mohol pripojiť k serveru. Ak to chcete urobiť, stále potrebujete podpísať certifikáty.

Po prvé, že server sa učí o novom počítači, zadáme príkaz na klientskom systéme:

$ sudo bábkavý --server grinder.com --waitforcert 60 -test

Brána firewall musí umožniť pripojenia k portu 8140.

Na serveri dostávame zoznam certifikátov, ktoré potrebujú podpisy:

$ sudo bábka-zoznam

nomad.grinder.com.

A predplatiť certifikát klienta:

$ sudo bábka -sign nomad.grinder.com

Teraz sa klient môže voľne pripojiť k serveru a prijímať nastavenia.

Bohužiaľ, všetky vlastnosti bábky v článku sú nemožné. Ako však vidíte, je to funkčný a flexibilný nástroj, ktorý vám umožní vyriešiť väčšinu úloh na súčasnom podávaní veľkého počtu systémov. A čo je najdôležitejšie, projekt sa podarilo zbierať doteraz malú, ale neustále rastúcu komunitu. Preto dúfame, že dobrý nápad nebude dávať zomrieť alebo odísť.

Veľa štastia!

  1. Miesto Bladelogic Project - http://www.bladelogic.com.
  2. Opsware projektové stránky - http://www.opsware.com.
  3. CFEGINE projektové stránky - http://www.cfengine.org.
  4. Bábkové stránky projektu http://redecveLabs.com/projects/puppet.
  5. Bábkový kuchárka - http://www.reduktivelabs.com/trac/puppet/tagspuppets%2CRECIPE.
  6. Rýchlejšia knižnica -


Páči sa vám článok? Zdieľaj to