axiacore

Blog

sudo y fabric para administrar y desplegar como devop

Igor Támara

Igor Támara

Published

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

Get updates from our CEO every other week about axiacore:

Learn about how we think:

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...

Igor Támara

Igor Támara

Published Oct 30, 2014

Alternativa para aprender a programar

Las motivaciones de los niños NO cambian con la época, los niños siempre tienen unas premisas: Quieren estar activos, encuen...

Igor Támara

Igor Támara

Published Oct 21, 2014

Open Source

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

Miguel Ángel Rocha Villamil

Miguel Ángel Rocha Villamil

Published Oct 10, 2014

We build software solutions from idea to market.

Let's Talk