Blog
sudo y fabric para administrar y desplegar como devop
Igor Támara
Igor Támara
Senior Software EngineerAutomatizar 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 fabric y sudo. 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
- Gracias a t3rmin4t0r por la fotografía
- Crear llaves públicas y privadas ssh.
- A more in depth guide to sudo.
- Fabric manual.
Written by 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.
Scale your company with the same people
Practical ideas to do more and get back your time every week
We respect your inbox. Privacy policy