This shows you the differences between two versions of the page.
saisp:labs:10:contents:02 [2014/01/23 15:36] mihai.carabas |
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 65: | 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. | ||
- | === Exercitiu: Stari (ensure) === | + | === Stari (ensure) === |
Atributul **ensure** specifica de cele mai multe ori daca resursa: | Atributul **ensure** specifica de cele mai multe ori daca resursa: | ||
Line 71: | Line 71: | ||
* trebuie sa NU existe (ensure => absent). | * 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: | + | Unele tipuri de resurse definesc stari aditionale pentru acest atribut. Resursele de tip **file** pot avea, in plus, urmatoarele valori pentru **ensure**: |
* directory | * directory | ||
* link | * link | ||
Line 77: | Line 77: | ||
Definiti un manifest care sa creeze un link simbolic la fisierul **/tmp/my_file**. | Definiti un manifest care sa creeze un link simbolic la fisierul **/tmp/my_file**. | ||
- | **Hint:** Resursa trebuie sa aiba si atributul **target**. | ||
- | === Exercitiu: Cheie autorizata SSH === | + | <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". | Intr-un manifest, definiti o resursa de tip "cheie autorizata SSH". | ||
Line 85: | Line 101: | ||
Resursa trebuie sa permita autentificarea utilizatorului ''student'' de pe masina fizica, in contul utilizatorului ''root'' de pe masina virtuala, fara parola. | Resursa trebuie sa permita autentificarea utilizatorului ''student'' de pe masina fizica, in contul utilizatorului ''root'' de pe masina virtuala, fara parola. | ||
- | **Nota:** Perechea de chei pentru utilizatorul **student** trebuie generata in prealabil. | + | <note important> |
+ | Daca nu exista, perechea de chei pentru utilizatorul **student** trebuie generata in prealabil. | ||
- | **Hint:** Folositi documentatia Puppet pentru tipurile de resurse: [[http://docs.puppetlabs.com/references/stable/type.html#sshauthorizedkey]] | + | 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> |