| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Utilizarea de scripturi Windows pt automatizarea accesului cu TELNET
Administrarea simpla si eficienta a echipamentelor IT folosind Scripturi Windows
Sorin P. ian-2014 Grad de dificultate mare Public tinta: specialisti IT
Intro
In activitatea de specialist IT sint dese situatiile in care trebuie accesate la distanta tot felul de echipamente prin reteaua de date. Fie ca vorbim despre configurarea unei noi interfete a unui router, de adaugare a unui flux ISDN nou pe un voice-gateway aflat deja in uz sau de citirea zilnica a fisierelor log ale unor servere Unix, accesarea la distanta prin TELNET sau SSH reprezinta o activitate recurenta cotidiana.
Activitati recurente la viteza maxima
La initializarea unei sesiuni TELNET pe un echipament, primul lucru care trebuie facut inainte de a plasa comenzile necesare, este acela de a introduce o parola de acces si (eventual) un username.
Cele 5-10 secunde necesare tastarii a 10-20 de caractere pot parea o chestiune minora. Ce poti face insa in situatia in care apare un incident si trebuie sa interoghezi contra-cronometru 10-20 de switch-uri si router-e in goana identificarii cauzei - avind eventual si o mica cohorta de “spectatori” (colegi din diferite compartimente), care se uita la tine in acel moment ca la Super(IT)man ? Sau in situatia in care trebuie accesate zeci (chiar sute) de echipamente (ei bine, fisa de post a unui sys/net-admin presupune si executarea celor mai indragite dintre activitati, si anume inventarierea anuala si completarea/verificarea CMDB) ? Sau cind respctivele echipamente sint eterogene (servere Windows/Unix/Linux, HDD-rack-uri, SAN/Fiber-channel switch-uri) si fiecare are alt tip de interfata de autentificare, ce necesita secvente diferite la initializare ?
Acestea sint momentele in care veti incepe sa apreciati script-urile. Fie ca vorbim de fisiere batch (cmd , bat), wscript (wsf), shell scripts (sh), sau chiar scripturi macro (xls - xlsm), este bine sa alocati din timpul de lucru citeva zeci de ore de studiu sa invatati cite putin din toate, urmind sa decideti mai tirziu, dupa caz, care va pot fi de ajutor.
Un script util (sau chiar un set) In cele ce urmeaza, va voi vorbi, cu exemple concrete, despre cum va puteti crea un set de citva scripturi cu care sa puteti accesa mai usor prin telnet switch-uri si router-e Cisco in vederea automatizarii mai multor activitati, cum ar fi:
NOTA Script-ul de care discut mai jos este mai degraba un "ambalaj", al carui continut poate fi modificat foarte usor pt a include tot felul de comenzi imaginabile de utilizator. Poate fi folosit nu doar pt accesarea de echipamente Cisco, ci si pt server-e UNIX/LINUX sau pt orice echipament ce poate fi accesat prin TELNET.
Presupun ca vi se va parea util ca rezultatul rularii sesiunilor de telnet de mai sus sa fie salvate in cite un fisier pt fiecare echipament in parte. Aceste fisiere se pot scana (am evitat sa folosesc cuvintul parsing) ulterior in vederea centralizarii simplificate a datelor doriteintr-un fisier CSV sau XLS. In aceasta prima parte a articolului voi discuta despre script-ul de lansare a comenzii de TELNET dintr-un DOS-prompt lansat pe un computer avind Windows 7 pe 64 biti.
In partea a treia a acestui articol va voi prezenta un script macro (pt fisiere EXCEL), care poate xtrage sn-urile (serial-number) echipamentelor interogate automat cu ajutorul prezentului script si a unor subansamble - pe mine m-a interesat seria surselor de alimentare. Definirea temei si identificarea solutiei "manuale" Primul script din set, numit de mine ATELNET.WSF, este creat pt a fi lansat dintr-un DOS_PROMPT (veti vedea in partea a doua de ce) si va initia o sesiune de telnet pe un echipament specificat la lansare (numele de retea sau adresa IP). Deoarece doresc sa pot folosi rezultatul rularii acestui script pt culegerea de date ulterior executiei, se va crea cite un fisier log pt fiecare echipament accesat.
Deoarece nu doresc sa aduc in discutie o aplicatie third-party, fie ea freeware si open-source, voi apela programul TELNET.EXE din Windows, cu parametrul -f pt a salva toata sesiunea intr-un fisier de log.
Sa vedem, asadar, cum arata o sesiune de telnet initiata pe un switch Cisco in varianta "manuala", folosind metoda de mai sus: In DOS-BOX-ul de mai sus am evidentiat comenzile date manual in albastru. Ceea ce dorim este sa implementam un script care sa introduca informatia in albastru pt noi. Script-ul ATELNET.WSF Ce face script-ul:
Va invit sa gasiti script-ul in tabelul de mai jos (in coloana 1), caruia i-am adaugat si o coloana de comentarii.
In cazul in care doriti sa-l utilizati, este suficient sa copiati doar textul din coloana din stinga, urmint sa-l introduceti intr-un fisier text caruia va trebui sa-i dati extensia wsf. Utilizarea script-ului ATELNET.WSF Ln general, un fisier wsf poate fi lansat direct cu un dublu-click dintr-o fereastra Windows explorer sau My Computer. Dar, deoarece atelnet.wsf necesita explicitarea echipamentului-tinta in scopul de a fi folosit ca un modul multifunctional, acesta trebuie lansat cu un parametru. Pt aceasta, va trebui: - fie sa deschideti un DOS-BOX in directorul in care este pus fisierul si de acolo scrieti comanda "atelnet adresa_ip" sau "atelnet nume_echipament" - fie creati un fisier cmd in care scrieti C:\temp\locatia_1\atelnet.wsf 172.16.14.3 ( sau doar atelnet 172.16.14.3 daca fisierul cmd se afla in locatia curenta) - fie creati un shortcut in ale carui proprietati adaugati la Target adresa IP dupa atelnet.wsf
Observatii asupra script-ului ATELNET.WSF
Desi fisierele wsf reprezinta o metda simpla si eficienta de a va automatiza munca, exista si un revers al medaliei: comanda WshShell.SendKeys trimite secventa de caractere "in orb", spre fereastra activa. De aceea nu trebuie sa folositi computerul in timp ce aveti in executie fisiere wsf, altfel veti constata cu stupoare ca string-urile trimise de script vor apare in fisierul WORD pe care tocmai il editati.
De asemenea, cind executati astfel de comenzi nu blocati ecranul (pt a pleca de la birou intr-o mica pauza, de exemplu), deoarece respectivele comenzi vor fi trimise in alte ferestre active din windows si nu veti obtin rezultatul dorit.
In partea a doua a acestui artcol va voi prezenta un al doilea script care preia un set de adrese IP dintr-un fisier ini si lanseaza automat cite o fereastra atelnet pt fiecare echipament in parte, putind astfel sa executati 10-15 de astfel de interogari in paralel.
Continuare in partea a doua In cazul in care informatiile postate pe site-ul meu vi s-au parut interesante, va astept sa reveniti.
vizitatori. Site alternativ: sorin-p.xhost.ro |