Hello,
n'étant pas un fondu de la prog, commençant à me mettre sur python (tant bien que mal, et plus mal que bien) je viens vous solliciter afin de voir comment je peux continuer mon script (je bloque un peu).
L'utilisation du script est la suivante : il lit un fichier texte avec des IP, il se connecte en boucle, il détecte la version de l'équipement, on regarde combien il y a d'équipements sur l'IP (car une IP peut avoir N équipements, stack), en fonction de la version de l'équipement (trouvée avant) on compare le MD5 de l'image sur l'équipement et le serveur tftp, si différence on download l'image du serveur vers l'équipement et on force la prise en compte de l'image sur l'équipement.
Je suis tombé sur une libraire "netmiko" (https://pynet.twb-tech.com/blog/automation/netmiko.html) qui permet de "simplifier" certaines choses, mais je bloque sur pas mal de trucs, voici le début de mon script :
Donc ici, je sais comment me connecter sur une liste d'IP, envoyer une commande sur mon équipement, je sais l'afficher dans le terminal (youpi je suis trop fort). Mes questions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 #!/usr/bin/python # -*- coding: ISO-8859-1 -*- # #################################### # script mise à jour firmware comware HPE # # version = 0.1 # Date = 05/02/2018 # Change : # version = Date = # Modif prises en comptes = #################################### # besoin de netmiko # pip install netmiko # https://github.com/ktbyers/netmiko # https://pynet.twb-tech.com/blog/automation/netmiko.html from netmiko import ConnectHandler, FileTransfer import subprocess import re import sys import time import select import hashlib # declaration des variables - fichier des IP - type de device pour netmiko - user - password ip_list = file("test.txt", "r") device_type = "hp_comware" user = "rancid" password = "password" tftp_conseil = "XXX.XXX.XXX.XXX" source_file = "test.txt" dest_file = "test.txt" # boucle pour lire le fichier texte des IP - se connecter et lancer une commande for host in ip_list.readlines(): host = host.strip() device = ConnectHandler(device_type=device_type, ip=host, username=user, password=password) output = device.send_command('display device manuinfo') # on va afficher les informations utile du switch for line in output.split("\n"): if line.split(":")[0].strip()=="DEVICE_NAME": # on recupere la variable du device name print line.split()[5] # on affiche le numero de modele ip_list.close
- comment mettre en "mémoire" le retour que je cherche à avoir pour la version, car c'est bien sympa de print la valeur que je cherche, je ne comprends pas comment je peux l'exploiter/traiter derrière.
- est-ce que je dois faire chacune des actions dans la même boucle où je lis le fichier texte (et donc tout indenté à la suite) ?
merci pour le début de retour
Partager