Previo a la ejecución del programa, es necesario que el usuario especifique la dirección IP_HOST desde la que se trabaja, asi como indicar en el flag de portabilidad si el sistema contiene o no la imagen necesaria en local. En caso de estar en laboratorios, este flag se debe poner como False.
También es necesario indicar usuario y contraseña del cliente para el correcto despliegue Estas configuraciones se deben hacer en const.py.
IP_HOST = "192.168.1.255"
IMG_PORTABLE_FLAG = True
REMOTE_USER= "user_name"
REMOTE_PSSWRD= "abc_password"Al ejecutar el comando create por primera vez, se creará la imagen de servidores necesaria para el funcionamiento del sistema. Este proceso puede tardar unos minutos. Si el sistema ya cuenta con una imagen válida, la usará directamente.
python3 pfinal2.py create 4Después de crear los servidores, se debe ejecutar el comando config para completar la creación de la base de datos y la instalación de HAProxy en el balanceador.
python3 pfinal2.py configPara rellenar la base de datos con datos de prueba se ejecuta config seed que usará la semilla introducida en los servidores para rellenar la base de datos
python3 pfinal2.py config seedPara rellenar la base de datos con datos de prueba específicos se ejecuta config seed <archivo> usará un archivo del equipo para generar datos de prueba. Esto puede fallar. No nos hacemos responsables del uso de un archivo con el formato incorrecto, se proporciona un ejemplo en el proyecto.
python3 pfinal2.py config seed ./ejemploSeeder.jsEn caso de querer un despliegue en remoto se debe volver a ejecutar el comando config con el añadido remote seguido de la dirección IP de la máquina donde se desea ejecutar. De no especificarlo se usa la dirección 138.4.31.22, asociada a un ordenador de la universidad, con el riesgo de que este esté apagado.
python3 pfinal2.py config remote 138.4.31.25Una vez realizada la configuración, al ejecutar el comando start se iniciarán correctamente todos los sistemas.
python3 pfinal2.py startEn caso de querer añadir más servidores se debe usar el comando add que creará los servidores apuntando al ecosistema en local. En caso de usar la configuración en remoto es necesario ejecutar config reconfig y luego start
Para crearlos se ejecuta el comando add que los crea y los configura para el despliegue en local. En caso de querer un despliegue en remoto pase al punto 2. Es necesario que después del add se haga un start.
python3 pfinal2.py add 4Para configurar los servidores nuevos sin volver a instalar y crear los remotos, ejecute config reconfig <ip> en ip debe escribir la dirección IP de la máquina que desea elegir.
python3 pfinal2.py config reconfig 138.4.31.25| Comando | Descripción |
|---|---|
create |
Definido como: python pfinal2.py create <opt: num servidores>. Crea el número de servidores definido por el usuario, o 2 por defecto. La cabecera IP será 134.3. |
add |
Definido como: python pfinal2.py add <opt: number>. Añade al entorno el número indicado de servidores, si no se indica, crea 1 por defecto. |
delete |
Definido como: python pfina2.py delete <opt: servidor>. Borra todo el entorno o un servidor en específico si se indica. |
config |
Definido como: python pfinal2.py config. Crea la base de datos y configura el balanceador y la base de datos. Es necesario ejecutarlo para que los servidores funcionen. En caso de configurar remote se debe agregar la dirección ip de la computadora objetivo python pfinal2.py config remote <ip-B>. En caso de querer rellenar la base de datos con una seed específica se usa la sintaxis python pfinal2.py config seed <opt: ruta de archivo> |
help |
Definido como: python pfinal2.py help. Muestra las órdenes posibles. |
list |
Definido como: python pfinal2.py list. Lista la información, se puede especificar mediante input si se quiere info detallada de alguno. |
start |
Definido como: python pfinal2.py start <opt: servidor>. Arranca una máquina si se especifica, o todas las máquinas por defecto. |
stop |
Definido como: python pfinal2.py stop <opt: servidor>. Detiene una máquina si se especifica, o todas las máquinas por defecto. |
repair |
Definido como: python pfinal2.py repair <opt: boolean>. Vuelve a crear la ecosistema desde cero reparando posibles fallos en la creación de las imágenes del servidor. Este comando vuelve a ejecutar un create con la misma ip y el número de servidores que había en caché al momento de repararlo. Este proceso puede tardar porque vuelve a crear las imágenes. |