# 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