ELIMINANDO USUARIOS

18 צפיות
מעבר להודעה הראשונה שלא נקראה

Pablo LUNIX

לא נקראה,
19 במאי 2014, 4:12:3219.5.2014
עד pupp...@googlegroups.com
Hola a todos de nuevo

Se requiere eliminar una serie de usuarios de los agentes. Pero se inscribe la particularidad de que cabe la posibilidad, de que algunos usuarios hayan podido ser borrados sin eliminar su home.

He creado un módulo donde tengo configurado lo siguiente:

class deluser {
$user = $osfamily ? {
        default => ['paco', 'pepe']
}

        user {$user:
                ensure => 'absent',
                #managehome => 'true', (lo tenemos así # para hacer las pruebas)
        }
        exec {"delhome":
                command => "/bin/rm -rf /home/$user",
                path => "/bin/",
                unless => "/bin/ls | /bin/grep -c $user"
                }

El caso es que al parsear la variable con la instrucción user se hace bien, es decir, se interpreta correctamente, primero un elemento y luego el otro de nuevo. Y si existieran los usuarios los eliminaría y además eliminaría su home si la línea no estuviese comentada.

El problema existe con home existente sin usuario. Pues la variable se parsea entera y nos arroja un error donde se indica que el recurso Exec[/home/pacopepe] no existía y por lo tanto no se aplicaba.

Antes lo habíamos intentado con la instrucción file y tampoco nos valía:

    file {"/home/$user":
               path => "/home/$user",
               ensure => 'absent',
               force => 'true',
    }

Nos arrojaba el mismo error, que no se podía encontrar el recurso File[/home/pacopepe].

Lo siguiente que hice fue crear una variable propia tipo $home para meter en ella las rutas de los directorios,:

$home = $osfamily ? {
        default => ['/home/paco', '/home/pepe']
}
    file {"$home":
               path => "$home",
               ensure => 'absent',
               force => 'true',
    }

Pero seguía arrojando un error similar pues repasaba la variable entera antes de pretender aplicarla.

Por fin encontré la solución a esto mediante la instrucción tidy.

Dejó aquí el código funcional por si alguien se ve en el mismo caso, o tiene que eliminar varios ficheros y quiere usar para ello una variable para no andar tocando el código del módulo.

class deluser {
$user = $osfamily ? {
        default => ['paco', 'pepe']
}

$home = $osfamily ? {
        default => ['/home/paco', '/home/pepe']
}

        user {$user:
                ensure => 'absent',
                #managehome => 'true',
        }
        tidy {$home:
                matches => '*',
                backup => false,
                rmdirs => true,
                recurse => true,
         }
}


Saludos.





ההודעה נמחקה

Pablo LUNIX

לא נקראה,
19 במאי 2014, 6:05:5119.5.2014
עד pupp...@googlegroups.com
Hola de nuevo. dejo por aquí el código definitivo del módulo.

Si a alguien se le ocurre una solución mejor le ruego que lo comenten.

Estructura del modulo:

                                                                            |------init.pp
                                              |-------manifests--------|------params.pp
/etc/puppet/modules/deluser-----|-------files
                                              |-------templates


Contenido de params.pp


class deluser::params {

$user = $osfamily ? {
        default => ['paco', 'pepe']
}

$home = $osfamily ? {
        default => ['/home/paco', '/home/pepe']
}

$mail = $osfamily ? {
        default => ['/var/spool/mail/paco', '/var/spool/mail/pepe']
}

}

Contenido de init.pp

class deluser {
        include ::deluser::params
        user {$::deluser::params::user:
                ensure => 'absent',
                managehome => 'true',
        }
    tidy {$::deluser::params::home:

                matches => '*',
                backup => false,
                rmdirs => true,
                recurse => true,
        }
    tidy {$::deluser::params::mail:

                matches => '*',
                backup => false,
                rmdirs => true,
                recurse => true,
        }
}

Nótese que eliminamos además los buzones de correo de los usuarios.

Saludos!!
השב לכולם
השב למחבר
העבר לנמענים
0 הודעות חדשות