GNU/Linux >> Tutoriales Linux >  >> Linux

3 pasos para identificar candidatos para la automatización del sistema Linux

La automatización de las tareas que realizamos es una de las partes más importantes de nuestro trabajo como administradores de sistemas. No se trata solo de realizar tantas tareas necesarias para mantener los sistemas que respaldamos en funcionamiento. Se trata de facilitarnos las cosas a nosotros mismos ya otros administradores de sistemas que podrían reemplazarnos mientras estamos de vacaciones o enfermos; se trata de garantizar que podamos realizar nuestro trabajo rápida y fácilmente con un mínimo de trabajo e intervención de nuestra parte; se trata de, hmmm, realmente debería decir esto, de ser el administrador de sistemas perezoso.

He escrito mucho sobre la automatización en mis libros y artículos, y mi mantra siempre es "automatizar todo". Pero, ¿cómo saber por dónde empezar?

[ También te pueden interesar:8 consejos para una automatización fiable del sistema Linux]

El punto de dolor

Empecé el camino hacia la automatización al reducir un punto crítico importante para una de las tareas más importantes que realizan los administradores de sistemas:las copias de seguridad. Empecé con una red muy pequeña:una computadora y una conexión a Internet. Las copias de seguridad fueron fáciles, aunque la tecnología consistía en una serie de unidades de cinta que eventualmente fallaron.

Inicialmente, escribí un comando los viernes por la noche para hacer una copia de seguridad de todos mis directorios importantes y, a veces, verifiqué para verificar que las copias de seguridad se crearon correctamente. Fueron, principalmente, debido a la cinta.

A medida que mi red creció y me hice responsable de redes distintas a la mía, descubrí que usar la línea de comandos para hacer múltiples copias de seguridad se volvió bastante tedioso. Sin embargo, la tecnología avanzó y también descubrí que los discos duros USB externos son un excelente medio de copia de seguridad, y un script hace que la copia de seguridad de varias computadoras sea mucho más fácil. El uso de trabajos cron o temporizadores systemd también me permite programar copias de seguridad.

Mi sistema de respaldo actual usa un script Bash que emplea rsync para crear respaldos de hasta una docena de computadoras en mi red doméstica existente. Las copias de seguridad se crean primero en un disco duro interno de 4 TB y luego se escriben en uno de una serie de discos duros USB externos de 4 TB. Puedo transportar fácilmente las unidades externas a mi caja de seguridad para realizar copias de seguridad fuera del sitio. Puede leer sobre los detalles de este sistema de respaldo en mi artículo, Uso de rsync para respaldar su sistema Linux. La clave es encontrar el punto de dolor más intenso y comenzar con eso.

Mi estrategia

Realmente solo tengo una estrategia para determinar qué automatizar primero o después. Es simplemente determinar la tarea que me causa más dolor en el momento presente. Ese dolor podría ser tener que pasar mucho tiempo escribiendo repetidamente los mismos comandos, esperando a que sucedan cosas antes de ingresar el siguiente comando, recordando la sintaxis adecuada para los comandos que uso con frecuencia, o lo que sea.

Probablemente ya conozca la fuente del mayor dolor en su vida de administrador de sistemas. Eso es lo primero que debe considerar automatizar, especialmente si es relativamente pequeño y no tan grande o importante como un sistema de respaldo completo y avanzado. Empecé con un sistema de copia de seguridad sencillo que usaba tar y algunas funciones divertidas de SSH, sobre las que escribí en Best Couple of 2015:tar y ssh.

Otros puntos débiles para mí han sido realizar actualizaciones de Fedora, incluidas correcciones funcionales y de seguridad, así como mejoras de funciones. Esto también incluye realizar actualizaciones de una versión de Fedora a la siguiente, como de Fedora 32 a Fedora 33.

También hay muchas opciones para implementar la automatización independientemente de la tarea. Una parte de mi estrategia ha sido comenzar usando scripts para comprender completamente las soluciones y cualquier problema que pueda surgir. Escribiré un script para resolver un problema en un host, lo copiaré en todos los hosts de la red y luego escribiré programas Bash en la línea de comando para realizar esa tarea en todos los hosts. Esto toma la forma:

for host-name in `cat ~/list-of-hosts` ; do ssh host-name "script-name"; done

Pero incluso eso se convierte en una tarea y otro punto doloroso con suficientes hosts en suficientes redes. También puede ser problemático cuando algunos hosts deben recibir un trato diferente a los demás. Descubrí que las herramientas más avanzadas, como Ansible, pueden automatizar tareas en muchos hosts en una red mientras tratan ciertos tipos, como servidores, de manera diferente a las estaciones de trabajo estándar. Ansible no requiere la distribución de scripts en cada host para realizar su trabajo; ni siquiera necesita instalarse en cada host, solo en el sistema utilizado como "concentrador".

El punto de dolor de PHB

Todos hemos tenido jefes de pelo puntiagudo (PHB) y, a veces, son el punto de dolor. Supongamos que algún PHB solicita una lista de todos los RPM en una computadora Linux en particular y una breve descripción de cada uno. Esto me sucedió mientras trabajaba en el Estado de Carolina del Norte. El código abierto no estaba "aprobado" para su uso por parte de las agencias estatales en ese momento, y solo usé Linux en mi computadora de escritorio. Los PHB necesitaban una lista de cada pieza de software instalada en mi sistema para poder "aprobar" una excepción.

Me tomó alrededor de cinco minutos escribir un script rápido que pudiera ejecutarse tantas veces en el futuro como me hicieran esta misma pregunta. Enumeró los paquetes RPM instalados en mi host y extrajo la descripción de cada paquete. Este script produjo una lista de más de 1900 paquetes con una breve descripción de cada uno. Envié esta lista al PHB que la había solicitado y nunca más volví a saber de ella, nunca.

A veces, el punto de dolor se resuelve fácil y rápidamente. Pero los PHB suelen exigir atención inmediata.

[ ¿Busca más información sobre la automatización de sistemas? Comience con The Automated Enterprise, un libro gratuito de Red Hat. ] 

Reflexiones finales

Comencé creando un script de automatización simple para abordar la tarea que me causaba más dolor. Luego pasé al siguiente punto doloroso, y así sucesivamente. Eventualmente, esos puntos débiles originales regresan y necesitan ser refinados usando herramientas más avanzadas como Ansible. Este es un proceso iterativo que nunca terminará.


Linux
  1. 10 módulos Ansible para la automatización del sistema Linux

  2. Cómo cambiar el nombre de host en Linux

  3. 8 consejos para una automatización confiable del sistema Linux

  4. Ejemplos de comandos "apagar" en Linux

  5. Ejemplos de comandos resize2fs en Linux

¿Linux es un sistema operativo o un kernel?

Protección de un sistema Linux heredado

La introducción de un administrador de sistemas de Linux a cgroups

Documentación del tiempo de actividad del sistema en Linux

Optimizador y monitoreo del sistema Stacer Linux

Cómo enumerar servicios en Linux