Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ansibley-Python

Combinamos Ansible y Python para automatizar el despliegue de la aplicación System Monitor en servidores. La app recopila información de hardware y procesos, la expone vía API HTTP y la envía a una base de datos. Con Ansible, se instala Python, se crea un entorno virtual, se copian los archivos y se configura la app como un servicio systemd, asegurando que se ejecute automáticamente y se mantenga activo.

📁 Archivos de Configuración

ansible.cfg

Configuración principal de Ansible:

[defaults]
remote_tmp = /tmp/.ansible/tmp        # Directorio temporal en los hosts remotos
roles_path = ./roles                  # Ruta donde se encuentran los roles
host_key_checking = False             # Desactiva la verificación de llaves SSH

flask.service.j2

Plantilla systemd para ejecutar la app Flask como servicio:

[Unit]
Description=System Monitor Flask API
After=network.target

[Service]
User={{ ansible_user }}
WorkingDirectory=/opt/system_monitor
Environment="PATH=/opt/system_monitor/venv/bin"
Environment="MONGO_URI=mongodb://192.168.18.3:27017/system_monitor"
ExecStart=/opt/system_monitor/venv/bin/python /opt/system_monitor/app.py
Restart=always

[Install]
WantedBy=multi-user.target

inventories/hosts.ini

Archivo de inventario que lista los hosts y grupos de servidores gestionados. Define la estructura de la infraestructura y las conexiones SSH.

playbooks/

Contiene los playbooks de Ansible (.yml) con las tareas y roles a ejecutar en los hosts. Define qué configuraciones aplicar y en qué orden.

roles/

Directorio con roles reutilizables. Cada rol contiene tareas, handlers, templates y archivos organizados para funcionalidades específicas.

requirements.txt

Lista las dependencias Python necesarias (ansible, paramiko, jinja2, etc.) para ejecutar el proyecto.

Despliegue

Ejecutar el playbook de despliegue

ansible-playbook -i inventories/hosts.ini playbooks/deploy.yml --ask-pass --ask-become-pass

Resultado del despliegue:

Resultado deploy

Verificar el servicio

Una vez desplegado, puedes verificar que el servicio Flask está funcionando mediante una petición HTTP:

curl http://tu-servidor:5000/

Resultado de la petición HTTP:

Resultado petición HTTP

....

About

Combinamos Ansible y Python para automatizar el despliegue de una app en python y recolectar info sobre el equipo

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages