Configura Tulip con Ansible

Prev Next

Ansible è uno strumento IT open source a riga di comando per la gestione in massa dei dispositivi Edge.

Scopri di più su Ansible qui.

A chi è rivolta questa guida

  • Utenti con Permission completa sui dispositivi Edge
  • Utenti che hanno familiarità con Ansible
  • Utenti che hanno familiarità con la configurazione dei dispositivi Edge

Come funziona

Ansible è un software di gestione IT che consente di copiare e incollare le configurazioni dei dispositivi. Ciò avviene utilizzando un dispositivo di riferimento (golden device ) come configurazione di base verificata, che servirà a configurare un dispositivo di destinazione.

Ad esempio, è possibile configurare contemporaneamente diversi nuovi dispositivi edge (i dispositivi di destinazione) assegnandoli a un gruppo che applica automaticamente le credenziali provenienti da un dispositivo di riferimento esistente (il dispositivo di riferimento). È possibile aggiornare il dispositivo di riferimento con ulteriori miglioramenti e distribuire tali aggiornamenti.

Edge device bulk configuration workflow

Questo metodo garantisce una gestione IT automatizzata e scalabile, riducendo i potenziali errori di configurazione manuali.

Integrazione tra dispositivi periferici e Ansible

Queste procedure descrivono come integrare le funzionalità di raccolta Tulip Edge nei flussi di lavoro Ansible esistenti.

Installazione della collezione Tulip Edge

  1. Eseguire il seguente comando sul terminale:ansible-galaxy collection install git+https://github.com/tulip/tulip-ansible-library.git#/collections/ansible_collections/tulip/edge
  2. Per installare il repository per i dispositivi edge, eseguire il seguente comando:ansible-galaxy collection install tulip.edge

Configurazione dell’inventario

Aggiungi il codice seguente al tuo inventario esistente e compila le variabili.

  1. Nel codice seguente, assegna un nome al gruppo di dispositivi e autentica la tua istanza utilizzando l’URL dell’istanza, la tua email e la password dell’account email.

[your_device_group:vars]tulip_factory_url=https://your-factory.tulip.cotulip_admin_email=admin@yourcompany.comtulip_admin_password_sha256=your_sha256_hash

  1. Nel codice seguente, inserisci il nome della tua azienda.

tulip_client_name=NomeDellaTuaAziendatulip_client_version=1.0.0tulip_client_description=Gateway di produzione

Generare un hash della password

Un hash della password è una misura di sicurezza che trasforma una password in una stringa di lunghezza fissa composta da caratteri casuali, che non può essere facilmente decifrata o ricostruita. Questo passaggio evita i rischi per la sicurezza associati alle password in chiaro presenti nel file.

Per generare hash di password sicuri, digita quanto segue:

echo -n "la_tua_password" | sha256sum | cut -d' ' -f1

Integrazione del playbook principale

Aggiungi i playbook necessari ai tuoi flussi di lavoro esistenti con il codice seguente:


* import\_playbook: tulip.edge.register when: register\_devices | default(false) ```

### Test dell'integrazione

Aggiungi un playbook di test ai tuoi flussi di lavoro con il seguente codice:

```- name: Test dell'autenticazione di Tulip Gateway hosts: test\_devices tasks: - name: Autenticazione del dispositivo di test import\_playbook: collections/ansible\_collections/tulip/edge/playbooks/gateway\_tulip\_auth.yml

  • nome: Verifica del corretto funzionamento dell’autenticazione import_playbook: collections/ansible_collections/tulip/edge/playbooks/gateway_device_info.yml- name: Verifica della connettività import_playbook: collections/ansible_collections/tulip/edge/playbooks/gateway_check_internet.yml

Migliori pratiche di integrazione

  1. Gestione delle variabili

    • Utilizzare group_vars per le impostazioni comuni
    • Utilizzare host_vars per le sostituzioni specifiche del dispositivo
    • Archivia i dati sensibili in Ansible Vault
  2. Gestione degli errori


* name: Gestione dell'errore di autenticazione debug: msg: "Autenticazione fallita, controllare le credenziali" when: auth\_result.failed | default(false) ```
* **Gestione dei backup**
* Utilizzare una nomenclatura coerente per i backup, ad esempio: `dispositivo-componente-timestamp`
* Memorizzare i nomi dei backup in variabili per poterli riutilizzare
* Implementare politiche di conservazione dei backup
* **Mantenere l’idempotenza**: tutti i playbook sono idempotenti e quindi possono essere eseguiti più volte in tutta sicurezza.

Per individuare errori, comprendere l’esecuzione della logica o effettuare una verifica prima dell’esecuzione, è possibile eseguire una simulazione, che non avvierà il software vero e proprio. Per eseguire una simulazione, utilizzare la modalità --check, come mostrato nell’esempio seguente.

`ansible-playbook gateway_tulip_auth.yml --limit test_device --check`

## Provisioning del dispositivo di riferimento

