sudo y fabric para administrar y desplegar como devop

IT Igor Támara Igor Támara

Igor Támara

Senior Software Engineer
1 min read.

Automatizar labores de servidor permite reaccionar con más precisión y velocidad en ambientes en los cuales un administrador de sistema se encuentra a cargo de varias máquinas. Es más divertido hacer scripts que copiar y pegar, y puede lograrse que varias máquinas de prodcucción estén actualizadas con los parches de seguridad liberados más recientemente, también permite contar con más tiempo para ver fotos de gatos o hacer memes de doge. En esta entrada suponemos que ya está familiarizado con uso de llaves públicas y privadas ssh y quiere hacer varias tareas en varios servidores usando fabricsudo.  También está enfocada a administradores con superpoderes de paquetería descendiente de Debian.

La instalación


Para instalar sudo, como root ejecutar:

apt-get install sudo


Para instalar fabric:

apt-get install pip
pip install fabric

La configuración


Para editar la configuración de sudo, como root

visudo


Se pueden definir el grupo de usuarios, nuestro usuario se llama deploy y creamos el alias para usuario
UPDATERS

User_Alias      UPDATERS = deploy


Los comandos que vamos a permitir ejecutar, los separamos por coma, también se puede especificar la orden exacta a usar, por ejemplo en lugar de
/usr/bin/apt-get se podría usar /usr/bin/apt-get update. cabe notar que NOPASSWD hará que sudo no solicite la clave.

UPDATERS ALL = NOPASSWD: /usr/bin/apt-get,/usr/bin/service,/etc/init.d/nginx


Ahora en fabric considerando que nuestro usuario en el servidor es
deploy, podemos emplear un script llamado fabfile.py como el siguiente:

from fabric.api import env from fabric.api import sudo env.user = 'deploy' update_server():    sudo('apt-get update', shell=False)    sudo('apt-get -y upgrade', shell=False)

El uso


Que se invocaría estando en el mismo directorio con:

fab miservidor.midominio.com,servidor2.otrodominio.com update_server


Adicionalmente se puede ejecutar en paralelo con la opción
-P.

Enlaces


Written by Igor Támara

IT Igor Támara Igor Támara

A seasoned developer, Igor brings expertise in designing and building complex software systems. With a focus on quality and performance, they lead projects that drive innovation and deliver reliable solutions to meet user needs.

Newsletter

Subscribe to our newsletter:

Read more

Análisis en vivo de visitas

En este video mostramos un sitio que usualmente tiene 500.000 páginas servidas al mes, en una campaña de correo instituciona...

1 min read.

Open Source

Al ingresar a Axiacore como Auxiliar de soporte me encontré con un mundo que para mi era desconocido, sabia cosas....generali...

1 min read.

Build Once. Own Forever.