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 :

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
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 :

- 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