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.

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
- Eseguire il seguente comando sul terminale:
ansible-galaxy collection install git+https://github.com/tulip/tulip-ansible-library.git#/collections/ansible_collections/tulip/edge - 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.
- 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
- 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
-
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
-
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?}}

