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:11]
alexandru.carp [Aplicarea unui manifest]
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 72: Line 63:
 </​code>​ </​code>​
  
-Observati ca daca starea ​resursei difera de starea descrisa ​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) === 
 + 
 +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