https://github.com/aweher/python-radippool
Gestiona y mantiene los bloques IPv4 en la tabla radippool de FreeRADIUS.
https://github.com/aweher/python-radippool
Last synced: 9 months ago
JSON representation
Gestiona y mantiene los bloques IPv4 en la tabla radippool de FreeRADIUS.
- Host: GitHub
- URL: https://github.com/aweher/python-radippool
- Owner: aweher
- License: mit
- Created: 2024-01-26T13:38:32.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-26T17:49:06.000Z (almost 2 years ago)
- Last Synced: 2025-02-08T15:46:19.915Z (11 months ago)
- Language: Python
- Size: 7.81 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Script de Gestión de radippool para FreeRADIUS
Este script de Python está diseñado para ayudar a gestionar y mantener los bloques IPv4 en la tabla `radippool` de FreeRADIUS, con cada bloque asignado a un nombre de pool específico. Automatiza el proceso de asegurar que todos los bloques IPv4 y nombres de pools especificados en un archivo de configuración YAML estén presentes en la tabla `radippool`, insertando cualquier dirección IP y pool faltante.
## Requisitos Previos
Antes de utilizar este script, asegúrate de tener lo siguiente:
* Python 3.x instalado en tu sistema.
* Acceso a una base de datos MySQL que contenga la tabla `radippool` de FreeRADIUS.
* Los paquetes PyMySQL y PyYAML instalados en tu entorno Python.
## Instalación
Para utilizar este script, primero clona el repositorio o descarga los archivos directamente. Luego, instala las dependencias necesarias:
```bash
git clone https://github.com/aweher/python-radippool.git
cd python-radipool
python3 -m venv .venv
source .venv/bin/activate
pip3 install -r requirements.txt
cp config.yaml.example config.yaml
```
## Archivo de Configuración
El script lee la configuración de un archivo `config.yaml` que debe estar en el mismo directorio que el script. Este archivo debe contener los parámetros de conexión a la base de datos y los bloques IPv4 con sus nombres de pools correspondientes. También se le pueden especificar IPs a exceptuar de forma individual. Aquí tienes un ejemplo de este archivo:
```yaml
database:
host: "localhost"
user: "usuario_db"
password: "contraseña_db"
db_name: "nombre_db"
ipv4_pools:
- pool_name: "Pool1"
block: "192.168.1.0/24"
exceptions:
- "192.168.1.88"
- "192.168.1.1"
- pool_name: "Pool2"
block: "192.168.2.0/24"
# Agrega más bloques y nombres de pools según sea necesario
```
## Ejecución
Para ejecutar el script, entra al directorio que contiene `app.py` y `config.yaml`, y luego ejecuta:
```bash
python3 app.py
```
El script leerá el archivo de configuración, se conectará a la base de datos MySQL especificada y asegurará que todos los bloques IPv4 listados estén presentes en la tabla radippool, insertando cualquier dirección IP faltante con el nombre de Pool correspondiente.
## Contribuciones
Las contribuciones a este proyecto son bienvenidas. Para contribuir, por favor, haz un fork del repositorio, realiza tus cambios y envía un pull request.
## Licencia
Este proyecto se distribuye bajo la licencia MIT. Consulta el archivo LICENSE para obtener más detalles.