Il flusso di lavoro di provisioning del dispositivo di riferimento consente di: 1. **Selezionare un dispositivo di riferimento**: scegliere un dispositivo di riferimento correttamente configurato 2. **Eseguire il backup della configurazione del dispositivo di riferimento**: acquisire tutte le configurazioni dei componenti 3. **Distribuire su nuovi dispositivi**: applicare le impostazioni del dispositivo di riferimento a dispositivi nuovi o sostitutivi 4. **Autenticare e verificare**: registrare i dispositivi e convalidare la distribuzione

### Configurazione dell’inventario

Configurare l’inventario con il dispositivo di riferimento e i dispositivi di destinazione.

Inserisci quanto segue nel tuo terminale:

```[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]

# Autenticazione di fabbrica

tulip\_factory\_url=https://your-factory.tulip.cotulip\_admin\_email=admin@yourcompany.comtulip\_admin\_password\_sha256=your\_sha256\_hash

# Informazioni sul client

tulip\_client\_name=NomeDellaTuaAziendatulip\_client\_version=1.0.0tulip\_client\_description=Gateway di produzione```

### Generazione dell’hash della password

L'hash della password è una misura di sicurezza che trasforma una password in una stringa di lunghezza fissa composta da caratteri casuali, che non può essere facilmente decifrata o ricostruita. Questo passaggio evita i rischi per la sicurezza associati alle password in chiaro presenti nel file.

Per creare un [hash SHA256](https://www.movable-type.co.uk/scripts/sha256.html) per l’archiviazione sicura della password, inserisci quanto segue:

`echo -n "la_tua_password" | sha256sum | cut -d' ' -f1`

### Configurazione di base del dispositivo Golden

Inserisci il codice seguente per ogni passaggio.

1. Accedi al tuo`dispositivo` di riferimento:`ansible-playbook tulip.edge.login --limit golden-device`
2. Esegui il backup delle`configurazioni` del dispositivo di riferimento:`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. Accedi ai dispositivi di destinazione:`ansible-playbook tulip.edge.login --limit newly_provisioned`
4. Distribuisci le configurazioni golden sui dispositivi di destinazione```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. Autenticazione con`factoryansible-playbook tulip.edge.gateway_tulip_auth --limit newly_provisioned`
2. Registrarsi con i sistemi esterni (facoltativo)`ansible-playbook tulip.edge.register --limit newly_provisioned`
3. Verifica`` della distribuzione: `ansible-playbook tulip.edge.gateway_device_info --limit newly_provisioned` e `ansible-playbook tulip.edge.gateway_check_internet --limit newly_provisioned ```

### Best practice per i dispositivi di riferimento

Il seguente approccio basato sul dispositivo di riferimento garantisce un provisioning coerente e affidabile del parco dispositivi Tulip Edge, mantenendo al contempo la piena tracciabilità e il controllo sugli standard di configurazione.

1. **Manutenzione del dispositivo di riferimento**: mantieni il tuo dispositivo di riferimento aggiornato e in buono stato
2. **Eseguire backup regolari**: creare backup regolari della configurazione del dispositivo di riferimento
3. **Garantire il controllo delle versioni**: archiviare i backup del dispositivo di riferimento in un sistema di controllo delle versioni con nomi significativi
4. **Predisporre una pipeline di test**: testare sempre le configurazioni del dispositivo di riferimento in ambiente di staging prima della produzione
5. **Documentare la configurazione del dispositivo di riferimento**: documentare gli standard e le procedure di configurazione del dispositivo di riferimento
6. **Garantire il controllo degli accessi**: limitare l’accesso ai dispositivi di riferimento e utilizzare credenziali separate
7. **Monitorare lo stato di integrità e i processi**: monitorare lo stato di integrità dei dispositivi di riferimento e i processi di creazione dei backup

### Risoluzione dei problemi

Ecco come risolvere i problemi più comuni relativi ai dispositivi di riferimento:

#### Il dispositivo di riferimento è irraggiungibile

Per prima cosa, verifica la connettività al dispositivo di riferimento. Esegui:`ansible golden-device -m ping`

Verifica lo stato del dispositivo di riferimento. Esegui:`ansible-playbook tulip.edge.gateway_device_info --limit golden-device`

#### L'implementazione di backup non va a buon fine

Per prima cosa, verifica che il file di backup esista. Esegui:`ls backups/golden-device-mqtt-broker-*.json`

Utilizza la convenzione di denominazione dei backup con`estensione: ansible-playbook tulip.edge.restore_mqtt_broker \ --limit target-device \ -e mqtt_broker_backup_name="golden-device-mqtt-broker-20241219-143022" \ -vv`

#### Problemi di autenticazione

Per eseguire nuovamente l’autenticazione del dispositivo golden, eseguire:`ansible-playbook tulip.edge.login --limit golden-device`

Per verificare le credenziali del dispositivo di riferimento nel proprio inventario, eseguire:`ansible-inventory --host golden-device`

{{snippet.Hai trovato quello che cercavi?}}