{"id":87,"date":"2018-12-20T12:31:45","date_gmt":"2018-12-20T11:31:45","guid":{"rendered":"http:\/\/blog.nosland.com\/?p=87"},"modified":"2018-12-20T12:31:47","modified_gmt":"2018-12-20T11:31:47","slug":"rancid","status":"publish","type":"post","link":"http:\/\/blog.nosland.com\/?p=87","title":{"rendered":"RANCID"},"content":{"rendered":"\n<p><em>Cet article\/documentation a \u00e9t\u00e9 faite avec un coll\u00e8gue de l&rsquo;Universit\u00e9 Paris 8. Ce coll\u00e8gue disparu aujourd&rsquo;hui, je d\u00e9sirais publier cette  documentation qui peut s&rsquo;av\u00e9rer int\u00e9ressante et tr\u00e8s utile \u00e0 la communaut\u00e9. Les captures d&rsquo;\u00e9cran et le texte n&rsquo;a pas \u00e9t\u00e9 retouch\u00e9 depuis qu&rsquo;elle a \u00e9t\u00e9 \u00e9crite. Micka\u00ebl Fortier est d\u00e9c\u00e9d\u00e9 en d\u00e9cembre 2017. Merci \u00e0 lui pour cette doc.  <\/em> <\/p>\n\n\n\n<p>1\u00a0RANCID<\/p>\n\n\n\n<p>En tant qu\u2019administrateur, on cherche toujours \u00e0 am\u00e9liorer et \u00e0 s\u00e9curiser les r\u00e9seaux, mais malheureusement, la sauvegarde des actifs r\u00e9seau n\u2019est pas toujours une priorit\u00e9, on fait une modification en urgence, on se dit qu\u2019on fera la sauvegarde un peu plus tard&#8230;<\/p>\n\n\n\n<p>Mais le jour o\u00f9 on conna\u00eet une panne, il faudra bien refaire la configuration, avec une sauvegarde ce serait mieux, et si elle est \u00e0 jour ce serait parfait.<\/p>\n\n\n\n<p>D\u2019o\u00f9 l\u2019utilit\u00e9 de la mise en place d\u2019un syst\u00e8me de backup automatis\u00e9 pour les actifs r\u00e9seau.<\/p>\n\n\n\n<p>Rancid (Really Awesome New Cisco confIg Differ) est un outil qui permet de sauvegarder automatiquement les configurations d\u2019\u00e9quipements r\u00e9seaux.<\/p>\n\n\n\n<p>Il peut comparer les diff\u00e9rences entre les sauvegardes avec CVS (Concurrent Version System), ou subversion (SVN), et \u00e9ventuellement vous en informer par courriel.<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttp:\/\/www.shrubbery.net\/rancid\/\n<\/div><\/figure>\n\n\n\n<p>Pour sauvegarder les configurations, Rancid se connecte sur l\u2019\u00e9quipement r\u00e9seau et copie les configurations sur le serveur.<\/p>\n\n\n\n<p>Ainsi, il n\u2019est pas\/plus n\u00e9cessaire d\u2019activer le SNMP sur l\u2019\u00e9quipement r\u00e9seau.<\/p>\n\n\n\n<p>Rancid n\u2019est pas seulement capable de sauvegarder les configurations de mat\u00e9riel Cisco mais \u00e9galement celles d\u2019un grand nombre d\u2019autres \u00e9quipementiers comme Juniper, Foundry ou Netscreen.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"http:\/\/cv.geniaut.fr\/Paris8\/wikiP8\/webdsi.univ-paris8.fr\/site\/Reseau\/Rancid\/Images\/screen1.png\" alt=\"PIC\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"http:\/\/cv.geniaut.fr\/Paris8\/wikiP8\/webdsi.univ-paris8.fr\/site\/Reseau\/Rancid\/Images\/screen2.png\" alt=\"PIC\"\/><\/figure>\n\n\n\n<h3>2&nbsp;ARCHITECTURE<\/h3>\n\n\n\n<p>Nous utilisons un serveur d\u00e9di\u00e9 pour h\u00e9berger le syst\u00e8me Rancid qui comprend&nbsp;:<\/p>\n\n\n\n<ul><li>le logiciel rancid<\/li><li>un d\u00e9p\u00f4t subversion pour stocker les diff\u00e9rentes versions des configurations des \u00e9l\u00e9ments actifs<\/li><li>un serveur apache pour visualiser les diff\u00e9rentes versions<\/li><\/ul>\n\n\n\n<p>Le serveur rancid est plac\u00e9 dans le r\u00e9seau des serveurs. Par d\u00e9faut, il n\u2019a pas acc\u00e8s au r\u00e9seau des switchs, on lui ajoute donc une deuxi\u00e8me interface d\u00e9di\u00e9e aux connexions avec les mat\u00e9riels r\u00e9seau.<\/p>\n\n\n\n<p>Pour davantage de souplesse est une plus grande efficacit\u00e9, on va permettre au serveur webdsi (serveur web de la DSI) de faire office de reverse proxy pour le serveur rancid.<\/p>\n\n\n\n<p>De cette fa\u00e7on, les informations seront disponibles \u00e0 toutes les personnes autoris\u00e9es via un simple navigateur web.<\/p>\n\n\n\n<p>Enfin, disposant d\u00e9j\u00e0 d\u2019un serveur SVN officiel, on va synchroniser le d\u00e9p\u00f4t rancid sur ce serveur.<\/p>\n\n\n\n<p>Le sch\u00e9ma suivant pr\u00e9sente les diff\u00e9rents \u00e9l\u00e9ments de l\u2019architecture du syst\u00e8me Rancid mise en place \u00e0 l\u2019Universit\u00e9 Paris 8.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"http:\/\/cv.geniaut.fr\/Paris8\/wikiP8\/webdsi.univ-paris8.fr\/site\/Reseau\/Rancid\/Images\/proxy.png\" alt=\"PIC\"\/><\/figure>\n\n\n\n<h4>2.1&nbsp;INFRASTRUCTURE RESEAU<\/h4>\n\n\n\n<p>Le sch\u00e9ma suivant pr\u00e9sente le sch\u00e9ma de l\u2019infrastructure r\u00e9seau mise en place.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"http:\/\/cv.geniaut.fr\/Paris8\/wikiP8\/webdsi.univ-paris8.fr\/site\/Reseau\/Rancid\/Images\/architecture.png\" alt=\"PIC\"\/><\/figure>\n\n\n\n<h3>3&nbsp;INSTALLATION<\/h3>\n\n\n\n<h4>3.1&nbsp;SERVEUR<\/h4>\n\n\n\n<h5>3.1.1&nbsp;SALT<\/h5>\n\n\n\n<p>Nous int\u00e9grons l\u2019installation du serveur rancid dans le syst\u00e8me&nbsp;<strong>salt<\/strong>.&nbsp;<br><strong>:&nbsp;<\/strong>\/src\/salt\/top.sls<strong><\/strong>&#8230;&nbsp;<br><strong><\/strong>&nbsp;&nbsp;\u2019rancid.infra.up8\u2019:&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;\u2212&nbsp;postfix&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;\u2212&nbsp;rancid&nbsp;<br><strong><\/strong>&#8230;<br><strong>:&nbsp;<\/strong>\/src\/salt\/rancid\/init.sls<strong><\/strong>rancid.packages:&nbsp;<br><strong><\/strong>&nbsp;&nbsp;pkg.installed:&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;\u2212&nbsp;pkgs:&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2212&nbsp;rancid&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2212&nbsp;subversion&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2212&nbsp;websvn&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\u2212&nbsp;apache2<br><strong>:&nbsp;<\/strong>\/src\/pillar\/top.sls<strong><\/strong>&#8230;&nbsp;<br><strong><\/strong>&nbsp;\u2019rancid\u2217\u2019:&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;\u2212&nbsp;users.fortier&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;\u2212&nbsp;munin&nbsp;<br><strong><\/strong>&#8230;<\/p>\n\n\n\n<h5>3.1.2&nbsp;RANCID<\/h5>\n\n\n\n<p>Une fois rancid et les d\u00e9pendances de paquets install\u00e9s avec Salt, nous pouvons modifier la configuration de rancid en modifiant le repository CVS de base par un d\u00e9p\u00f4t SVN&nbsp;:&nbsp;<br><strong>:&nbsp;<\/strong>\/etc\/rancid\/rancid.conf<strong><\/strong>RCSSYS=svn;&nbsp;export&nbsp;RCSSYS&nbsp;<br><strong><\/strong>LIST_OF_GROUPS=\u00a0\u00bbdsi\u00a0\u00bb&nbsp;<br><strong><\/strong>#&nbsp;Location&nbsp;of&nbsp;the&nbsp;CVS\/SVN&nbsp;repository.&nbsp;Be&nbsp;careful&nbsp;changing&nbsp;this.&nbsp;<br><strong><\/strong>CVSROOT=$BASEDIR\/SVN;&nbsp;export&nbsp;CVSROOT<\/p>\n\n\n\n<h5>3.1.3&nbsp;REPOSITORY SVN<\/h5>\n\n\n\n<p>Une fois l\u2019utilisateur&nbsp;rancid&nbsp;ajout\u00e9, on cr\u00e9e le repository subversion&nbsp;:<strong><\/strong>#&nbsp;adduser&nbsp;rancid&nbsp;<br><strong><\/strong>#&nbsp;\/usr\/lib\/rancid\/bin\/rancid\u2212cvs&nbsp;<br><strong><\/strong><br><strong><\/strong>Revision&nbsp;1&nbsp;propagee.&nbsp;<br><strong><\/strong>Revision&nbsp;1&nbsp;extraite.&nbsp;<br><strong><\/strong>Mise&nbsp;a&nbsp;jour&nbsp;de&nbsp;\u2019.\u2019&nbsp;:&nbsp;<br><strong><\/strong>A&nbsp;la&nbsp;revision&nbsp;1.&nbsp;<br><strong><\/strong>A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;configs&nbsp;<br><strong><\/strong>Ajout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;configs&nbsp;<br><strong><\/strong><br><strong><\/strong>Revision&nbsp;2&nbsp;propagee.&nbsp;<br><strong><\/strong>A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;router.db&nbsp;<br><strong><\/strong>Ajout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;router.db&nbsp;<br><strong><\/strong>Transmission&nbsp;des&nbsp;donnees&nbsp;.&nbsp;<br><strong><\/strong>Revision&nbsp;3&nbsp;propagee.&nbsp;<br><strong><\/strong>#&nbsp;chown&nbsp;\u2212Rf&nbsp;rancid&nbsp;\/var\/lib\/rancid\/&nbsp;<br><strong><\/strong>#&nbsp;chown&nbsp;\u2212Rf&nbsp;rancid&nbsp;\/var\/log\/rancid\/<\/p>\n\n\n\n<p>Le d\u00e9p\u00f4t est cr\u00e9\u00e9 dans \/var\/lib\/rancid\/SVN (comm indiqu\u00e9 dans le configuration), et la derni\u00e8re copie des fichiers se trouve dans \/var\/lib\/rancid\/dsi.<\/p>\n\n\n\n<h5>3.1.4&nbsp;WEBSVN<\/h5>\n\n\n\n<p>Nous utilisons websvn pour visualiser les documents plac\u00e9s dans le d\u00e9p\u00f4t rancid.<\/p>\n\n\n\n<p>Le paquet websvn est install\u00e9, mais non configur\u00e9.<\/p>\n\n\n\n<p>On peut utiliser la commande&nbsp;:<strong><\/strong>#&nbsp;dpkg\u2212reconfigure&nbsp;websvn<\/p>\n\n\n\n<p>Cela g\u00e9n\u00e8re ou modifie les fichiers contenus dans \/etc\/websvn&nbsp;:&nbsp;<br><strong>:&nbsp;<\/strong>svn_deb_conf.inc<strong><\/strong>&lt;?php&nbsp;<br><strong><\/strong>$config\u2212&gt;parentPath(\u00ab\u00a0\/var\/lib\/rancid\u00a0\u00bb);&nbsp;<br><strong><\/strong>$config\u2212&gt;setEnscriptPath(\u00ab\u00a0\/usr\/bin\u00a0\u00bb);&nbsp;<br><strong><\/strong>$config\u2212&gt;setSedPath(\u00ab\u00a0\/bin\u00a0\u00bb);&nbsp;<br><strong><\/strong>$config\u2212&gt;useEnscript();&nbsp;<br><strong><\/strong>?&gt;<\/p>\n\n\n\n<p>Il faut ensuite ajouter la configuration dans apache&nbsp;:<strong><\/strong>#&nbsp;cd&nbsp;\/etc\/apache2\/conf\u2212enabled&nbsp;<br><strong><\/strong>#&nbsp;ln&nbsp;\u2212s&nbsp;\/etc\/websvn\/svn_deb_conf.inc&nbsp;.<br><strong>:&nbsp;<\/strong>\/etc\/apache2\/sites-enabled\/000-default.conf<strong><\/strong>&lt;VirtualHost&nbsp;\u2217:80&gt;&nbsp;<br><strong><\/strong>&nbsp;&nbsp;ServerName&nbsp;rancid&nbsp;<br><strong><\/strong>&nbsp;&nbsp;ServerAdmin&nbsp;webmaster@localhost&nbsp;<br><strong><\/strong>&nbsp;&nbsp;DocumentRoot&nbsp;\/var\/www\/html&nbsp;<br><strong><\/strong>&nbsp;&nbsp;ErrorLog&nbsp;${APACHE_LOG_DIR}\/error.log&nbsp;<br><strong><\/strong>&nbsp;&nbsp;CustomLog&nbsp;${APACHE_LOG_DIR}\/access.log&nbsp;combined&nbsp;<br><strong><\/strong><br><strong><\/strong>&nbsp;&nbsp;Alias&nbsp;\/reseau&nbsp;\/usr\/share\/websvn&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&lt;Directory&nbsp;\/usr\/share\/websvn&gt;&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;DirectoryIndex&nbsp;index.php&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;Options&nbsp;FollowSymLinks&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&lt;\/Directory&gt;&nbsp;<br><strong><\/strong><br><strong><\/strong>&lt;\/VirtualHost&gt;<\/p>\n\n\n\n<p>Enfin, il faut autoriser l\u2019utilisateur www-data (apache) \u00e0 acc\u00e9der aux fichiers du d\u00e9p\u00f4t rancid&nbsp;:<strong><\/strong>#&nbsp;usermod&nbsp;www\u2212data&nbsp;\u2212G&nbsp;rancid&nbsp;<br><strong><\/strong>#&nbsp;\/etc\/init.d\/apache2&nbsp;reload<\/p>\n\n\n\n<p>A ce stade, on peut se connecter sur l\u2019interface web du serveur rancid&nbsp;sans&nbsp;authentification.<\/p>\n\n\n\n<p>Les pages web de websvn se trouve dans \/usr\/share\/websvn\/<\/p>\n\n\n\n<p>De base, 3 templates sont pr\u00e9sents et chaque utilisateur peut choisir le sien.<\/p>\n\n\n\n<p>Nous decidons de n\u2019utiliser qu\u2019un seul template (calm) en d\u00e9sactivant les autres.<\/p>\n\n\n\n<p>Les fichiers modifi\u00e9s se trouvent dans \/usr\/share\/websvn\/templates\/calm&nbsp;:<\/p>\n\n\n\n<ul><li>header.tmpl<\/li><li>blame.tmpl<\/li><\/ul>\n\n\n\n<p>Nous modifions \u00e9galement le fichier \/etc\/websvn\/config.php pour n\u2019afficher que les \u00e9l\u00e9ments n\u00e9cessaires (on d\u00e9gage les RSS, les autres d\u00e9p\u00f4ts potentiels&#8230;)<\/p>\n\n\n\n<h5>3.1.5&nbsp;SECURISATION APACHE<\/h5>\n\n\n\n<p>On utilise le module authnz_ldap pour s\u2019authentifier sur l\u2019annuaire LDAP de l\u2019Universit\u00e9.<\/p>\n\n\n\n<p>On active ce module via la commande&nbsp;:<strong><\/strong>#&nbsp;a2enmod&nbsp;&nbsp;authnz_ldap<\/p>\n\n\n\n<p>Seuls quelques utilisateurs ont droit d\u2019acc\u00e8s aux configuration, et on modifie la configuration d\u2019Apache en cons\u00e9quence&nbsp;:&nbsp;<br><strong>:&nbsp;<\/strong>\/etc\/apache2\/sites-enabled\/000-default.conf<strong><\/strong>&lt;VirtualHost&nbsp;\u2217:80&gt;&nbsp;<br><strong><\/strong>&nbsp;&nbsp;ServerName&nbsp;rancid&nbsp;<br><strong><\/strong>&nbsp;&nbsp;ServerAdmin&nbsp;webmaster@localhost&nbsp;<br><strong><\/strong>&nbsp;&nbsp;DocumentRoot&nbsp;\/var\/www\/html&nbsp;<br><strong><\/strong>&nbsp;&nbsp;ErrorLog&nbsp;${APACHE_LOG_DIR}\/error.log&nbsp;<br><strong><\/strong>&nbsp;&nbsp;CustomLog&nbsp;${APACHE_LOG_DIR}\/access.log&nbsp;combined&nbsp;<br><strong><\/strong><br><strong><\/strong>&nbsp;&nbsp;Alias&nbsp;\/reseau&nbsp;\/usr\/share\/websvn&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&lt;Directory&nbsp;\/usr\/share\/websvn&gt;&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;DirectoryIndex&nbsp;index.php&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;Options&nbsp;FollowSymLinks&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Autortisation&nbsp;LDAP&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;AuthType&nbsp;Basic&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;AuthName&nbsp;\u00ab\u00a0Depots&nbsp;de&nbsp;la&nbsp;DSI\u00a0\u00bb&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;AuthBasicProvider&nbsp;ldap&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;AuthLDAPURL&nbsp;\u00ab\u00a0ldap:\/\/192.168.0.5\/ou=people,dc=univ\u2212paris8,dc=fr?uid?sub?(objectClass=\u2217)\u00a0\u00bb&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;AuthLDAPBindDN&nbsp;\u00ab\u00a0cn=Manager,dc=univ\u2212paris8,dc=fr\u00a0\u00bb&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;AuthLDAPBindPassword&nbsp;XXXXXXX&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;Require&nbsp;user&nbsp;hmr&nbsp;dcamerol&nbsp;ggeniaut&nbsp;obia&nbsp;fprovin&nbsp;ttian\u2212sio\u2212po&nbsp;tchambon&nbsp;lotfi&nbsp;mfortier&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&lt;\/Directory&gt;&nbsp;<br><strong><\/strong><br><strong><\/strong>&lt;\/VirtualHost&gt;<\/p>\n\n\n\n<h4>3.2&nbsp;CONFIGURATION DES ELEMENTS ACTIFS<\/h4>\n\n\n\n<p>Une fois rancid et websvn configur\u00e9s, il faut modifier plusieurs fichiers pour activer l\u2019acc\u00e8s de l\u2019outil aux switchs&nbsp;:<\/p>\n\n\n\n<ol><li>\/etc\/hosts&nbsp;: pour d\u00e9clarer le mapping ip&nbsp;\u2212\u2192&nbsp;nom (simuler le DNS)<\/li><li>\/var\/lib\/rancid\/dsi\/routed.db&nbsp;: contient la liste des \u00e9l\u00e9ments actifs<\/li><li>\/home\/rancid\/.cloginrc&nbsp;: contient les acc\u00e8s (login\/mdp) aux \u00e9l\u00e9ments actifs<\/li><\/ol>\n\n\n\n<h5>3.2.1&nbsp;DECLARATION<\/h5>\n\n\n\n<p>On d\u00e9clare les \u00e9l\u00e9ments dans \/etc\/hosts&nbsp;:&nbsp;<br><strong>:&nbsp;<\/strong>\/etc\/hosts<strong><\/strong>127.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;localhost&nbsp;<br><strong><\/strong><br><strong><\/strong>192.168.49.254CC65P8&nbsp;<br><strong><\/strong>192.168.49.31&nbsp;&nbsp;CC29AB2&nbsp;<br><strong><\/strong>192.168.49.37&nbsp;&nbsp;CC29AC2&nbsp;<br><strong><\/strong>192.168.49.61&nbsp;&nbsp;CC29AF2&nbsp;<br><strong><\/strong>&#8230;<\/p>\n\n\n\n<p>On d\u00e9clare les \u00e9l\u00e9ments \u00e0 rancid&nbsp;:&nbsp;<br><strong>:&nbsp;<\/strong>\/var\/lib\/rancid\/dsi\/router.db<strong><\/strong>CC65P8:cisco:up&nbsp;<br><strong><\/strong>CC29AB2:cisco:up&nbsp;<br><strong><\/strong>CC29AC2:cisco:up&nbsp;<br><strong><\/strong>CC29AF2:cisco:up&nbsp;<br><strong><\/strong>&#8230;<\/p>\n\n\n\n<h5>3.2.2&nbsp;ACCES<\/h5>\n\n\n\n<p>La configuration des acc\u00e8s se fait dans fichier .cloginrc le homedir de l\u2019utilisateur rancid&nbsp;:<strong><\/strong>$&nbsp;mkdir&nbsp;.cloginrc&nbsp;<br><strong><\/strong>$&nbsp;chmod&nbsp;600&nbsp;~\/.cloginrc<br><strong>:&nbsp;<\/strong>\/home\/rancid\/.cloginrc<strong><\/strong>add&nbsp;user&nbsp;cc65p8&nbsp;{user}&nbsp;<br><strong><\/strong>add&nbsp;method&nbsp;cc65p8&nbsp;{ssh}&nbsp;<br><strong><\/strong>add&nbsp;password&nbsp;cc65p8&nbsp;{XXXX}&nbsp;{YYYY}&nbsp;<br><strong><\/strong><br><strong><\/strong>add&nbsp;password&nbsp;cc29ab2&nbsp;{XXXX}&nbsp;{YYYY}&nbsp;<br><strong><\/strong><br><strong><\/strong>add&nbsp;user&nbsp;cc29ac2&nbsp;{user}&nbsp;<br><strong><\/strong>add&nbsp;password&nbsp;cc29ac2&nbsp;{XXXX}&nbsp;{YYYY}<\/p>\n\n\n\n<p>Dans cet exemple, 3 \u00e9l\u00e9ments sont configur\u00e9s&nbsp;:<\/p>\n\n\n\n<ol><li>cc65p8&nbsp;: acc\u00e8s via ssh avec l\u2019utilisateur&nbsp;user&nbsp;et le mot de passe XXXX. YYYY repr\u00e9sente le mot de passe enable<\/li><li>cc29ab2&nbsp;: acc\u00e8s via telnet avec le mot de passe XXXX, et le mot de passe enable YYYY<\/li><li>cc29ac2&nbsp;: acc\u00e8s via telnet avec l\u2019utilisateur&nbsp;user&nbsp;et le mot de passe XXXX. YYYY repr\u00e9sente le mot de passe enable<\/li><\/ol>\n\n\n\n<h4>3.3&nbsp;MIROIR<\/h4>\n\n\n\n<p>La DSI dispose d\u00e9j\u00e0 d\u2019un serveur subversion.<\/p>\n\n\n\n<p>L\u2019id\u00e9e est de cr\u00e9er un miroir du d\u00e9p\u00f4t g\u00e9r\u00e9 par rancid sur le serveur SVN officiel.<\/p>\n\n\n\n<p>Pour r\u00e9aliser cela, plusieurs op\u00e9rations sont n\u00e9cessaires sur le SVN officiel (le miroir)&nbsp;:<\/p>\n\n\n\n<ol><li>on cr\u00e9e un utilisateur rancid qui va se connecter sur le serveur du m\u00eame nom, via une cl\u00e9 SSH.<\/li><li>on cr\u00e9e ensuite le d\u00e9p\u00f4t qui servira de miroir (qui appartient \u00e0 l\u2019utilisateur rancid)<\/li><li>on r\u00e8gle les droits d\u2019acc\u00e8s aux utilisateurs via apache<\/li><\/ol>\n\n\n\n<h5>3.3.1&nbsp;ETAPE 1&nbsp;: UTILISATEUR RANCID<\/h5>\n\n\n\n<p>Sur le SVN officiel, on cr\u00e9e l\u2019utilisateur rancid ainsi que ses cl\u00e9s ssh de connexion&nbsp;:<strong><\/strong>#&nbsp;adduser&nbsp;rancid&nbsp;<br><strong><\/strong>Ajout&nbsp;de&nbsp;l\u2019utilisateur&nbsp;\u2019rancid&nbsp;&#8230;&nbsp;<br><strong><\/strong>Ajout&nbsp;du&nbsp;nouveau&nbsp;groupe&nbsp;\u2019rancid\u2019&nbsp;(1002)&nbsp;&#8230;&nbsp;<br><strong><\/strong>Ajout&nbsp;du&nbsp;nouvel&nbsp;utilisateur&nbsp;\u2019rancid\u2019&nbsp;(1002)&nbsp;avec&nbsp;le&nbsp;groupe&nbsp;\u2019rancid\u2019&nbsp;&#8230;&nbsp;<br><strong><\/strong>Creation&nbsp;du&nbsp;repertoire&nbsp;personnel&nbsp;\u2019\/home\/rancid\u2019&#8230;&nbsp;<br><strong><\/strong>Copie&nbsp;des&nbsp;fichiers&nbsp;depuis&nbsp;\u2019\/etc\/skel\u2019&#8230;&nbsp;<br><strong><\/strong>Entrez&nbsp;le&nbsp;nouveau&nbsp;mot&nbsp;de&nbsp;passe&nbsp;UNIX&nbsp;:&nbsp;<br><strong><\/strong>Retapez&nbsp;le&nbsp;nouveau&nbsp;mot&nbsp;de&nbsp;passe&nbsp;UNIX&nbsp;:&nbsp;<br><strong><\/strong>passwd&nbsp;:&nbsp;le&nbsp;mot&nbsp;de&nbsp;passe&nbsp;a&nbsp;ete&nbsp;mis&nbsp;a&nbsp;jour&nbsp;avec&nbsp;succes&nbsp;<br><strong><\/strong>Modification&nbsp;des&nbsp;informations&nbsp;relatives&nbsp;a&nbsp;l\u2019utilisateur&nbsp;rancid&nbsp;<br><strong><\/strong>Entrez&nbsp;la&nbsp;nouvelle&nbsp;valeur&nbsp;ou&nbsp;\u2019Entree\u2019&nbsp;pour&nbsp;conserver&nbsp;la&nbsp;valeur&nbsp;proposee&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nom&nbsp;complet&nbsp;[]:&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N&nbsp;de&nbsp;bureau&nbsp;[]:&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Telephone&nbsp;professionnel&nbsp;[]:&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Telephone&nbsp;personnel&nbsp;[]:&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Autre&nbsp;[]:&nbsp;<br><strong><\/strong>Cette&nbsp;information&nbsp;est\u2212elle&nbsp;correcte&nbsp;?&nbsp;[O\/n]O&nbsp;<br><strong><\/strong>#&nbsp;su&nbsp;rancid&nbsp;<br><strong><\/strong>$&nbsp;ssh\u2212keygen&nbsp;<br><strong><\/strong>Generating&nbsp;public\/private&nbsp;rsa&nbsp;key&nbsp;pair.&nbsp;<br><strong><\/strong>Enter&nbsp;file&nbsp;in&nbsp;which&nbsp;to&nbsp;save&nbsp;the&nbsp;key&nbsp;(\/home\/rancid\/.ssh\/id_rsa):&nbsp;<br><strong><\/strong>Created&nbsp;directory&nbsp;\u2019\/home\/rancid\/.ssh\u2019.&nbsp;<br><strong><\/strong>Enter&nbsp;passphrase&nbsp;(empty&nbsp;for&nbsp;no&nbsp;passphrase):&nbsp;<br><strong><\/strong>Enter&nbsp;same&nbsp;passphrase&nbsp;again:&nbsp;<br><strong><\/strong>Your&nbsp;identification&nbsp;has&nbsp;been&nbsp;saved&nbsp;in&nbsp;\/home\/rancid\/.ssh\/id_rsa.&nbsp;<br><strong><\/strong>Your&nbsp;public&nbsp;key&nbsp;has&nbsp;been&nbsp;saved&nbsp;in&nbsp;\/home\/rancid\/.ssh\/id_rsa.pub.&nbsp;<br><strong><\/strong>The&nbsp;key&nbsp;fingerprint&nbsp;is:&nbsp;<br><strong><\/strong>a1:eb:88:42:6a:5c:12:38:fc:20:a5:fc:09:20:85:db&nbsp;rancid@subversion&nbsp;<br><strong><\/strong>The&nbsp;key\u2019s&nbsp;randomart&nbsp;image&nbsp;is:&nbsp;<br><strong><\/strong>+\u2212\u2212\u2212[RSA&nbsp;2048]\u2212\u2212\u2212\u2212+&nbsp;<br><strong><\/strong>|&nbsp;o.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;<br><strong><\/strong>|+&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;<br><strong><\/strong>|\u2217=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;<br><strong><\/strong>|\u2217\u2217E&nbsp;&nbsp;&nbsp;&nbsp;.&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;<br><strong><\/strong>|..\u2217&nbsp;.&nbsp;.&nbsp;S&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;<br><strong><\/strong>|&nbsp;o&nbsp;=&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;<br><strong><\/strong>|+&nbsp;o&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;<br><strong><\/strong>|oo&nbsp;.&nbsp;o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;<br><strong><\/strong>|&#8230;&nbsp;.&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;<br><strong><\/strong>+\u2212\u2212\u2212\u2212\u2212\u2212\u2212\u2212\u2212\u2212\u2212\u2212\u2212\u2212\u2212\u2212\u2212+&nbsp;<br><strong><\/strong>$&nbsp;ssh\u2212copy\u2212id&nbsp;\u2212i&nbsp;~\/.ssh\/id_rsa.pub&nbsp;rancid@rancid.infra.up8&nbsp;<br><strong><\/strong>The&nbsp;authenticity&nbsp;of&nbsp;host&nbsp;\u2019rancid.infra.up8&nbsp;(192.168.0.215)\u2019&nbsp;can\u2019t&nbsp;be&nbsp;established.&nbsp;<br><strong><\/strong>ECDSA&nbsp;key&nbsp;fingerprint&nbsp;is&nbsp;c4:c0:11:79:5c:cb:3c:4b:da:2b:89:39:f9:bd:5b:5d.&nbsp;<br><strong><\/strong>Are&nbsp;you&nbsp;sure&nbsp;you&nbsp;want&nbsp;to&nbsp;continue&nbsp;connecting&nbsp;(yes\/no)?&nbsp;yes&nbsp;<br><strong><\/strong>\/usr\/bin\/ssh\u2212copy\u2212id:&nbsp;INFO:&nbsp;attempting&nbsp;to&nbsp;log&nbsp;in&nbsp;with&nbsp;the&nbsp;new&nbsp;key(s),&nbsp;to&nbsp;filter&nbsp;out&nbsp;any&nbsp;<br><strong><\/strong>\/usr\/bin\/ssh\u2212copy\u2212id:&nbsp;INFO:&nbsp;1&nbsp;key(s)&nbsp;remain&nbsp;to&nbsp;be&nbsp;installed&nbsp;\u2212\u2212&nbsp;<br><strong><\/strong>rancid@rancid.infra.up8\u2019s&nbsp;password:&nbsp;<br><strong><\/strong><br><strong><\/strong>Number&nbsp;of&nbsp;key(s)&nbsp;added:&nbsp;1&nbsp;<br><strong><\/strong><br><strong><\/strong>Now&nbsp;try&nbsp;logging&nbsp;into&nbsp;the&nbsp;machine,&nbsp;with:&nbsp;&nbsp;&nbsp;\u00ab\u00a0ssh&nbsp;\u2019rancid@rancid.infra.up8\u2019\u00a0\u00bb&nbsp;<br><strong><\/strong>and&nbsp;check&nbsp;to&nbsp;make&nbsp;sure&nbsp;that&nbsp;only&nbsp;the&nbsp;key(s)&nbsp;you&nbsp;wanted&nbsp;were&nbsp;added.<\/p>\n\n\n\n<p>A ce stade, l\u2019utilisateur rancid peut se connecter sur le serveur rancid.<\/p>\n\n\n\n<p>Pour plus de s\u00e9curit\u00e9, nous allons restreindre l\u2019acc\u00e8s sur le d\u00e9p\u00f4t rancid \u00e0 la seule commande dont l\u2019officiel ait besoin. La commande en question est \u2019svnserve -t\u2019, nous allons utiliser les possibilit\u00e9s de SSH pour cela en modifiant le fichier&nbsp;:&nbsp;<br><strong>:&nbsp;<\/strong>\/home\/rancid\/.ssh\/authorized_keys<strong><\/strong>command=\u00a0\u00bbsvnserve&nbsp;\u2212t\u00a0\u00bb&nbsp;ssh\u2212rsa&nbsp;AAAAB3NzaC1yc2EAAAADAQABAAABAQCiB\\&nbsp;<br><strong><\/strong>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXk0HnfJsW73&nbsp;rancid@subversion<\/p>\n\n\n\n<p>Avec cette m\u00e9thode, \u2019svnserve -t\u2019 sera syst\u00e9matiquement utilis\u00e9e lors d\u2019une connexion avec la cl\u00e9 de l\u2019utilisateur rancid sur le serveur officiel.<\/p>\n\n\n\n<h5>3.3.2&nbsp;ETAPE 2&nbsp;: CREATION DU DEPOT<\/h5>\n\n\n\n<p>Sur le serveur officiel, on cr\u00e9e le d\u00e9p\u00f4t&nbsp;:<strong><\/strong>#&nbsp;svnadmin&nbsp;create&nbsp;\/home\/svn\/Rancid<\/p>\n\n\n\n<p>Certaines op\u00e9ration sur les propri\u00e9t\u00e9s des r\u00e9visions seront chang\u00e9es lors de la synchronisation, il peut donc \u00eatre bienvenu de restreindre ces op\u00e9rations sur le d\u00e9p\u00f4t.<\/p>\n\n\n\n<p>Pour ce faire, on cr\u00e9e le fichier&nbsp;:&nbsp;<br><strong>:&nbsp;<\/strong>\/home\/svn\/Rancid\/hooks\/pre-revprop-change<strong><\/strong>#!\/bin\/sh&nbsp;<br><strong><\/strong>USER=\u00a0\u00bb$3&Prime;&nbsp;<br><strong><\/strong><br><strong><\/strong>if&nbsp;[&nbsp;\u00ab\u00a0$USER\u00a0\u00bb&nbsp;=&nbsp;\u00ab\u00a0rancid\u00a0\u00bb&nbsp;];&nbsp;then&nbsp;exit&nbsp;0;&nbsp;fi&nbsp;<br><strong><\/strong><br><strong><\/strong>echo&nbsp;\u00ab\u00a0Only&nbsp;the&nbsp;rancid&nbsp;user&nbsp;can&nbsp;change&nbsp;revprops\u00a0\u00bb&nbsp;&gt;&amp;2&nbsp;<br><strong><\/strong>exit&nbsp;1&nbsp;<br><strong><\/strong>EOF<\/p>\n\n\n\n<p>Sur le serveur officiel, on place les droits d\u2019acc\u00e8s, on initialise le d\u00e9p\u00f4t et on synchronise&nbsp;:<strong><\/strong>#&nbsp;chmod&nbsp;+x&nbsp;\/home\/svn\/Rancid\/hooks\/pre\u2212revprop\u2212change&nbsp;<br><strong><\/strong>#&nbsp;chown&nbsp;\u2212Rf&nbsp;rancid&nbsp;\/home\/svn\/Rancid&nbsp;<br><strong><\/strong>#&nbsp;su&nbsp;rancid&nbsp;<br><strong><\/strong>$&nbsp;svnsync&nbsp;init&nbsp;\u2212\u2212username&nbsp;rancid&nbsp;file:\/\/\/\/home\/svn\/Rancid&nbsp;\\&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;svn+ssh:\/\/rancid@rancid.infra.up8\/var\/lib\/rancid\/SVN&nbsp;<br><strong><\/strong>Proprietes&nbsp;copiees&nbsp;pour&nbsp;la&nbsp;revision&nbsp;0.&nbsp;<br><strong><\/strong>$&nbsp;svnsync&nbsp;sync&nbsp;\u2212\u2212username&nbsp;rancid&nbsp;file:\/\/\/home\/svn\/Rancid&nbsp;<br><strong><\/strong>Revision&nbsp;1&nbsp;propagee.&nbsp;<br><strong><\/strong>Proprietes&nbsp;copiees&nbsp;pour&nbsp;la&nbsp;revision&nbsp;1.&nbsp;<br><strong><\/strong>Revision&nbsp;2&nbsp;propagee.&nbsp;<br><strong><\/strong>Proprietes&nbsp;copiees&nbsp;pour&nbsp;la&nbsp;revision&nbsp;2.&nbsp;<br><strong><\/strong>Transmission&nbsp;des&nbsp;donnees&nbsp;.&nbsp;<br><strong><\/strong>Revision&nbsp;3&nbsp;propagee.&nbsp;<br><strong><\/strong>$<\/p>\n\n\n\n<p>Il n\u2019y a plus qu\u2019\u00e0 placer le crontab sur le serveur officiel&nbsp;:&nbsp;<br><strong>:&nbsp;<\/strong>\/etc\/crontab<strong><\/strong>#&nbsp;Synchronisation&nbsp;RANCID&nbsp;<br><strong><\/strong>45&nbsp;\u2217\/3&nbsp;\u2217&nbsp;\u2217&nbsp;\u2217&nbsp;&nbsp;&nbsp;&nbsp;rancid&nbsp;svnsync&nbsp;sync&nbsp;\u2212\u2212username&nbsp;rancid&nbsp;file:\/\/\/home\/svn\/Rancid<\/p>\n\n\n\n<h5>3.3.3&nbsp;ETAPE 3&nbsp;: ACCES APACHE<\/h5>\n\n\n\n<p>Sur le serveur d\u00e9p\u00f4t officiel, apache g\u00e8re les droits d\u2019acc\u00e8s aux d\u00e9p\u00f4ts.<\/p>\n\n\n\n<p>Pour le nouveau d\u00e9p\u00f4t Rancid cr\u00e9\u00e9, il faut&nbsp;:<\/p>\n\n\n\n<ol><li>autoriser apache \u00e0 acc\u00e8der au d\u00e9p\u00f4t (poss\u00e9d\u00e9 par l\u2019utilisateur rancid)&nbsp;:&nbsp;<br>usermod&nbsp;www-data&nbsp;-G&nbsp;rancid<\/li><li>modifier les droits d\u2019acc\u00e8s<\/li><\/ol>\n\n\n\n<p><strong>:&nbsp;<\/strong>\/etc\/apache2\/dav_svn.authz<strong><\/strong>[Rancid:\/]&nbsp;<br><strong><\/strong>mfortier&nbsp;=&nbsp;r&nbsp;<br><strong><\/strong>hmr&nbsp;=&nbsp;r&nbsp;<br><strong><\/strong>dcamerol&nbsp;=&nbsp;r&nbsp;<br><strong><\/strong>ggeniaut&nbsp;=&nbsp;r&nbsp;<br><strong><\/strong>obia&nbsp;=&nbsp;r&nbsp;<br><strong><\/strong>fprovin&nbsp;=&nbsp;r&nbsp;<br><strong><\/strong>ttian\u2212sio\u2212po&nbsp;=&nbsp;r&nbsp;<br><strong><\/strong>tchambon&nbsp;=&nbsp;r&nbsp;<br><strong><\/strong>lotfi&nbsp;=&nbsp;r&nbsp;<br><strong><\/strong>\u2217&nbsp;=<\/p>\n\n\n\n<p>Une fois apache relanc\u00e9, l\u2019utilisateur connect\u00e9 peut visualiser les derni\u00e8res configurations des \u00e9l\u00e9ments r\u00e9seau.<\/p>\n\n\n\n<h3>4&nbsp;UTILISATION<\/h3>\n\n\n\n<h4>4.1&nbsp;RECUPERATION DES CONFIGURATIONS<\/h4>\n\n\n\n<p>L\u2019utilisateur rancid peut lancer la r\u00e9cup\u00e9ration des configurations des \u00e9l\u00e9ments actifs via la commande&nbsp;:<strong><\/strong>$&nbsp;\/usr\/lib\/rancid\/bin\/rancid\u2212run<\/p>\n\n\n\n<p>Dans la pratique, on automatise cette r\u00e9cup\u00e9ration toutes les 3h via crontab&nbsp;:&nbsp;<br><strong>:&nbsp;<\/strong>\/etc\/crontab<strong><\/strong>&#8230;&nbsp;<br><strong><\/strong>#&nbsp;RANCID&nbsp;<br><strong><\/strong>0&nbsp;\u2217\/3&nbsp;&nbsp;\u2217&nbsp;\u2217&nbsp;\u2217&nbsp;&nbsp;rancid\/usr\/lib\/rancid\/bin\/rancid\u2212run<\/p>\n\n\n\n<h4>4.2&nbsp;EXECUTIONS DE SCRIPTS<\/h4>\n\n\n\n<p>Rancid ne permet pas seulement de r\u00e9aliser des sauvegardes, mais \u00e9galement d\u2019envoyer des commandes aux mat\u00e9riels r\u00e9seau, via&nbsp;<strong>clogin<\/strong>.<\/p>\n\n\n\n<p>La suite du chapitre pr\u00e9sente quelques exemples.<\/p>\n\n\n\n<h5>4.2.1&nbsp;BLOCAGE D\u2019ADRESSES MAC<\/h5>\n\n\n\n<p>Exemple de script de blocage d\u2019une adresse MAC sur l\u2019ensemble des switchs&nbsp;:&nbsp;<br><strong>:&nbsp;<\/strong>block_mac.sh<strong><\/strong>#!\/bin\/bash&nbsp;<br><strong><\/strong><br><strong><\/strong>#&nbsp;Lecture&nbsp;de&nbsp;chaque&nbsp;switch&nbsp;<br><strong><\/strong>for&nbsp;switch&nbsp;in&nbsp;$(cat&nbsp;switchs.txt);&nbsp;do&nbsp;<br><strong><\/strong>&nbsp;&nbsp;echo&nbsp;\u00ab\u00a0#############################################\u00a0\u00bb&nbsp;<br><strong><\/strong>&nbsp;&nbsp;echo&nbsp;\u00ab\u00a0###&nbsp;$switch\u00a0\u00bb&nbsp;<br><strong><\/strong>&nbsp;&nbsp;cmd=\u00a0\u00bbconf&nbsp;t;no&nbsp;mac&nbsp;access\u2212list&nbsp;extended&nbsp;BLOCK\u2212PC;mac&nbsp;access\u2212list&nbsp;extended&nbsp;BLOCK\u2212PC\u00a0\u00bb&nbsp;<br><strong><\/strong><br><strong><\/strong>&nbsp;&nbsp;#&nbsp;Lecture&nbsp;du&nbsp;fichier&nbsp;de&nbsp;mac&nbsp;interdite&nbsp;<br><strong><\/strong>&nbsp;&nbsp;for&nbsp;mac&nbsp;in&nbsp;$(cat&nbsp;mac_interdite.txt);&nbsp;do&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;cmd=\u00a0\u00bb$cmd&nbsp;;&nbsp;deny&nbsp;&nbsp;&nbsp;host&nbsp;$mac&nbsp;any\u00a0\u00bb&nbsp;<br><strong><\/strong>&nbsp;&nbsp;done&nbsp;<br><strong><\/strong>&nbsp;&nbsp;cmd=\u00a0\u00bb$cmd&nbsp;;&nbsp;permit&nbsp;any&nbsp;any;exit;do&nbsp;wr&nbsp;mem;exit\u00a0\u00bb&nbsp;<br><strong><\/strong>&nbsp;&nbsp;\/usr\/lib\/rancid\/bin\/clogin&nbsp;\u2212t&nbsp;90&nbsp;\u2212c\u00a0\u00bb$cmd\u00a0\u00bb&nbsp;$switch&nbsp;<br><strong><\/strong>done<br><strong>:&nbsp;<\/strong>mac_interdite.txt<strong><\/strong>0019.b954.1b01&nbsp;<br><strong><\/strong>24b6.fd16.6410&nbsp;<br><strong><\/strong>c82a.1454.8235<br><strong>:&nbsp;<\/strong>switchs.txt<strong><\/strong>sw\u2212a100&nbsp;<br><strong><\/strong>sw\u2212a200&nbsp;<br><strong><\/strong>sw\u2212a300&nbsp;<br><strong><\/strong>sw\u2212a400&nbsp;<br><strong><\/strong>sw\u2212b100<\/p>\n\n\n\n<h5>4.2.2&nbsp;LECTURE DES DESCRIPTIONS<\/h5>\n\n\n\n<p><strong>:&nbsp;<\/strong>getDescription.sh<strong><\/strong>#!\/bin\/bash&nbsp;<br><strong><\/strong><br><strong><\/strong>function&nbsp;usage(){&nbsp;<br><strong><\/strong>&nbsp;&nbsp;echo&nbsp;\u00ab\u00a0USAGE&nbsp;:&nbsp;getDescription&nbsp;switch\u00a0\u00bb;&nbsp;<br><strong><\/strong>}&nbsp;<br><strong><\/strong><br><strong><\/strong>if&nbsp;[&nbsp;$#&nbsp;\u2212ne&nbsp;1&nbsp;];&nbsp;then&nbsp;<br><strong><\/strong>&nbsp;&nbsp;usage&nbsp;<br><strong><\/strong>&nbsp;&nbsp;exit&nbsp;0&nbsp;<br><strong><\/strong>fi&nbsp;<br><strong><\/strong><br><strong><\/strong>\/usr\/lib\/rancid\/bin\/clogin&nbsp;\u2212t&nbsp;90&nbsp;\u2212c\u00a0\u00bbsh&nbsp;ru&nbsp;brief&nbsp;|&nbsp;begin&nbsp;interface\u00a0\u00bb&nbsp;$1<\/p>\n\n\n\n<h5>4.2.3&nbsp;RECHERCHE D\u2019UNE ADRESSE MAC<\/h5>\n\n\n\n<p><strong>:&nbsp;<\/strong>search_mac.sh<strong><\/strong>#!\/bin\/bash&nbsp;<br><strong><\/strong><br><strong><\/strong>#&nbsp;Recherche&nbsp;d\u2019une&nbsp;adresse&nbsp;mac&nbsp;<br><strong><\/strong><br><strong><\/strong>if&nbsp;[&nbsp;\u00ab\u00a0$1\u00a0\u00bb&nbsp;==&nbsp;\u00ab\u00a0\u00a0\u00bb&nbsp;];&nbsp;then&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;\u00ab\u00a0Entrez&nbsp;l\u2019adresse&nbsp;MAC&nbsp;au&nbsp;format&nbsp;cisco&nbsp;\u2217\u2217\u2217\u2217.\u2217\u2217\u2217\u2217.\u2217\u2217\u2217\u2217\u00a0\u00bb&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit&nbsp;0&nbsp;<br><strong><\/strong>fi&nbsp;<br><strong><\/strong>#&nbsp;Lecture&nbsp;de&nbsp;chaque&nbsp;switch&nbsp;<br><strong><\/strong>for&nbsp;switch&nbsp;in&nbsp;$(cat&nbsp;switchs.txt);&nbsp;do&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;\u00ab\u00a0#############################################\u00a0\u00bb&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;\u00ab\u00a0###&nbsp;$switch\u00a0\u00bb&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cmd=\u00a0\u00bbsh&nbsp;mac&nbsp;address\u2212table&nbsp;|&nbsp;include&nbsp;$1&Prime;&nbsp;<br><strong><\/strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/usr\/local\/metrologie\/rancid\/bin\/clogin&nbsp;\u2212t&nbsp;90&nbsp;\u2212c\u00a0\u00bb$cmd\u00a0\u00bb&nbsp;$switch&nbsp;<br><strong><\/strong>done<br><strong>:&nbsp;<\/strong>switchs.txt<strong><\/strong>sw\u2212a100&nbsp;<br><strong><\/strong>sw\u2212a200&nbsp;<br><strong><\/strong>sw\u2212a300&nbsp;<br><strong><\/strong>sw\u2212a400&nbsp;<br><strong><\/strong>sw\u2212b100\n\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cet article\/documentation a \u00e9t\u00e9 faite avec un coll\u00e8gue de l&rsquo;Universit\u00e9 Paris 8. Ce coll\u00e8gue disparu aujourd&rsquo;hui, je d\u00e9sirais publier cette&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.nosland.com\/index.php?rest_route=\/wp\/v2\/posts\/87"}],"collection":[{"href":"http:\/\/blog.nosland.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.nosland.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.nosland.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.nosland.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=87"}],"version-history":[{"count":1,"href":"http:\/\/blog.nosland.com\/index.php?rest_route=\/wp\/v2\/posts\/87\/revisions"}],"predecessor-version":[{"id":88,"href":"http:\/\/blog.nosland.com\/index.php?rest_route=\/wp\/v2\/posts\/87\/revisions\/88"}],"wp:attachment":[{"href":"http:\/\/blog.nosland.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=87"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.nosland.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=87"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.nosland.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=87"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}