Differences

This shows you the differences between two versions of the page.

Link to this comparison view

saisp:labs:10:contents:02 [2014/01/21 21:52]
alexandru.carp
saisp:labs:10:contents:02 [2014/05/12 16:55] (current)
alexandru.carp
Line 1: Line 1:
-==== 02. Manifeste Puppet ====+==== 02. [20p] Manifeste Puppet ====
  
 Cu toate ca putem crea, modifica sau sterge resurse folosind comenzi de tip ''​puppet resource'',​ aceasta nu este o solutie potrivita pentru situatii complexe. ​ Cu toate ca putem crea, modifica sau sterge resurse folosind comenzi de tip ''​puppet resource'',​ aceasta nu este o solutie potrivita pentru situatii complexe. ​
Line 9: Line 9:
 Fisierele ce contin declarari de resurse Puppet se numesc **manifeste** si au, de obicei, extensia **.pp**. Fisierele ce contin declarari de resurse Puppet se numesc **manifeste** si au, de obicei, extensia **.pp**.
  
-===== Crearea unui manifest ​=====+=== Crearea unui manifest ===
  
 Vom scrie un manifest care sa descrie o resursa de tip fisier. Fisierul va avea urmatoarele proprietati:​ Vom scrie un manifest care sa descrie o resursa de tip fisier. Fisierul va avea urmatoarele proprietati:​
Line 16: Line 16:
   * continut: "File created using Puppet";​   * continut: "File created using Puppet";​
  
