Ansible es una herramienta informática de código abierto que se maneja desde la línea de comandos y permite gestionar de forma masiva dispositivos periféricos.
Más información sobre Ansible aquí.
¿A quién va dirigida esta guía?
- A usuarios con Permission completo sobre dispositivos Edge
- Usuarios familiarizados con Ansible
- Usuarios familiarizados con la configuración de dispositivos Edge
Cómo funciona
Ansible es un software de gestión de TI que permite copiar y pegar configuraciones de dispositivos. Esto se consigue utilizando un dispositivo de referencia como configuración base verificada que servirá para configurar un dispositivo de destino.
Por ejemplo, puede configurar varios dispositivos periféricos nuevos (los dispositivos de destino) a la vez asignándolos a un grupo que aplique automáticamente las credenciales de un dispositivo de referencia existente (el dispositivo de referencia). Puede actualizar el dispositivo de referencia con nuevas mejoras y distribuir dichas actualizaciones.

Este método ofrece una gestión de TI automatizada y escalable, y reduce los posibles errores de configuración manual.
Integración de dispositivos periféricos y Ansible
Estos procedimientos describen cómo integrar las capacidades de la colección Tulip Edge en sus flujos de trabajo de Ansible existentes.
Instalar la colección Tulip Edge
- Ejecuta el siguiente comando en tu terminal:
ansible-galaxy collection install git+https://github.com/tulip/tulip-ansible-library.git#/collections/ansible_collections/tulip/edge - Para instalar el repositorio para dispositivos periféricos, ejecuta el siguiente comando:
ansible-galaxy collection install tulip.edge
Configuración del inventario
Añade el siguiente código a tu inventario actual y rellena las variables.
- En el código siguiente, asigna un nombre al grupo de dispositivos y autentifica tu instancia con la URL de la misma, tu correo electrónico y la contraseña de tu correo electrónico.
[tu_grupo_de_dispositivos:vars]tulip_factory_url=https://your-factory.tulip.cotulip_admin_email=admin@tuempresa.comtulip_admin_password_sha256=tu_hash_sha256
- En el siguiente código, introduce el nombre de tu empresa.
tulip_client_name=NombreDeTuEmpresa tulip_client_version=1.0.0 tulip_client_description=Production Gateway
Generar un hash de contraseña
Un hash de contraseña es una medida de seguridad que transforma una contraseña en una cadena de longitud fija formada por caracteres aleatorios que no se puede revertir ni descifrar fácilmente. Este paso evita los riesgos de seguridad asociados a las contraseñas en texto plano de tu archivo.
Para generar hash de contraseñas seguros, introduce lo siguiente:
echo -n "tu_contraseña" | sha256sum | cut -d' ' -f1
Integración del playbook principal
Añade los playbooks necesarios a tus flujos de trabajo existentes con el siguiente código:
* import\_playbook: tulip.edge.register when: register\_devices | default(false) ```
### Prueba de la integración
Añade un playbook de prueba a tus flujos de trabajo con el siguiente código:
```- name: Probar la autenticación de Tulip Gateway hosts: test\_devices tasks: - name: Autenticar el dispositivo de prueba import\_playbook: collections/ansible\_collections/tulip/edge/playbooks/gateway\_tulip\_auth.yml
- nombre: Verificar que la autenticación ha funcionado import_playbook: collections/ansible_collections/tulip/edge/playbooks/gateway_device_info.yml- nombre: Comprobar la conectividad import_playbook: collections/ansible_collections/tulip/edge/playbooks/gateway_check_internet.yml
Prácticas recomendadas de integración
-
Gestión de variables
- Utiliza group_vars para la configuración común
- Utiliza host_vars para las modificaciones específicas de cada dispositivo
- Almacena los datos confidenciales en Ansible Vault
-
Gestión de errores
* name: Gestionar el fallo de autenticación debug: msg: «Autenticación fallida, comprueba las credenciales» when: auth\_result.failed | default(false) ```
* **Gestión de copias de seguridad**
* Utiliza una nomenclatura coherente para las copias de seguridad, por ejemplo: `dispositivo-componente-marca de tiempo`
* Almacena los nombres de las copias de seguridad en variables para poder reutilizarlos
* Implementa políticas de retención de copias de seguridad
* **Mantener la idempotencia**: todos los playbooks son idempotentes y, por lo tanto, se pueden ejecutar varias veces de forma segura.
Para detectar errores, comprender la ejecución de la lógica o validar antes de la ejecución, puedes realizar una ejecución de prueba, que no ejecutará el software real. Para realizar una ejecución de prueba, utiliza el modo --check, tal y como se muestra en el ejemplo siguiente.
`ansible-playbook gateway_tulip_auth.yml --limit test_device --check`
## Aprovisionamiento de dispositivos de referencia
El flujo de trabajo de aprovisionamiento de dispositivos de referencia le permite: 1. **Seleccionar un dispositivo de referencia**: elija un dispositivo de referencia correctamente configurado. 2. **Realizar una copia de seguridad de la configuración de referencia**: capture todas las configuraciones de los componentes. 3. **Implementar en nuevos dispositivos**: aplique la configuración del dispositivo de referencia a los dispositivos nuevos o de sustitución. 4. **Autenticar y verificar**: registre los dispositivos y valide la implementación
### Configuración del inventario
Configura tu inventario con el dispositivo de referencia y los dispositivos de destino.
Introduce lo siguiente en tu terminal:
```[tulip\_edge\_devices]golden-device ansible\_host=172.16.15.130EIO-01-BCDEFA ansible\_host=172.16.15.140EIO-01-CDEFAB ansible\_host=172.16.15.141EIO-01-DEFABCansible\_host=172.16.15.150
[golden\_devices]EIO-01-ABCDEF
[newly\_provisioned]EIO-01-BCDEFAEIO-01-CDEFABEIO-01-DEFABC
[tulip\_edge\_devices:vars]
# Autenticación de fábrica
tulip\_factory\_url=https://your-factory.tulip.cotulip\_admin\_email=admin@yourcompany.comtulip\_admin\_password\_sha256=tu\_hash\_sha256
# Información del cliente
tulip\_client\_name=NombreDeTuEmpresa tulip\_client\_version=1.0.0 tulip\_client\_description=Pasarela de producción```
### Generar hash de contraseña
Un hash de contraseña es una medida de seguridad que transforma una contraseña en una cadena de longitud fija formada por caracteres aleatorios que no se puede revertir ni descifrar fácilmente. Este paso evita los riesgos de seguridad asociados a las contraseñas en texto plano almacenadas en tu archivo.
Para crear un [hash SHA256](https://www.movable-type.co.uk/scripts/sha256.html) para el almacenamiento seguro de la contraseña, introduce lo siguiente:
`echo -n "tu_contraseña" | sha256sum | cut -d' ' -f1`
### Aprovisionamiento básico de dispositivos «golden»
Introduce el siguiente código en cada paso.
1. Inicia sesión en tu`dispositivo` de referencia:`ansible-playbook tulip.edge.login --limit golden-device`
2. Realice una copia de seguridad de`las configuraciones` del dispositivo de referencia:`ansible-playbook tulip.edge.backup_mqtt_broker --limit golden-device ansible-playbook tulip.edge.backup_mqtt_bridge --limit golden-device ansible-playbook tulip.edge.backup_drivers --limit golden-device ansible-playbook tulip.edge.backup_root_certs --limit golden-device`
3. Iniciar sesión en el`dispositivo` de destino: ``ansible-playbook tulip.edge.login --limit newly_provisioned``
4. Implementar las configuraciones de referencia en los dispositivos de destino```ansible-playbook tulip.edge.restore\_mqtt\_broker \ --limit newly\_provisioned \ -e mqtt\_broker\_backup\_name="golden-device-mqtt-broker-20241219-143022"
ansible-playbook tulip.edge.restore\_mqtt\_bridge \ --limit newly\_provisioned \ -e mqtt\_bridge\_backup\_name="golden-device-mqtt-bridge-20241219-143025"
ansible-playbook tulip.edge.restore\_drivers \ --limit newly\_provisioned \ -e drivers\_backup\_name="golden-device-drivers-20241219-143028"
ansible-playbook tulip.edge.restore\_root\_certs \ --limit newly\_provisioned \ -e root\_certs\_backup\_name="golden-device-root-certs-20241219-143030"```
1. Autenticarse con`factoryansible-playbook tulip.edge.gateway_tulip_auth --limit newly_provisioned`
2. Registrarse en sistemas externos (opcional)`ansible-playbook tulip.edge.register --limit newly_provisioned`
3. Verificar`` la implementación: `ansible-playbook tulip.edge.gateway_device_info --limit newly_provisioned`; `ansible-playbook tulip.edge.gateway_check_internet --limit newly_provisioned ```
### Prácticas recomendadas para dispositivos de referencia
El siguiente enfoque de «dispositivo de referencia» garantiza un aprovisionamiento coherente y fiable de su parque de dispositivos Tulip Edge, al tiempo que mantiene una trazabilidad y un control totales sobre sus estándares de configuración.
1. **Mantén el dispositivo de referencia**: Mantén tu dispositivo de referencia actualizado y en buen estado
2. **Realiza copias de seguridad periódicas**: Crea copias de seguridad periódicas de la configuración de tu dispositivo de referencia
3. **Garantice el control de versiones**: almacene las copias de seguridad del dispositivo de referencia en un sistema de control de versiones con nombres significativos
4. **Disponga de un proceso de pruebas**: pruebe siempre las configuraciones del dispositivo de referencia en un entorno de prueba antes de pasarlas a producción
5. **Documenta la configuración del dispositivo de referencia**: documenta tus estándares y procedimientos de configuración del dispositivo de referencia
6. **Garantiza el control de acceso**: limita el acceso a los dispositivos de referencia y utiliza credenciales independientes
7. **Supervisa el estado y los procesos**: supervisa el estado de los dispositivos de referencia y los procesos de creación de copias de seguridad
### Solución de problemas
A continuación se explica cómo solucionar los problemas más comunes de los dispositivos de referencia:
#### No se puede acceder al dispositivo de referencia
En primer lugar, comprueba la conectividad con el dispositivo de referencia. Ejecuta:`ansible golden-device -m ping`
Comprueba el estado del dispositivo de referencia. Ejecuta:`ansible-playbook tulip.edge.gateway_device_info --limit golden-device`
#### La implementación de la copia de seguridad falla
En primer lugar, debes comprobar que el archivo de copia de seguridad existe. Ejecuta:`ls backups/golden-device-mqtt-broker-*.json`
Utiliza la nomenclatura de copias de seguridad con`` la extensión: `ansible-playbook tulip.edge.restore_mqtt_broker \ --limit target-device \ -e mqtt_broker_backup_name="golden-device-mqtt-broker-20241219-143022" \ -vv ``
#### Problemas de autenticación
Para volver a autenticar el dispositivo de referencia, ejecuta:`ansible-playbook tulip.edge.login --limit golden-device`
Para verificar las credenciales del dispositivo de referencia en tu inventario, ejecuta:`ansible-inventory --host golden-device`
{{snippet.¿Has encontrado lo que buscabas?}}

