Visión general
De alguna manera, tienes dos preguntas aquí ...
- ¿Cómo construyo y mantengo servidores estándar?
- ¿Cómo mantengo la configuración estándar y hago cambios más tarde?
He dividido mi respuesta a continuación abordando esas dos cosas por separado, pero están muy relacionadas. Aquí estoy abordando las soluciones tecnológicas y no ninguna de las mejores prácticas relacionadas, como el control de cambios.
Si esto no cubre el alcance de su pregunta, por favor aclare y con gusto lo explicaré. Esta es una base necesaria, que es fundamental para una infraestructura tecnológica bien administrada.
Servidores de construcción
No me gustan las imágenes en el mundo UNIX; ese es más un enfoque de estilo Windows. Incluso algunas personas de Windows parecen estar volviendo a centrarse en los scripts para compilaciones estándar ahora.
Parece que el satélite se está volviendo algo popular en el mundo de RHEL. Spacewalk es la contraparte de código abierto. Definitivamente tienes que comprar el enfoque RHEL por completo para usar esto. Esto sirve tanto para la construcción del servidor como para la gestión de la configuración.
Idealmente, desearía establecer espejos y repositorios locales en un servidor de archivos para todo el software necesario.
Primero, aproveche su automatización de compilación de distribución, como Kickstart en RHEL / CentOS. El Kickstart sería una línea de base con variaciones, dependiendo de sus necesidades. Las compilaciones de Kickstart se pueden iniciar desde un servidor PXE.
Para la parte más avanzada de la compilación y cualquier cosa que no sea adecuada para un archivo Kickstart, puede escribir sus propios scripts personalizados. Sin embargo, es posible que Puppet o cfengine funcionen bien para usted en lugar de los scripts personalizados. He encontrado que los scripts personalizados son los más flexibles y no se limitan a ningún enfoque individual.
Si elige escribir sus propios scripts, le recomiendo un script central para la configuración universal. Esto sería configuración de seguridad, endurecimiento y cualquier cosa que se aplique a todas las compilaciones. Luego, un script final para finalizar la función del servidor. Por ejemplo, un servidor web o un servidor de base de datos.
Mantener estándares
Lo que usted describe también se encuentra en el mantenimiento de las configuraciones. Los estándares de compilación, las actualizaciones de software y otras cosas están relacionadas con las compilaciones, pero de muchas maneras están separadas.
Si elige confiar en los paquetes del sistema en lugar de crear sus propias compilaciones basadas en la fuente para sus roles de servidor más importantes, se puede mantener mucho de eso con las utilidades del sistema nativo. Esto puede ser tan simple como un script para ejecutar un for
bucle contra su lista de servidores y ejecutar a yum -y update package
.
Para la gestión de la configuración, aquí es donde entran en juego puppet, cfengine y otras utilidades de gestión de la configuración . Estas son utilidades muy útiles y proporcionan la base necesaria sin escribir sus propios scripts desde cero.
Cuando actualiza sus estándares de configuración para sus servidores, es importante rellenar esto en sus compilaciones de servidor estándar.