Sergey Nivens - Fotolia
Cómo gestionar Windows con Puppet
Los administradores pueden modernizar el modelo de administración de su organización para los sistemas operativos Linux y Windows con Puppet, una herramienta basada en código y el soporte comunitario disponible.
Los profesionales de TI se han alineado durante mucho tiempo con Linux o Windows, pero cada vez es más común que las organizaciones busquen lo mejor de ambos mundos.
Para los departamentos tradicionales que solo usan Windows, la idea de administrar sistemas Windows con una herramienta del lado del servidor creada para Linux puede no ser atractiva, pero Puppet ha aumentado el soporte de Windows Server a lo largo de los años y ofrece capacidades que el Administrador de configuración de System Center y la Configuración de estado deseado no ofrecen.
Utilizar la infraestructura existente de Puppet
Muchas organizaciones utilizan Puppet para administrar sistemas Linux y SCCM para administrar servidores Windows. SCCM funciona bien para administrar estaciones de trabajo, pero los administradores podrían administrar Windows más fácilmente con el código Puppet. Por ejemplo, los administradores pueden auditar fácilmente la configuración de un sistema mirando los manifiestos de código.
Los administradores administran Windows con los agentes Puppet instalados en los nodos Puppet. Usan módulos y manifiestos para desplegar configuraciones de nodo. Si los administradores administran los sistemas Linux y Windows con Puppet, proporciona una ventanilla única para todas las operaciones de TI.
Combine Puppet y DSC para un mayor soporte
Los administradores necesitan conocimientos básicos de Linux para utilizar un servicio maestro de Puppet. No necesitan tener un maestro de Puppet porque pueden escribir manifiestos en los nodos y aplicarlos, pero es probable que esa no sea una opción escalable. Para los departamentos puramente basados en Windows, la capacitación tanto en Linux como en Puppet hará que tomar Puppet sea más fácil. Requiere más tiempo para establecer y configurar los sistemas Windows en Puppet de la misma manera que se configurarían en SCCM. Los administradores deben diseñar el código antes de que los usuarios comiencen a escribir e implementar los manifiestos de Puppet o los equipos de DevOps agreguen sistemas de CI/CD.
DSC es una de las primeras áreas en que los administradores buscan administrar Windows con el código Puppet. Los módulos están escritos en C# o PowerShell. DSC tiene GUI de monitoreo nativo, lo que hace que la vista general de la configuración de una máquina sea compleja. En su versión empresarial, Puppet tiene soporte nativo para informes basados en web. Los administradores también pueden usar una versión gratuita de código abierto, como Foreman.
Debido a la cantidad de módulos comunitarios disponibles en la Galería PowerShell, DSC recibe la mayor cantidad de soporte de Windows para la administración basada en códigos, pero los administradores pueden combinar Puppet con DSC para obtener una cobertura completa para la administración de Windows. Puppet contiene módulos nativos y un módulo DSC con módulos PowerShell DSC integrados. Los administradores también pueden usar el módulo dsc_lite, que puede usar casi cualquier módulo DSC disponible en Puppet. Los módulos dsc_lite se mantienen fuera de Puppet completamente.
Cómo usar Puppet para deshabilitar servicios
Los administradores pueden usar Puppet para ejecutar y deshabilitar servicios. Al usar la compatibilidad nativa de Puppet sin un módulo DSC Puppet, los administradores podrían escribir un manifiesto para tener siempre el inicio de sesión de red, BITS y W3SVC en ejecución cuando se completa una ejecución de Puppet. Coloque el nombre de cada servicio de Windows en una matriz Puppet $svc_name.
$svc_name = ['netlogon','BITS','W3SVC']
service { $svc_name:
ensure => 'running'
}
En el siguiente ejemplo, el módulo Puppet DSC garantiza que la función de Windows del servidor web se instale en el nodo y se reinicie si se requiere un reinicio pendiente.
dsc_windowsfeature {'webserverfeature':
dsc_ensure = 'present'
dsc_name = 'Web-Server'
}
reboot { 'dsc_reboot' :
message => Puppet needs to reboot now',
when => 'pending',
onlyif => 'pending_dsc_reboot',
}