# Alta de centros automáticamente v2 ## Introducción A partir de una plantilla crea automáticamente una categoría con grupos, usuarios, escritorios y despliegues. ## Ejecución Actualmente solamente se encuentra en la rama `yml_tests2`. Para ejecutar el script hay que ir a la carpeta dentro del repositorio `isarvdi/testing/automate/src` y ejecutar el siguiente comando: ```bash export HOST=ejemplo.com; export API_ISARDVDI_SECRET=''; python3 execute.py template.yaml ``` - **"HOST"** es el dominio donde crearemos los usuarios y escritorios - **"API_ISARDVDI_SECRET"** el secret de la API, que se puede encontrar en el archivo 'isardvdi.cfg' o en la página de gestión de usuarios de webapp. - **"template.yaml"** es el nombre del archivo YAML dónde están los datos necesarios para crear los usuarios y escritorios `cat isardvdi.cfg | grep API_ISARDVDI_SECRET` ## YAML plantilla Ha de tener una estructura así: ```yaml name: institut # afecta al nombre del CSV donde se guardarán las contraseñas y # de los usuarios nuevos description: Will create demo items reset_when_finish: false # si su valor es true, se borrará todo lo que se # haya creado en el script. Ideal para hacer pruebas private_downloads_code: Test steps: # se ejecutará cada paso en orden numérico 1: categories: # se especifica que se creará/borrará/editará - institut: name: institut description: institut frontend_show: true action: add # ahora mismo sólo funciona add 2: groups: - grupo01: name: grupo01 description: institut parent: institut action: add - grupo02: name: grupo02 description: institut parent: institut action: add 3: users: - gestor: name: manager username: manager role: manager provider: local category: institut group: grupo01 password: false # si su valor es false, se crea una contraseña aleatoria. # Ésta se puede comprobar más en el CSV que se creará # y también se imprimirá por pantalla al momento de # crearlo. Si su valor es true se crearán todos los usuarios # con esa contraseña increment: 5 # crea usuarios con el nombre y números del 1 al 5 # (5 usuarios en total) p. ej. user1, user2, user3... action: add 4: desktops: - windows10dt: name: "Windows 10" description: "" template_id: _local-default-admin-admin-windows action: add category: institut groups: [grupo01, grupo02] # grupos donde se crearán todos los escritorios. # También se puede especificar categoría y rol username: manager direct_viewer: true # si su valor es true, retornará un CSV con la URL # al visor directo de cada escritorio nuevo 5: deployments: # disponible próximamente - windows10dp: name: "Despliegue Windows 10" description: "" template_id: _local-default-admin-admin-windows user_id: docente # el dueño del despliegue (un profesor) category: institut desktop_name: Windows 10 visible: true group: grupo01 ``` ## data_iterator.py Sirve para generar varios yamls de varias categorías a partir de la misma plantilla. De momento los parámetros se pasan dentro del código. En estos parámetros se indica un archivo JSON con la lista de categorías a crear y el YAML de plantilla. Estos se guardan en una carpeta aparte. ## out_csv Es una carpeta que se genera a la hora de crear usuarios o escritorios con visor directo ### users/ Aquí se guardan los CSV dónde se especifica nombre, grupo, categoría y contraseña de cada usuario creado. En el nombre del archivo se especifica la categoría/centro a la que pertenecen y la hora a la que se ejecutó el script Estructura del CSV: | name | group | category | password | | ------- | ------- | -------- | -------- | | docente | grupo01 | institut | hola123 | | manager | grupo01 | institut | 1234 | ### viewers/ Aquí se guardan los CSV dódne se especifica el nombre del escritorio, el usuario al que pertenece y un link al visor directo. Sólo se creará si se especifica en el YAML. Estructura del CSV: | desktop_id | desktop_name | user | category | url | | ------------------ | ------------ | ------- | -------- | --------------------------------- | | ccb4a517-96ae-451c | Windows10 | docente | institut | https:/ejemplo.com/vw/nNCNm6Lr4zL | | f68d7a27-e545-476d | ubuntu20.04 | manager | institut | https:/ejemplo.com/vw/4Opva9a9g | ## Pruebas en un servidor sin certificado Al hacer pruebas en local es posible que dé un problema de certificado y no deje ejecutar el script. Para ello hay que arrancar el docker de automate en la carpeta `opt/isard/src/testing/automate/` y entrar en la terminal del docker: ```bash docker-compose up -d docker exec -ti isard-automate /bin/sh ``` Ejecutar el mismo comando: ```bash export HOST=ejemplo.com; export API_ISARDVDI_SECRET=''; python3 execute.py template.yaml ``` **IMPORTANTE**: No funciona si se escribe 'localhost' o '127.0.0.1' como HOST en el caso de una instalación local, ya que *localhost* es la IP del docker y no de nuestra máquina. En su lugar hay que escribir la IP local de la máquina ## Troubleshooting #### ERROR: not enough access rights for this template *Compartir la plantilla deseada con los usuarios dueños del nuevo escritorio