Table of Contents

Pentru a avea acces la Internet din masina virtuala, rulati pe masina fizica comanda:

sudo iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE

01. [20p] Resurse Puppet

Puppet este un tool pentru gestiunea configuratiei unui sistem. Pentru descrierea configuratiilor foloseste un limbaj declarativ. Puppet poate gestiona atat sisteme Linux, cat si Windows.

Notiunea de "resursa"

Puppet abstractizeaza majoritatea entitatilor din sistem prin resurse. De exemplu, fiecare serviciu, fie ca este pornit sau oprit, este vazut ca o resursa.

Folositi comanda puppet resource service pentru a inspecta serviciile de sistem din perspectiva Puppet:

[root@learn ~]# puppet resource service
service { 'abrt-ccpp':
  ensure => 'running',
  enable => 'true',
}
service { 'abrt-oops':
  ensure => 'stopped',
  enable => 'false',
}
service { 'abrtd':
  ensure => 'running',
  enable => 'true',
}
service { 'acpid':
  ensure => 'running',
  enable => 'true',
}
...

Semnificatia comenzii puppet resource service este urmatoarea:

In afara de servicii, si alte entitati din sistem sunt abstractizate prin resurse. Spre exemplu:

Structura unei resurse

Afisati resursa ce descrie contul utilizatorului root, folosind comanda puppet resource user root.

[root@learn ~]# puppet resource user root
user { 'root':
  ensure           => 'present',
  comment          => 'root',
  gid              => '0',
  home             => '/root',
  password         => '$1$jrm5tnjw$h8JJ9mCZLmJvIxvDLjw1M/',
  password_max_age => '99999',
  password_min_age => '0',
  shell            => '/bin/bash',
  uid              => '0',

Structura resursei este data de urmatoarele elemente:

Sintaxa de mai sus constituie “declararea unei resurse”.

Tipuri de resurse

In afara de servicii si utilizatori, Puppet implementeaza multe alte tipuri de resurse. Pentru a le lista, folositi comanda puppet describe –list:

[root@learn ~]# puppet describe --list
These are the types known to puppet:
anchor          -  A simple resource type intended to be used a ...
augeas          -  Apply a change or an array of changes to the ...
computer        - Computer object management using DirectorySer ...
cron            -  Installs and manages cron jobs
exec            - Executes external commands
file            - Manages files, including their content, owner ...
file_line       -  Ensures that a given line is contained withi ...
filebucket      -  A repository for storing and retrieving file ...
firewall        -  This type provides the capability to manage  ...
firewallchain   -  This type provides the capability to manage  ...
group           - Manage groups
...

Crearea / stergerea manuala a unei resurse

Folosind comanda puppet resource putem crea si resurse noi. Sintaxa generala este:

puppet resource type name attr1=val1 attr2=val2 …

Dorim sa cream utilizatorul gigel astfel incat:

Comanda Puppet corespunzatoare este:

[root@learn ~]# puppet resource user gigel ensure=present shell="/bin/sh" home="/home/gigel"
Notice: /User[gigel]/ensure: created
user { 'gigel':
  ensure => 'present',
  home   => '/home/gigel',
  shell  => '/bin/sh',
}

Inspectati fisierul /etc/passwd si verificati ca utilizatorul a fost creat.

Pentru a sterge o resursa, atributul ensure al acesteia trebuie setat la valoarea absent.

De exemplu, pentru a sterge utilizatorul gigel creat anterior:

[root@learn ~]# puppet resource user gigel ensure=absent
Notice: /User[gigel]/ensure: removed
user { 'gigel':
  ensure => 'absent',
}

Verificati, din nou, in /etc/passwd faptul ca utilizatorul a fost sters.