-Declararea resursei va arata astfel: +Declararea resursei va arata astfel:<​code>​
-<​code>​+
 file {'​my_file':​ file {'​my_file':​
   path    => '/​tmp/​my_file',​   path    => '/​tmp/​my_file',​
Line 29: Line 28:
  
  
-===== Aplicarea unui manifest ​=====+=== Aplicarea unui manifest ===
  
-Aplicarea unui manifest se executa folosind comanda ''​puppet apply'':​ +Aplicarea unui manifest se executa folosind comanda ''​puppet apply'':<​code>​
- +
-<​code>​+
 [root@learn ~]# puppet apply my_file_manif.pp [root@learn ~]# puppet apply my_file_manif.pp
 Notice: Compiled catalog for learn.localdomain in environment production in 0.18 seconds ​                             Notice: Compiled catalog for learn.localdomain in environment production in 0.18 seconds ​                            
Line 42: Line 39:
 Verificati ca fisierul a fost creat, iar continutul si drepturile de acces sunt corecte. Verificati ca fisierul a fost creat, iar continutul si drepturile de acces sunt corecte.
  
-Incercati sa aplicati din nou manifestul: +Incercati sa aplicati din nou manifestul:<​code>​
- +
-<​code>​+
 [root@learn ~]# puppet apply my_file_manif.pp [root@learn ~]# puppet apply my_file_manif.pp
 Notice: Compiled catalog for learn.localdomain in environment production in 0.16 seconds Notice: Compiled catalog for learn.localdomain in environment production in 0.16 seconds
Line 50: Line 45:
 </​code>​ </​code>​
  
-Observati ca daca sistemul ​este deja in starea descrisa de manifest, Puppet nu mai executa nici o actiune.+Observati ca daca resursa ​este deja in starea descrisa de manifest, Puppet nu mai executa nici o actiune.
  
 +Modificati drepturile de acces ale fisierului la **755**, apoi aplicati din nou manifestul:<​code>​
 +[root@learn ~]# chmod 755 /​tmp/​my_file ​
 +[root@learn ~]# puppet apply my_file_manif.pp
 +Notice: Compiled catalog for learn.localdomain in environment production in 0.18 seconds
 +Notice: /​Stage[main]//​File[my_file]/​mode:​ mode changed '​0755'​ to '​0640'​
 +Notice: Finished catalog run in 0.38 seconds
 +</​code>​
 +
 +Modificati continutul fisierului, apoi aplicati din nou manifestul:<​code>​
 +[root@learn ~]# echo "This is not my file" > /​tmp/​my_file ​
 +[root@learn ~]# puppet apply my_file_manif.pp
 +Notice: Compiled catalog for learn.localdomain in environment production in 0.18 seconds
 +Notice: /​Stage[main]//​File[my_file]/​content:​ content changed '​{md5}7225302b0d15d4a2562c2ab55e45d4cc'​ to '​{md5}b4fdf30d694de5a5d7fe7a50cda27851'​
 +Notice: Finished catalog run in 0.41 seconds
 +</​code>​
 +
 +Observati ca daca atributele resursei difera de cele descrise in manifest, aplicarea manifestului readuce resursa in starea dorita.
 +
 +=== Stari (ensure) ===
 +
 +Atributul **ensure** specifica de cele mai multe ori daca resursa:
 +  * trebuie sa existe (ensure => present);
 +  * trebuie sa NU existe (ensure => absent).
 +
 +Unele tipuri de resurse definesc stari aditionale pentru acest atribut. Resursele de tip **file** pot avea, in plus, urmatoarele valori pentru **ensure**:
 +  * directory
 +  * link 
 +  * file
 +
 +Definiti un manifest care sa creeze un link simbolic la fisierul **/​tmp/​my_file**.
 +
 +<note important>​
 +Resursa trebuie sa aiba si atributul **target**.
 +</​note>​
 +
 +<​note>​
 +Folositi documentatia Puppet pentru tipul de resursa **file**: [[http://​docs.puppetlabs.com/​references/​stable/​type.html#​file]]
 +</​note>​
 +
 +<​solution -hidden>
 +<​code>​
 +file {'​my_link':​
 +  target ​ => '/​tmp/​my_file',​
 +  ensure ​ => link,
 +}
 +</​code>​
 +</​solution>​
 +
 +=== Cheie autorizata SSH ===
 +
 +Intr-un manifest, definiti o resursa de tip "cheie autorizata SSH".
 +
 +Resursa trebuie sa permita autentificarea utilizatorului ''​student''​ de pe masina fizica, in contul utilizatorului ''​root''​ de pe masina virtuala, fara parola.
 +
 +<note important>​
 +Daca nu exista, perechea de chei pentru utilizatorul **student** trebuie generata in prealabil.
 +
 +Apoi, rulati comanda ''​ssh-add ~/​.ssh.id_rsa''​ pe masina fizica, din contul ''​student''​.
 +</​note>​
 +
 +<​note>​
 +Folositi documentatia Puppet pentru tipul de resursa **sshauthorizedkey**:​ [[http://​docs.puppetlabs.com/​references/​stable/​type.html#​sshauthorizedkey]]
 +</​note>​
 +
 +<​solution -hidden>
 +<​code>​
 +ssh_authorized_key { '​my_ssh_key':​
 +  ensure => present,
 +  key    => "​AAAAB3NzaC1yc2EAAAADAQABAAABAQDa8Op62ZBUpLHRFsLW9rbQMzDBUe8VLomIfV4ELqzN7B6Nu+8A9wd+PPKoAy3CM7PNWZ+T8LlPt+1iQB5iyUzN0t15auP2kRQJej6FQnyh96p2VFB+xG+jSepWcgDs5Lg+z+p4N20gHcpQwQX1+RtJ4W5n5ywWLJ4RETBCouw0H7CS01/​27HcS8zt5xRSAeD0XW1KWEluC6xhXqeYyCEHaXVnWFONDAzvX5ydKMzbmaO0GNmHDyDLjLQJJtor8kI7qq9OeQuXQZcON2oFD51fUzM/​5agwqTZlP19kjBTroNC7vNbALyP+2b/​alJLke1qLGI20U+zwd5YId5sg/​+KUt",​
 +  type   => "​ssh-rsa",​
 +  user   => "​root",​
 +}
 +</​code>​
 +</​solution>​
saisp/labs/10/contents/02.1390333944.txt.gz · Last modified: 2014/01/21 21:52 by alexandru.carp
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0