Definire risorse in Puppet

From RVM Wiki
Jump to navigation Jump to search

Se si vuole creare una nuova risorsa, ad esempio un nuovo tipo di utente, che includa altre risorse, procedere come segue:

  • Definire la nuova risorsa. Se si vuole usare il nome della risorsa, NON inserirlo come parametro, ma utilizzarlo direttamente nelle risorse interne:
    define smbuser( 
     $smb_pass = undef,
     $smb_desc = "Samba User" ) {
        exec { "create_samba_user_${name}":
            command =>template("samba_pdv/create_samba_user.erb"),
            unless  =>  "/usr/bin/pdbedit -L $name > /dev/null 2>&1",
            require => [
                File['/etc/samba/smb.conf'],
                Service['samba'],
            ],
        }

        file { "/files/homes/$name":
            ensure => "directory",
            owner  => "$name",
            group  => "users",
            mode   => 755,
            require => [
                File['/files/homes'],
                Exec["create_samba_user_${name}"],
            ],
        }

    }
  • Si notino i parametri messi con valori di default, e che $name non è passato come parametro, altrimenti prenderebbe il nome della classe chiamante, e non darebbe i risultati voluti
  • Si possono poi creare le risorse come:
    smbuser { "firstuser":
        smb_pass    =>  "SecretPass",
        smb_desc    =>  "This is First User",
    }

Riferimenti