Translations: "English" |
Getting started with Meraki API
Introduzione
La dashboard Cisco Meraki risulta essere molto utile perché ti permette di configurare e monitorare gli apparati di rete attraverso un interfaccia web, ovunque siano localizzati, con il solo vincolo che gli apparati siano collegati in rete e abbiano accesso al cloud Meraki.
Per contro, non avere una CLI per configurare gli apparati rende, in certi casi, più lenta la configurazione, specialmente se massiva, degli stessi.
Per esempio, di recente, dovevo configurare delle ACL sugli switch Meraki, su diversi switch appartenenti a sedi remote diverse (cioé su differenti Network in Meraki). Anche clonando una nuova network da una già esistente, la parte di ACL degli switch non viene riportata. Di conseguenza, dovevo inserire manualmente ogni riga delle ACL, per ogni network, attraverso l'inserimento di dati in svariati campi e/o attraverso menù a tendina. Le ACL risultavano essere molto simili per ogni network (come per es. ACL per bloccare il traffico interno sulle vlan guest). Trovare un metodo per automatizzare questa parte mi avrebbe fatto risparmiare un bel po' di tempo e stress.
Fortunatamente, ho scoperto che Meraki supporta le API e attraverso queste è possibile configurare le ACL degli switch.
Iniziamo quindi il nostro viaggio alla scoperta delle API Meraki.
Getting started
A questo link potete trovare un utile guida su come familiarizzare con le API Meraki.
Se non hai già avuto a che fare con l'utilizzo di API, il software Postman è un buon inizio. Postman è uno strumento popolare con interfaccia grafica per l'utilizzo di REST API. Se non l'hai già installato sul PC, lo puoi scaricare qui. Non è necessario creare un account ma può essere utile per sincronizzare gli ambienti su macchine diverse.
Dopo aver installato Postman, iniziamo con il setaggio della dashboard Meraki e di Postman per l'utilizzo delle API.
Abilitare l'accesso tramite API
A questo link trovi la guida su come abilitare l'accesso tramite API su Meraki.
Per prima cosa, abilitiamo l'accesso navigando in Organization > Settings > Dashboard API access.
Enable API
Successivamente, andiamo sulla pagina my profile e generiamo una chiave API. Questa chiave è associato al nostro utente ed eredita gli stessi diritti e permessi dell'account della dashboard.
Generate API key
Una volta generata, salva la chiave da qualche parte, poiché dovrà poi essere inserita in Postman.
A questo punto, siamo pronti per il setaggio di Postman.
Postman setup
In questo esempio, riportiamo l'utilizzo delle API Meraki v0.
Apriamo, quindi, Postman sul PC e andiamo poi al link della collezione Meraki Postman accessibile qui. Qui sono riportate tutte le possibili chiamate API e il loro funzionamento. Il nostro scopo è quello di importare queste chiamate in Postman. Per fare ciò clicchiamo sul Run in postman in alto a destra e successivamente selezioniamo Postman for Windows (nel mio caso in quanto utente Windows).
Run in Postman
Dopo questa operazione, avremo importato tutte le chiamate API di Meraki.
Meraki API imported on Postman
Ora possiamo procedere con il settaggio dei Postman environment. Un environment è un insieme di variabili che vengono salvate ed utilizzate all'occorrenza e utilizzate dalle chiamate API. Per aggiungere un nuovo environment clicchiamo sull'occhio in alto a destra e poi clicchiamo Add.
Add environment
A questo punto, selezioniamo un nome al nostro insieme di variabili, per es. "Meraki API TestOrg".
Successivamente settiamo le variabili. La prima variabile da inserire è il baseUrl, cioé l'Url usato dalle API. Inseriamo baseUrl sotto la colonna variable e https://api.meraki.com/api/v0 sotto initial value e current value.
Successivamente inseriamo la chiave API generata in precedenza. Sotto variable scriviamo X-Cisco-Meraki-API-Key e come initial value e current value inseriamo la nostra chiave.
Nell'immagine sottostante, come chiave è stato inserito il valore fornito da Meraki per testare le API.
Set environment
Una volta inserite le variabili, clicchiamo il pulsante Add e controlliamo che sia settato il nuovo environment creato in alto a destra.
API call
Ora siamo pronti per inviare la nostra prima chiamata API. Dalla collezione Meraki dashboard API selezioniamo la cartella Organization e poi selezioniamo getOrganizations. Clicchiamo quindi il pulsante Send e aspettiamo la risposta.
First API call
Dalla risposta, possiamo ricavare l'organization Id di ogni organizzazione a cui abbiamo accesso. Prendiamo l'Id dell'organizzazione che ci interessa e lo settiamo come nuova variabile del nostro environment. Inseriamo, quindi, organizationId come variable e come valore l'Id ottenuto.
Ora, dobbiamo trovare l'Id della network che ci interessa. Per fare ciò selezioniamo l'API getOrganizationNetworks sotto la cartella Network. Assicurati di deselezionare il parametro opzionale configTemplateID.
Network Id call
Come fatto per l'organizationId, inseriamo il network Id come nuova variabile d'ambiente. Sotto variable inseriamo networkId e come valore il valore ottenuto dalla chiamata.
Siamo ora pronti per ottenere informazioni dalla nostra network attraverso la chiamate GET e configurarla attraverso le chiamate PUT.
Nel mio caso, per esempio, dovevo configurare le ACL sugli switch. Per capire come scrivere la chiamata PUT correttamente, possiamo leggere la documentazione nel link di Postman oppure, come ho fatto io, possiamo procedere configurando le prime righe delle ACL tramite la dashboard. A questo punto lanciamo la chiamata getNetworkSwitchAccessControlLists sotto la cartella Switch ACLs, copiamo l'output ottenuto, lo incolliamo in Notepad++ (o simili) e da qui modifichiamo l'output JSON a seconda delle nostre esigenze.
getNetworkSwitchAccessControlLists call
Fatto ciò, selezioniamo la chiamata updateNetworkSwitchAccessControlLists e sotto la sezione Body incolliamo il nuovo output JSON appena modificato.
updateNetworkSwitchAccessControlLists call
A questo punto siamo pronti a vedere apparire in dashboard Meraki le ACL appena inviate tramite chiamata API.