viernes, 7 de junio de 2019

recurso puppet crontab

Mediante puppet podemos añadir y eliminar tareas en el crontab.

Este es el manifest que utilizo en el centro.

Como se puede ver mandamos que se apaguen los equipos (si estuvieran encendidos)  a las 15:35 y 23:50.

En la bios tengo configurado que si hay un corte de corriente, cuando vuelvan se enciendan. Si pusiera que se apagaran, no se encenderían por wakeonlan y habría que encenderlos a mano.

Por lo tanto si hay un corte de corriente por la noche o en fin de semana se encenderían. Por eso pongo un cron que si está encendido por la noche o en fin de semana se apague (se comprueba cada 5 minutos). Esto se ejecuta en todos los equipos menos en los del equipo directivo, que si es posible que vengan en esos intervalos. Para ello sustituyo en el case, caso_particular por el nombre o nombres del equipo.


class mp-apagado-maquinas {

        #Apagado de máquinas por la mediodía.
        cron { apagado-mediodia:
                command => "/sbin/poweroff",
                user => root,
                hour => 15,
                minute => 35,
                ensure => present,
        }

        #Apagado de máquinas por la noche
        cron {  apagado-noche:
                command => "/sbin/poweroff",
                user => root,
                hour => 23,
                minute => 50,
                ensure => present,
        }

        # y por si se encienden por un apagón de luz, bios configurada como power on,
        # cada 5 minutos comprueba si está encendido y se apaga
        # hay algunos equipos que pueden venir a deshoras o desdías a trabajar, en estos se quita el cron, en el resto se les pone
        case $hostname {
                equipo_particular-pro: {
                        cron { apagado-findesemana:
                                 ensure => absent
                        }

                        cron { apagado-madrugada:
                                 ensure => absent
                        }

                }#fin caso particular

                default:{
                        cron { apagado-findesemana:
                                 command => "/sbin/poweroff",
                                 user => root,
                                 hour => '*',
                                 minute => '*/5',
                                 weekday  => [0,6],
                                 ensure => present
                        }

                        cron { apagado-madrugada:
                                 command => "/sbin/poweroff",
                                 user => root,
                                 hour => ['0-6'],
                                 minute => '*/5',
                                 weekday  => ['1-5'],
                                 ensure => present
                        }
                } #fin default
        }#fin hostname
}

No hay comentarios:

Publicar un comentario