miercuri, 26 februarie 2020

Google Sheets API

Mai multe situatii din ultima vreme m-au facut sa ma gandesc la un setup in care elemente din configuratia echipamentelor de retea sa poata fi vazute sau modificate, utilizand o platforma shared de prezentare a informatiei, care sa fie usor accesibila si free.

Pornind de la aceste cerinte, aplicatia la care m-am gandit in mod natural a fost Google Sheets. 
In acesta postare voi descrie cum ne putem folosi de Google Sheets API pentru a centraliza datele colectate de pe echipamente sau pentru a le configura.


Scenariul 1
Sa presupunem in primul scenariu ca dorim sa pastram un inventar al tuturor versiunilor IOS instalate, sau al claselor de LAN configurate pe routerele aflate in administrarea noastra. Daca numarul echipamentelor nu este unul foarte mare, stocarea informatiei intr-o baza de date ar putea sa fie in unele situatii un overkill. Uneori un tabel Excel este suficient pentru a adresa nevoia.

Pornind de la aceasta idee am scris in Python un script care utilizeaza NAPALM pentru a colecta informatia dorita de pe routere, apoi apeleaza Google Sheets API pentru a scrie output-ul intr-un Worksheet. 

Workflow


1. Se ruleaza scriptul in Python, se executa comenzile pe router.
2. Se colecteaza informatia de pe routere
3. Se prezinta cheia de autorizare catre API
4. API-ul acceseaza Worksheet-ul share-uit cu el

Descarca scriptul comentat


Scenariul 2
In cel de-al doilea scenariu am gandit utilizarea Google Sheets ca pe un formular de introducere date.
In aceasta situatie un utilizator completeaza anumite campuri intr-un Worksheet, iar acestea vor constitui input pentru un script care le va utiliza pentru a configura o lista de routere.

Workflow


1. Se prezinta cheia de autorizare catre API
2. Se citesc campurile de interes din Worksheet
3. Se trimit comenzile de configurare

Descarca scriptul comentat


Instalare librarii Python
- pip install gspread 
- pip install oauth2client
- pip install napalm


Activare Google Sheets API
Procedura este pana la un punct asemanatoare cu cea descrisa in postul despre instalarea Google Assistant pe Ubuntu Desktop.

1. Accesam Google Cloud Console
2. Cream un nou proiect
3. Activam API-urile necesare
4. Generam fisierul JSON pentru autorizare
5. Facem share la un Worksheet


1. Accesam Google Cloud Console


2. Cream un nou proiect
Facem click pe butonul din stanga sus.



Apasam ‘New project’



Scriem numele proiectului nostru si apasam ‘Create’


Dupa ce a fost creat proiectul, accesam APIs & Services > Dashboard




Facem click pe ‘Enable APIs & Services’



3. Activam API-urile necesare
- Google Drive API
- Google Sheets API


4. Generam fisierul JSON pentru autorizare
Dupa ce activam Google Drive API, generam credentialele de autorizare.




Configuram ca in imagine si apasam ‘What credentials do i need?’



Configuram ca in imagine si apasam ‘Continue’

Se va descarca un fisier JSON care contine detaliile de autorizare pentru scriptul nostru.
Il putem redenumi pentru a ne fi mai usor de utilizat in script.

Dupa ce s-a descarcat il deschidem cu orice editor de text si copiem valoarea cheii “client_email”.



5. Facem share la un Worksheet
Deschidem un Worksheet la care facem share cu aceasta adresa de email.


Apasam ‘Send’


Documentatie:
gspread
NAPALM





Niciun comentariu :

Trimiteți un comentariu