Cum de a deveni un păpușar sau păpuși pentru începători

Alo

Acest subiect se deschide o serie de articole cu privire la utilizarea sistemelor de management a configurației Puppet.

Ce este un sistem de management a configurației?


La fel ca totul a fost simplu și bun. Am nevoie de ceva de făcut - a scrie un script nou, executați. Modificările vin la toate serverele în mod consecvent. În cazul în care este bine stabilit script-ul - totul va fi bine. Pentru moment.

Acum, imaginați-vă că serverul are mai mult. De exemplu, o sută. O schimbare pe termen lung - de exemplu, să construiască ceva mare și înfricoșător (de exemplu, kernel-ul) de la sursă. Script-ul va rula o sută de ani, dar nu e așa de rău.

Imaginați-vă că trebuie să faceți este doar la un anumit grup de sute de servere. Și două zile mai târziu pentru a face o altă sarcină mare pe un alt server felie. Va trebui să rescrie scenariul de fiecare dată, și o mulțime de timp pentru a verifica dacă acestea unele greșeli ce nu va provoca nu există nici o problemă la pornire.

Cel mai rau lucru - este că, în aceste scripturi, descrie acțiunea. care trebuie să fie făcut pentru a aduce sistemul într-un anumit stat, mai degrabă decât foarte această stare. Deci, în cazul în care sistemul nu a fost inițial în starea pe care era de așteptat, atunci totul merge neapărat greșit. manifestele Puppet descrie starea dorită declarativ a sistemului, și calcularea modul în care el este să iasă din starea actuală - o problemă cele mai multe sisteme de management a configurației.

Pentru comparație: vădită de păpuși, face aceeași lucrare ca și cea a unui cuplu de script-uri de la începutul subiectului:

Dacă sunt folosite în mod corespunzător servere și să-și petreacă ceva timp cu privire la configurația inițială a sistemului de management a configurației, se poate realiza o astfel de stare de serverele parcului, nu este nevoie să vă conectați pentru a le face munca. Toate modificările necesare vor fi trimise pentru a le automat.

Ce este o păpușă?


Puppet - configurarea sistemului de control. Arhitectura - un client-server, configurările de server sunt stocate (în termeni de păpuși care sunt numite) clienților acces manifeste la server, și le-a lua folosit. Păpuși a fost scris în limba Ruby în sine sunt scrise într-manifestele un DSL special, foarte similar cu mine Ruby.

primii pași


Să uităm de client, server, interacțiunile lor, etc. Să presupunem că avem doar un singur server care rulează sistemul de operare goale (în continuare, eu lucrez în Ubuntu 12.04, pentru alte sisteme de acțiune va varia în funcție).

În primul rând, instalați cea mai recentă versiune a păpușii.

Minunat. Acum avem instalat sistemul marionetă și poate juca cu ea.

Bună ziua, lume!


Să creeze primul manifest:

Un pic despre funcționare

Manifestele date în acest subiect poate fi aplicat manual, cu o păpușă aplică. Cu toate acestea, în următoarele subiecte vor fi utilizate pentru configurarea master-slave (standard pentru Puppet).


Acum, uita-te la conținutul fișierului / tmp / HelloWorld. În ea va fi (surpriza!) Linia de «Bună ziua, lume!», Pe care le-am stabilit în manifest.

Să rânduri Să examinăm ceea ce este conținut în manifestul nostru:


Termenii Puppet descris aici numele fișierului resursă tip (titlu) / tmp / HelloWorld.


Resource - este cea mai mică unitate de abstractizare în păpuși. Resursele pot fi:
  • fișiere;
  • pachete (sistem de pachete de păpuși suportă multe distribuții);
  • servicii;
  • utilizatori;
  • grup;
  • locuri de muncă cron;
  • și t. d.

resurse de sintaxă poți spiona nestingherit în documentație.

Păpușa au posibilitatea de a adăuga propriile lor resurse. Prin urmare, în cazul în care un zamorochitsya bun, puteți rula ca pe manifestele:

Puppet, astfel, va crea o dimensiune de volum logic de 1 GiB server, în cazul în care este necesar să-l monta (de exemplu, în /var/www/example.com), se adaugă intrările dorite în fstab, pentru a crea gazde virtuale dorite în Nginx și apache, reporniți atât daemon adăugați FTP și example.com SFTP parola de utilizator mySuperSecretPassWord cu acces de scriere la gazdă virtuală.

Tasty? Nu este un cuvânt!

Mai mult, cele mai delicioase, în opinia mea - acest lucru nu este automatizarea de rutină. Dacă ești un idiot, și în mod constant peresetaplivaete serverele într-un mod de producție, va permite de a ridica un vechi de păpuși artizanale cu dragoste un set de pachete și fișiere de configurare de la zero într-un mod complet automat. Pur și simplu instalați Puppet-agent, conectați-l la dvs. de păpuși-maestru și de așteptare. Totul va veni de la sine. Pe serverul magic (nu, într-adevăr magic!) Calea va pachetele vor descompune ssh-chei, setați firewall-ul va veni setările personalizate bash, rețea, instalați și configurați toate software-ul pe care prudent setat folosind păpuși.
În plus, la diligența de păpuși oferă un sistem de auto-documentare pentru configurare (manifestele) ele însele sunt coloana vertebrală a documentației. Ele sunt întotdeauna relevante (acestea au fost de lucru), acestea nu sunt erori (verificați setările înainte de a începe), ele detaliate minime (toate la fel).

Un pic mai mult de magie

Un pic despre krossdistributivnosti

Păpușa este posibil să se utilizeze manifestele krossdistributivnye, acesta este unul dintre scopurile pentru care a fost creat. Am intenționat niciodată folosit și nu recomanda. Park Server ar trebui să fie cât mai omogenă din punct de vedere al software-ului de sistem, vă permite să se gândească în momentele critice „ayblin, aici
rc.d, dar nu sunt init.d »(un nod la ArchLinux) și, în general, permite să se gândească mai puțin la sarcini de rutină.

Multe resurse sunt dependente de alte resurse. De exemplu, pentru resursa, „serviciul sshd“ are nevoie de o resursă, „pachetul sshd“ și opțional „config sshd“
Să vedem cum acest lucru este pus în aplicare:

Acesta utilizează o configurație în linie, ceea ce face manifest urât. De fapt, acest lucru este aproape niciodată terminat, există un șablon de motor bazat pe ERB, și capacitatea de a folosi doar fișiere externe. Dar noi nu suntem interesați.

Liniile cele mai delicioase de aici - această linie de dependență - VALORIFICARE și să vă abonați.

Păpuși suportă multe dependențe descrie opțiunile. În detaliu, ca întotdeauna, puteți citi documentația.

  • Necesită înseamnă exact ceea ce este de așteptat. Dacă resursa A este dependent (necesită) din resursa B, atunci Puppet va procesa prima resursa B, și apoi revine la resursa A.
  • Abonați-vă oferă un comportament puțin mai complicat. În cazul în care resursa A semnat (abona) la resursa B, atunci Puppet va procesa prima resursa B, și apoi revine la resursa A (comportament cum ar fi nevoie), și modificări suplimentare la B, A. va fi re-prelucrate Este foarte convenabil pentru a crea servicii care depind configurația lor sunt (în exemplul de mai sus). În cazul în care modificările de configurare, reporniți serverul, nu aveți nevoie să vă faceți griji despre asta.

Există, de asemenea, să notifice. înainte. dar noi suntem aici, nu vom atinge. Pentru cei interesați - în documentația deja upopomyanutuyu.

Link-uri conexe