Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
docpublic:systemes:ansible_cisco [2023/01/08 15:50]
adminjp created
docpublic:systemes:ansible_cisco [2023/01/08 18:14] (current)
adminjp [Playbook ansible cisco cli cmd]
Line 2: Line 2:
  
 gerer du materiel reseau via ansible, exemple avec cisco  gerer du materiel reseau via ansible, exemple avec cisco 
 +
 +pour se connecter sur une equipement reseau sans avoir a saisir de mot de passe afin de favoriser l'automatisation il faut auprealable echanger les clés ssh , puis on fera usage de ansible via ssh pour lancer des commandes . 
 +
 +===== linux keys =====
 +
 +generer une paire de clée ssh sur la station de commande linux (master node) 
 +
 +
 +<code>
 +[ansnet@ansmnode ~]$ ssh-keygen -b 4096 -t rsa
 +Generating public/private rsa key pair.
 +Enter file in which to save the key (/home/ansnet/.ssh/id_rsa): /home/ansnet/.ssh/id_rsa_ansiblenet46      
 +Enter passphrase (empty for no passphrase): 
 +Enter same passphrase again: 
 +Your identification has been saved in /home/ansnet/.ssh/id_rsa_ansiblenet46.
 +Your public key has been saved in /home/ansnet/.ssh/id_rsa_ansiblenet46.pub.
 +</code>
 +
 +formater la clée dans un format compatible avec le copier/coller vers la cli cisco 
 +
 +<code>
 +[ansnet@ansmnode .ssh]$ fold -b -w 72  id_rsa_ansiblenet46.pub 
 +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC+NTIY3H4/yfQymt1kKfgNzEkfSKNkx8U4
 +Fxn65ZNmt5cx61MEXYK6Ok8HkRWCRAh6DCm/NzDzPLPqMZCj5VeMkIk1RMccafdCVxKfBnPd
 +....
 +8gjWECltaV10HCSKeUgZ2S9rT8KIUGlvMhp5Mg1jmRMIgOK+/iJOdMaKylx3zklR8lcJYzTt
 +UQ== ansnet@ansmnode.domain.fr
 +</code>
 +
 +
 +
 +association de la clée privée avec le routeur cisco 
 +
 +<code>
 +[ansnet@ansmnode .ssh]$ cat config 
 +host routeur
 + HostName routeur
 + IdentityFile ~/.ssh/id_rsa_ansiblenet46
 + User ansiblenet
 +</code>
 +
 +avec une definition de l'adresse IP dans le fichier host
 +
 +<code>
 +[ansnet@ansmnode .ssh]$ cat /etc/hosts | grep routeur
 +192.168.1.7 routeur
 +</code>
 +===== compte Cisco avec clé ssh =====
 +
 +pour realiser nos commandes cisco depuis ansible, on créé un compte de privileges aproprié (ici 10) 
 +
 +<code>
 +routeur(config)#username ansnetco privilege 10 password 0 secretpass
 +</code>
 +
 +puis on associe la clée publique formattée ci-dessous sous linux par simple copier/coller 
 +
 +<code>
 +routeur(config)#ip ssh pubkey-chain
 +routeur(conf-ssh-pubkey)#username ansnetco
 +routeur(conf-ssh-pubkey-user)#key-string
 +routeur(conf-ssh-pubkey-data)#ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC+NTIY3H4/yfQymt1kKfgNzEkfSKNkx8U4
 +routeur(conf-ssh-pubkey-data)#Fxn65ZNmt5cx61MEXYK6Ok8HkRWCRAh6DCm/NzDzPLPqMZCj5VeMkIk1RMccafdCVxKfBnPd
 +.....
 +routeur(conf-ssh-pubkey-data)#8gjWECltaV10HCSKeUgZ2S9rT8KIUGlvMhp5Mg1jmRMIgOK+/iJOdMaKylx3zklR8lcJYzTt
 +routeur(conf-ssh-pubkey-data)#UQ== ansnet@ansmnode.domain.fr
 +routeur(conf-ssh-pubkey-data)#exit
 +routeur(conf-ssh-pubkey-user)#exit
 +routeur(conf-ssh-pubkey)#exit
 +</code>
 +
 +===== acces ssh cisco =====
 +
 +Maintenant que tout est en place, il est possible de se connecter en ssh en utilisasant le clée ssh pour l'authentificaion .
 +
 +<code>
 +[ansnet@ansmnode .ssh]$  ssh -c aes192-ctr ansnetco@routeur
 +
 +
 +routeur#show privilege 
 +Current privilege level is 10
 +</code>
 +
 +
 +===== Playbook ansible cisco cli cmd =====
 +
 +playbook ansible qui lance une commande cisco en cli affichant les stats de CPU QOS  
 +
 +<code>
 +routeur#show platform hardware fed switch active qos queue stats internal cpu policer
 +
 +                         CPU Queue Statistics                  
 +============================================================================================
 +                                              (default) (set)     Queue        Queue
 +QId PlcIdx  Queue Name                Enabled   Rate     Rate      Drop(Bytes)  Drop(Frames)
 +--------------------------------------------------------------------------------------------
 +0    11     DOT1X Auth                  Yes     1000      1000                0          
 +1    1      L2 Control                  Yes     2000      2000                0          
 +2    14     Forus traffic               Yes     4000      4000                0          
 +3    0      ICMP GEN                    Yes     750       750      0            0          
 +4    2      Routing Control             Yes     5500      5500                0          
 +5    14     Forus Address resolution    Yes     4000      4000                0          
 +6    0      ICMP Redirect               Yes     750       750      7021943669  59789154  
 +7    16     Inter FED Traffic           Yes     2000      2000                0          
 +8    4      L2 LVX Cont Pack            Yes     1000      1000                0          
 +9    19     EWLC Control                Yes     13000     13000    0            0          
 +10   16     EWLC Data                   Yes     2000      2000                0          
 +11   13     L2 LVX Data Pack            Yes     1000      1000                0          
 +12        BROADCAST                   Yes     750       750      31304954    155792    
 +13   10     Openflow                    Yes     250       250      0            0          
 +14   13     Sw forwarding               Yes     1000      1000     2977910     41510     
 +15        Topology Control            Yes     13000     16000    0            0          
 +...
 +
 +</code>
 +
 +c'est une commande complexe pour laquelle je n'ai pas trouvé d'OID snmp, ce qui aurai bcp plus simple ...
 +
 +le playbook ansible ci-dessous realise l'execution de cette commande et stocke le resultat dans un fichier texte locale et noeud master ansible depuis lequel il s'execute 
 +
 +<code>
 +[ansnet@ansmnode .ssh]$ cat /home/ansnet/ansnet/playRecPolicy.yml
 +---
 +
 +- name: Playbook to show qos queue stats internal cpu policer on Cisco 9K
 +  connection: network_cli
 +  hosts: routeur
 +  remote_user: ansnetco
 +  gather_facts: False
 +
 +  tasks:
 +    - name: Show platform hardware qos queue stats internal cpu policer on Device
 +      ios_command:
 +        commands:
 +                - show platform hardware fed switch active qos queue stats internal cpu policer
 +      vars:
 +        ansible_ssh_user: ansnetco
 +        ansible_ssh_pass: "{{ ios_password }}"
 +        ansible_network_os: "ios"
 +        #        ansible_ssh_private_key_file: '/home/ansnet/.ssh/id_rsa_ansiblenet46'
 +
 +      register: config
 +
 +    - name: Save output to output folder
 +      copy:
 +        content: "{{ config.stdout[0] }}"
 +        dest: "/home/ansnet/ansnet/output/{{ inventory_hostname }}-cpu-policer.txt"
 +</code>
 +
 +reste a parser le ficher txt pour en retirer les valeurs a grapher . 
 +
 +
  
 ==== references URLs ==== ==== references URLs ====
docpublic/systemes/ansible_cisco.1673193056.txt.gz · Last modified: 2023/01/08 15:50 by adminjp
[unknown link type]Back to top
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0