IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

script pour mise à jour équipement réseaux


Sujet :

Réseau/Web Python

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut script pour mise à jour équipement réseaux
    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

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 681
    Par défaut
    Salut,

    Citation Envoyé par tetzispa Voir le message
    - 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.
    Avec Python vous avez des listes ou des dictionnaires pour stocker çà.

    Citation Envoyé par tetzispa Voir le message
    - 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) ?
    En général, une action se traduit par une fonction qui pourra être appelée...

    Mais tout cela est abordé dans n'importe quel tuto. et c'est mieux d'apprendre à programmer avant de se retrouver coincé par des choses basiques.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    sauf qu'il est "compliqué" d'apprendre à programmer quand on est sur un autre domaine de compétences (on nous apprend pas tout en cours) et en 10 ans de carrière en tant qu'ingénieur réseaux, je n'ai toujours pas vu un collègue sachant dev en python (ou prenant le temps). Donc les cours/tutos c'est bien, faut aller se faire former pour être sur de faire les choses bien haha car après je n'ai pas le temps

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 681
    Par défaut
    Citation Envoyé par tetzispa Voir le message
    Donc les cours/tutos c'est bien, faut aller se faire former pour être sur de faire les choses bien haha car après je n'ai pas le temps
    Je ne prends le temps d'aider que ceux qui sont suffisamment motivés pour avoir essayé d'apprendre avant de poster. Désolé.
    note: relisez les règles du forum.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 179
    Par défaut
    c'est vrai que de tenter d'expliquer 2/3 trucs ou montrer des exemples c'est si dur le temps c'est quelque chose que je n'ai pas trop pour apprendre correctement, mais bon les réponses en mode "read man" ou "rtfm" autant ne pas poster de trucs comme ça et dans ce cas là, autant fermer un forum si ce n'est ouvert qu'aux spécialistes

    pour te faire plaisir je peux dire : j'ai lu les cours, je comprends rien, tu peux m'aider ? c'est mieux ?

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/09/2016, 19h32
  2. Réponses: 4
    Dernier message: 23/08/2014, 13h12
  3. Script pour mise à jour
    Par mimi1255 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 23/11/2008, 11h04
  4. [Utilisation] Pb script php pour mise à jour via SVN
    Par dmk04 dans le forum Subversion
    Réponses: 1
    Dernier message: 30/08/2007, 13h27
  5. Utilisation de CASCADE pour mise à jour
    Par fuelcontact dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/08/2004, 08h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo