WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:services:backup_cfg_cisco

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
wiki:services:backup_cfg_cisco [2018/07/08 21:07]
no_pseudo orthographe
wiki:services:backup_cfg_cisco [2020/06/27 18:16] (Version actuelle)
Ligne 17: Ligne 17:
  
 <sup>3</sup> En plus maintenant que les commutateurs utilisent les identifiants LDAP pour SSH, utiliser le mot de passe du compte SSH local risque de moins bien marcher. <sup>3</sup> En plus maintenant que les commutateurs utilisent les identifiants LDAP pour SSH, utiliser le mot de passe du compte SSH local risque de moins bien marcher.
 +
 +<WRAP center round info 60%>
 +Evidemment il existe tout un tas de logiciel pour faire de la sauvegarde de conf (avec différents supports de matériel, de fonctionnalités), comme par exemple [[https://github.com/ytti/oxidized|Oxidized]], mais ils demanderont probablement la création d'un user pour pouvoir récupérer la conf notamment
 +</WRAP>
  
 ===== Ce qu'on voulait faire ===== ===== Ce qu'on voulait faire =====
Ligne 25: Ligne 29:
 Et puis on en a reparlé il y a pas longtemps et je me suis chauffé pour lire un peu la doc Cisco pour savoir comment s'y prendre pour implémenter tout le bordel. Et là <del>c'est le drame</del> je découvre qu'il y a déjà quelque chose prévu par Cisco pour faire des sauvegarde de configuration de manière très simple et pire encore c'était presque déjà configuré sur le commutateur du local (il manquait la partie la plus importante de la configuration). Et puis on en a reparlé il y a pas longtemps et je me suis chauffé pour lire un peu la doc Cisco pour savoir comment s'y prendre pour implémenter tout le bordel. Et là <del>c'est le drame</del> je découvre qu'il y a déjà quelque chose prévu par Cisco pour faire des sauvegarde de configuration de manière très simple et pire encore c'était presque déjà configuré sur le commutateur du local (il manquait la partie la plus importante de la configuration).
  
-===== Ce qu'il faut faire ===== +===== Ce qui est en place =====
- +
-<WRAP center round important 60%> +
-Actuellement ce n'est qu'un proof-of-concept déployé en dev et sur le commutateur du local. Voir la partie « Démo ». +
-</WRAP>+
  
 En fait il est possible de définir des « archives de configuration » sur les commutateurs. Ainsi pour définir une archive on doit donner au commutateur un chemin où stocker l'archive (ça peut être un chemin local ou sur le réseau) ainsi qu'une condition pour lancer le processus de création d'archive (un intervalle de temps ou une action). En fait il est possible de définir des « archives de configuration » sur les commutateurs. Ainsi pour définir une archive on doit donner au commutateur un chemin où stocker l'archive (ça peut être un chemin local ou sur le réseau) ainsi qu'une condition pour lancer le processus de création d'archive (un intervalle de temps ou une action).
Ligne 39: Ligne 39:
 1) Éviter d'envoyer des configurations de commutateur en clair sur le réseau. (Alors oui, on va me dire « c'est sur un réseau privé » mais c'est pas une raison). 1) Éviter d'envoyer des configurations de commutateur en clair sur le réseau. (Alors oui, on va me dire « c'est sur un réseau privé » mais c'est pas une raison).
  
-2) Vu que SCP est basé sur SSH, on a pas grand chose à installer sur notre serveur: //openssh-server////openssh-client// et //rssh// (cf infra).+2) Vu que SCP est basé sur SSH, on a pas grand chose à installer sur notre serveur: //openssh-server// et //openssh-client//(cf infra).
  
 ==== Côté commutateur ==== ==== Côté commutateur ====
Ligne 49: Ligne 49:
  
 <code> <code>
-sw(archive-config)# path scp://utilisateur:motdepassesuperduratrouver@192.168.103.178/archives/$h_$t+sw(archive-config)# path scp://utilisateur:motdepassesuperduratrouver@192.168.102.148/var/archives/$h_$t
 </code> </code>
 C.f. : Note sur le nom du fichier <sup>1</sup> C.f. : Note sur le nom du fichier <sup>1</sup>
Ligne 57: Ligne 57:
 </code> </code>
 <code> <code>
-sw(archive-config)# time-period 1440+sw(archive-config)# time-period 20160
 </code> </code>
-On va lancer le processus d'archivage lorsqu'on fait un « write mem » ou toutes les 1440 minutes (toutes les 24h).+On va lancer le processus d'archivage lorsqu'on fait un « write mem » ou toutes les 20160 minutes (toutes les 2 semaines).
  
 <sup>1</sup>** Note sur le nom du fichier: « $h_$t » ** <sup>1</sup>** Note sur le nom du fichier: « $h_$t » **
Ligne 241: Ligne 241:
 Notre dossier ///var/confsw/versions/// contiendra alors un joli dépôt git avec un commit à chaque « write mem ». Notre dossier ///var/confsw/versions/// contiendra alors un joli dépôt git avec un commit à chaque « write mem ».
  
-===== Démo =====+Vous pouvez retrouver le dépôt ici : [[https://gitlab.minet.net/zastava/switchsaves|Confsw]].
  
-Un container tourne en dev+===== Restaurer une configuration ===== 
 + 
 +Pour restaurer une ancienne configuration il suffit en théorie de faire:
 <code> <code>
-ct: 105  +sw> enable 
-hostnameconfsw +sw# copy scp://utilisateur:motdepassesuperduratrouver@192.168.102.148/archives/nom-du-fichier-de-conf startup-config: 
-ip: 192.168.103.178+</code> 
 +Il est possible de voir les dernières archives via 
 +<code> 
 +sw# show archive
 </code> </code>
  
  
-On peut faire un « git log » dans ///var/confsw/versions/// pour voir les commits pendant qu'on fait des « write mem » sur le commutateur du local.+===== Déployer rapidement sur les switchs et autres équipements ===== 
 + 
 +Pour déployer la configuration rapidement sur les switchs, on utilise [[https://wiki.minet.net/wiki/services/ansible/|Ansible]]. 
 + 
 +Voici le script (très basique) utilisé.
  
-Les choses intéressantes sur le CT: 
 <code> <code>
-/etc/passwd +- hosts: [switchs] 
-/etc/rssh.conf +  gather_facts: false 
-/etc/ssh/sshd_config + 
-/etc/incron.allow +  tasks: 
-/opt/git_swconfig/git_swconfig.sh +    - name : stop archiving 
-/var/spool/incron/johndoe +      ios_config: 
-/var/confsw/chroot/ +         lines: 
-/var/confsw/versions+          - archive 
-/var/log/syslog+          - no archive 
 +    - name: save conf 
 +      ios_config: 
 +        lines: 
 +          - service timestamp log datetime msec year 
 +          - archive 
 +          - path scp://utilisateur:motdepassesuperduratrouver@192.168.102.148//var/confsw/archives/$h_$t 
 +          - time-period 20160 
 +          - write-memory 
 </code> </code>
  
-Les choses intéressantes sur le commutateur du local (en mode privilégié):+Et voici le fichier //hosts// utilisé: 
 <code> <code>
-Le bloc de configuration « archive »+[switch:vars] 
-La configuration de « service timestamp log »+ansible_ssh_common_args='-o Ciphers=aes256-cbc -o KexAlgorithms=diffie-hellman-group1-sha1' 
-Le résultat de « show archive ».+ansible_connection=network_cli 
 +ansible_user=tonidldap 
 +ansible_network_os=ios 
 +ansible_become=no 
 +ansible_become_method=enable 
 +ansible_ssh_pass=tonmdpldap 
 + 
 +[switch_u2] 
 +192.168.102.206 
 +[switch_wifi] 
 +192.168.102.221 
 +192.168.102.222 
 +192.168.102.224 
 +192.168.102.224 
 +192.168.102.225 
 +192.168.102.216 
 +[switch] 
 +192.168.102.201 
 +192.168.102.202 
 +192.168.102.203 
 +192.168.102.204 
 +192.168.102.205 
 +192.168.102.206 
 +192.168.102.207 
 +192.168.102.208 
 +192.168.102.209 
 +192.168.102.210 
 +192.168.102.211 
 +192.168.102.212 
 +192.168.102.213 
 +192.168.102.214 
 +192.168.102.215 
 +192.168.102.217 
 +192.168.102.218 
 +192.168.102.230 
 +192.168.102.240 
 +192.168.102.241 
 +192.168.102.242 
 +192.168.102.243 
 +192.168.102.244 
 +192.168.102.245 
 +192.168.102.246
 </code> </code>
  
-===== Autre fonctionnalité des archives Cisco =====+Ajoutez également <code>host_key_checking False</code> dans le fichier //ansible.cfg//. Ca vous permettra d'éviter la vérification de la clé ssh des switchs ou autres équipements.
  
 +===== Autre fonctionnalité des archives Cisco =====
  
 Il est possible de journaliser toutes les commandes entrées sur le commutateur par un utilisateur. Combiné avec l'authentification via le service [[wiki:services:radius-switch|Radius-Switch]] ça peut être utile pour savoir //« qui a fait de la merde ? »//. Il est possible de journaliser toutes les commandes entrées sur le commutateur par un utilisateur. Combiné avec l'authentification via le service [[wiki:services:radius-switch|Radius-Switch]] ça peut être utile pour savoir //« qui a fait de la merde ? »//.
wiki/services/backup_cfg_cisco.1531076872.txt.gz · Dernière modification: 2020/06/27 18:15 (modification externe)