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 22:12]
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 52: Line 47:
 Observati ca daca resursa 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+Modificati drepturile de acces ale fisierului la **755**, apoi aplicati din nou manifestul:<​code>​
- +
-<​code>​+
 [root@learn ~]# chmod 755 /​tmp/​my_file ​ [root@learn ~]# chmod 755 /​tmp/​my_file ​
 [root@learn ~]# puppet apply my_file_manif.pp [root@learn ~]# puppet apply my_file_manif.pp
Line 62: Line 55:
 </​code>​ </​code>​
  
-Modificati continutul fisierului, apoi aplicati din nou manifestul+Modificati continutul fisierului, apoi aplicati din nou manifestul:<​code>​
- +
-<​code>​+
 [root@learn ~]# echo "This is not my file" > /​tmp/​my_file ​ [root@learn ~]# echo "This is not my file" > /​tmp/​my_file ​
 [root@learn ~]# puppet apply my_file_manif.pp [root@learn ~]# puppet apply my_file_manif.pp
Line 74: Line 65:
 Observati ca daca atributele resursei difera de cele descrise in manifest, aplicarea manifestului readuce resursa in starea dorita. Observati ca daca atributele resursei difera de cele descrise in manifest, aplicarea manifestului readuce resursa in starea dorita.
  
-===== Stari (ensure) =====+=== 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.txt · Last modified: 2014/05/12 16:55 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