Agenda: rancid-exercise-vFR.txt

File rancid-exercise-vFR.txt, 17.5 KB (added by carmas, 6 years ago)
Line 
1Gestion et surveillance de réseau
2
3Utilisation de RANCID
4============
5
6Notes :
7------
8* Les commandes précédées de "$" signifient que vous devez exécuter
9  la commande en tant qu'utilisateur général - et non en tant
10  qu'utilisateur root.
11* Les commandes précédées de "#" signifient que vous devez travailler
12  en tant qu'utilisateur root.
13* Les commandes comportant des lignes de commande plus spécifiques
14  (par exemple "rtrX" ou "mysql>") signifient que vous exécutez
15  des commandes sur des équipements à distance, ou dans un autre
16  programme.
17
18Exercices
19---------
20
211. Connectez-vous à votre PC en utilisant ssh
22
232. Devenez utilisateur root et installez Subversion, le systÚme
24   de versionnage.
25
26   En plus de Subversion, on installera telnet et le client mail mutt.
27
28   Ces deux paquetages doivent déjà être installés par les labos
29   précédents. Sinon, pas de problÚme - la command apt-get ne les
30   réinstallera pas.
31
32    $ sudo -s
33    # apt-get install mutt telnet subversion
34
353. Installez l'application Rancid proprement dite
36
37    # apt-get install rancid
38
39    - Un message d'avertissement "Really continue?"
40      (voulez-vous vraiment continuer) s'affichera. Sélectionnez
41      <OK> puis ENTREE pour continuer.
42
43    - Un second avertissement apparaîtra pour vous recommander
44      de faire une sauvegarde de vos données Rancid. Nous n'avins
45      pas de données, donc sélectionnez <YES> et ENTREE pour
46      continuer.
47
484. Créez un alias pour l'utilisateur rancid dans le fichier /etc/aliases
49
50    # editor /etc/aliases
51       
52    rancid-all:     sysadm
53    rancid-admin-all:   sysadm
54
55    Enregistrez le fichier, puis exécutez :
56
57        # newaliases
58
595. Modifiez /etc/rancid/rancid.conf
60
61        # editor /etc/rancid/rancid.conf
62
63Recherchez la ligne suivante dans rancid.conf:
64
65    #LIST_OF_GROUPS="sl joebobisp"
66
67Et, en dessous ajoutez la ligne suivante :
68
69    LIST_OF_GROUPS="all"
70
71(Sans "#" en début de ligne)
72
73En outre nous voulons utiliser Subversion, et non CVS, donc recherchez
74la ligne contenant le paramÚtre RCSSYS:
75
76    RCSSYS=cvs; export RCSSYS
77
78et modifiez-la comme suit :
79
80    RCSSYS=svn; export RCSSYS
81
82Ainsi que la ligne contenant CVSROOT :
83
84    CVSROOT=$BASEDIR/CVS; export CSVROOT
85
86Et remplacez la par:
87
88    CVSROOT=$BASEDIR/svn; export CSVROOT
89
90Notez bien le "svn" en *minuscules*. Sauver, et quitter le fichier.
91
926. Devenez utilisateur rancid
93
94************************************
95*           ATTENTION !!!          *
96************************************
97
98Faites trÚs attention au compte utilisateur avec lequel vous
99agirez pour le reste de ce labo! Si vous êtes dans le doute,
100il suffit de taper la commande "id" sur la ligne de commande,
101à tout moment.
102
103    Depuis une invite root, changez d'identité pour devenir
104    l'utilisateur "rancid" :
105       
106        # su -s /bin/bash rancid
107       
108    Vérifiez que vous êtes BIEN l'utilisateur rancid :
109
110        $ id
111
112    Vous devriez voir quelque chose de similaire (les chiffres peuvent être
113    différents):
114
115        uid=104(rancid) gid=109(rancid) groups=109(rancid)
116
117********************************************************************
118*    SI VOUS N'ÊTES PAS UTILISATEUR RANCID APRÈS AVOIR TAPÈ "id"   *
119*                       NE CONTINUEZ PAS                           *
120********************************************************************
121
1227. Créez /var/lib/rancid/.cloginrc
123
124        $ editor /var/lib/rancid/.cloginrc
125
126        Ajoutez les lignes suivantes:
127       
128add user *.ws.nsrc.org cisco
129add password *.ws.nsrc.org nsrc+ws nsrc+ws
130
131    (Le premier "cisco" correspond au nom d'utilisateur, le deuxiÚme
132    et le troisiÚme "nsrc+ws" sont le mot de passe et le mot de passe
133    enable utilisé pour se connecter à votre routeur. L'astérisque
134    dans le nom signifie que Rancid va essayer d'utiliser ce nom
135    d'utilisateur et ce mot de passe pour tous les routeurs dont le
136    nom finit en .ws.nsrc.org).
137
138    (Note: il est également possible d'utiliser des adresses IP, et on
139     pourrait alors écrire: add user 10.10.* cisco
140                            add password 10.10.* nsrc+ws nsrc+ws)
141
142    Quitter et sauver ce fichier.
143
144    Protégez maintenant ce fichier afin qu'il ne puisse pas être lu
145    par d'autres utilisateurs :
146
147        $ chmod 600 /var/lib/rancid/.cloginrc
148   
149    En réalité, vous voulez créer un utilisateur RANCID supplémentaire sur le réseau Cisco, doté de droits limités.
150
1518. Testez l'ouverture de session sur le routeur de votre groupe
152   
153    Connectez-vous à votre routeur avec clogin. Il se peut que vous
154    ayez à répondre "oui" (yes) au premier message d'avertissement
155    alerte, mais vous ne devriez pas avoir besoin d'entrer un mot
156    de passe, ceci devrait être automatique.
157
158       $ /var/lib/rancid/bin/clogin rtrX.ws.nsrc.org
159
160       (Remplacez le X par votre n° de groupe. Par exemple, Groupe 1 = rtr1)
161
162    Vous devriez voir s'afficher un message du type :
163
164       spawn ssh -c 3des -x -l cisco rtrX.ws.nsrc.org
165       The authenticity of host 'rtrX.ws.nsrc.org (10.10.X.254)' can't be established.
166       RSA key fingerprint is 73:f3:f0:e8:78:ab:49:1c:d9:5d:49:01:a4:e1:2a:83.
167       Are you sure you want to continue connecting (yes/no)?
168       Host rtrX.ws.nsrc.org added to the list of known hosts.
169       Warning: Permanently added 'rtrX.ws.nsrc.org' (RSA) to the list of known hosts.
170       Password:
171
172       rtrX>enable
173       Password:
174       rtrX#
175       
176    Quittez le routeur 
177
178       rtrX# exit
179
1809. Initialiser le dépÎt SVN pour rancid :
181
182    Assurez-vous que vous êtes l'utilisateur rancid avant de continuer:
183
184    $ id
185
186    Si vous ne voyez pas quelque chose similaire à:
187        "uid=108(rancid) gid=113(rancid) groups=113(rancid)"
188    ... ne PAS CONTINUER avant que vous ayez réussi à devenir
189    l'utilisateur rancid.
190
191    Voir l'étape 6 pour plus de détails.
192
193        $ /usr/lib/rancid/bin/rancid-cvs
194
195    Vous devriez obtenir ce type d'information :
196
197    Committed revision 1.
198    Checked out revision 1.
199    At revision 1.
200    A         configs
201    Adding         configs
202
203    Committed revision 2.
204    A         router.db
205    Adding         router.db
206    Transmitting file data .
207    Committed revision 3.
208
209*** La section suivante n'est que SI vous avez eu des problÚmes ci-dessus ***
210
211     Si cela ne fonctionne pas, alors il vous manque le paquet subversion, ou bien quelque chose n'a pas été correctement configuré au cours des étapes précédentes. Vous devez vérifier que subversion est installé puis, avant de lancer à nouveau la commande cvs-rancid, effectuer l'opération suivante :
212
213    $ exit
214    # apt-get install subversion
215    # su - /bin/bash rancid
216    $ cd /var/lib/rancid
217    $ rm -rf all
218    $ rm -rf svn
219
220      Maintenant, essayez d'exécuter à nouveau la commande rancid-cvs :
221
222    $ /usr/lib/rancid/bin/rancid-cvs
223
224*** Fin de section ***
225
226
22710. Créez router.db
228
229        $ vi /var/lib/rancid/all/router.db
230
231    Ajoutez cette ligne :
232
233        rtrX.ws.nsrc.org:cisco:up
234
235    (N'oubliez pas de remplacer X comme convenu)
236
23711. Lancez rancid !
238
239        $ /usr/lib/rancid/bin/rancid-run
240
241    (Ceci devrait prendre environ 30 secondes)
242
243    Lancez-le à nouveau, étant donné qu'il pourrait ne pas fonctionner
244    correctement la premiÚre fois :
245
246        $ /usr/lib/rancid/bin/rancid-run
247
24812. Consultez les journaux :
249
250        $ cd /var/lib/rancid/logs
251        $ ls -l
252
253    ... Visualisez le contenu du/des fichier(s) :
254
255        $ less all.*
256
25713. Regardez les configs
258
259        $ cd /var/lib/rancid/all/configs
260        $ less rtrX.ws.nsrc.org
261
262    ... en remplaçant "X" avec le numéro de votre groupe.
263
264    Si tout s'est bien déroulé, vous voyez maintenant le fichier config du
265    routeur.
266
26714. Modifions maintenant une description d'interface sur le routeur :
268
269        $ /usr/lib/rancid/bin/clogin rtrX.ws.nsrc.org
270
271    ... en remplaçant "X" avec le numéro de votre groupe.
272
273    À l'invite "rtrX#", saisissez la commande :
274
275        rtrX# conf term
276
277    Vous devriez voir le message suivant :
278
279        Enter configuration commands, one per line.  End with CNTL/Z.
280        rtrX(config)#
281
282    Saisissez :
283
284        rtrX(config)# interface LoopbackXX (remplacez XX par le numéro de
285                                            votre PC)
286        par exemple
287
288        rtrX(config)# interface Loopback17 (si votre PC porte le numéro 17)
289
290    Vous obtenez l'invite suivante :
291
292        rtrX(config-if)#
293
294    Saisissez :
295
296        rtrX(config-if)# description <put your name here>
297        rtrX(config-if)# end
298
299    Vous obtenez maintenant l'invite suivante :
300
301        rtrX#
302
303    Pour enregistrer la configuration en mémoire :
304
305        rtrX# write memory
306
307    Vous devriez voir le message suivant :
308
309        Building configuration...
310        [OK]
311
312    Sortez ensuite en tapant :
313
314        rtrX# exit
315
316    Vous devriez maintenant vous retrouver à l'invite systÚme,
317    en tant qu'utilisateur rancid.
318
31915. Exécutons de nouveau rancid :
320
321        $ /usr/lib/rancid/bin/rancid-run
322
323    Examinez la configuration et les journaux
324
325        $ ls /var/lib/rancid/logs/
326
32716. Observons les différences :
328
329        $ cd /var/lib/rancid/all/configs
330        $ ls -l
331
332    Vous devriez voir tous les fichiers de config routeur
333
334        $ svn log rtrX.ws.nsrc.org
335
336    (où xxx est le numéro de votre routeur)
337
338    Notez les révisions.  Observez la différence entre les deux versions :
339
340        $ svn diff -r 5:6 rtrX.ws.nsrc.org | less
341
342    ... voyez-vous vos modifications ?
343
344    Notez que l'outil en ligne de commande svn (Subversion) est utilisé
345    pour gérer le versionnage de l'information. Si vous tapez:
346
347        $ ls -lah
348
349    ... vous verrez un répertoire caché appelé ".svn". Ceci contient en
350    fait toutes les informations concernant les changements de la configuration
351    de votre routeur, à chaque fois que vous avez lancé rancid via la commande
352    /usr/lib/rancid/bin/rancid-run
353
354    Surtout, ne JAMAIS toucher le répertoire .svn à la main!
355
35617. Consultez votre messagerie
357
358    Nous allons maintenant quitter le shell de l'utilisateur rancid et celui
359    de l'utilisateur root afin de redevenir utilisateur "sysadm". Ensuite on
360    va exécuter "mutt" pour visualiser les messages que rancid a envoyés :
361
362        $ exit
363        # exit
364        $ id
365
366        ... vérifiez que vous êtes maintenant redevenu l'utilisateur "sysadm".
367        Dans le cas contraire déconnectez-vous avant de vous reconnecter.
368
369        $ mutt
370
371    (Au message de sollicitation vous demandant de créer le répertoire
372    courrier (Mail), répondez oui)
373
374    Si tout se déroule comme prévu, vous devriez être en  mesure
375    de lire les messages envoyés par Rancid. Vous pouvez sélectionner
376    un message envoyé par "rancid@pcX.ws.nsrc.org" et le visualiser
377    pour voir à quoi cela ressemble.
378
379    Notez que c'est bien votre routeur, ainsi que tout changement
380    effectué depuis la derniÚre fois ou la commande rancid-run a été
381    lancée.
382
383    Maintenant, quittez mutt.
384
385    (tapez une premiÚre fois 'q' pour revenir à l'index des messages,
386    et une seconde fois pour quitter mutt)
387
38818. Faisons en sorte que rancid s'exécute automatiquement toutes
389    les 30 minutes au moyen d'une tâche cron
390
391    cron est un systÚme sous UNIX qui gÚre l'éxécution automatique de tâches.
392
393    On va repasser root:
394       
395        $ sudo -s
396
397    Maintenant on va créer une tâche pour l'utilisateur Rancid:
398
399        # crontab -e -u rancid
400
401    Rancid va vous demander votre éditeur favori.
402
403    Ajoutez cette ligne à la fin du fichier (copier & coller)
404
405        */30  *  *  *  *  /usr/lib/rancid/bin/rancid-run
406
407    ... puis sauvegardez et quittez.
408
409    C'est tout. La commande "rancid-run" sera éxécutée automatiquement
410    à partir de maintenant, et ce toutes les 30 minutes, tout le temps
411    (tous les jours, semaines, mois)
412
413
41419. Ajoutez maintenant tous les autres routeurs
415
416    Notez les noms de de machine des routeurs
417
418        rtrX.ws.nsrc.org, où X va de 1 à 9
419
420    Mettez à jour le fichier router.db
421
422        # su -s /bin/bash rancid
423        $ editor /var/lib/rancid/all/router.db
424
425    Ajoutez dans le fichier d'autres routeurs de classe. Le résultat devrait ressembler à ce qui suit :
426
427        rtr1.ws.nsrc.org:cisco:up
428        rtr2.ws.nsrc.org:cisco:up
429        rtr3.ws.nsrc.org:cisco:up
430        etc.
431
432    (Notez que "cisco" signifie qu'il s'agit d'un équipement Cisco
433    - cela indique à Rancid que nous nous attendons ici à communiquer
434    avec un dispositif Cisco.  Vous pouvez également communiquer
435    avec un dispositif Juniper, HP...)
436
43720. Exécutez de nouveau rancid :
438
439        $ /usr/lib/rancid/bin/rancid-run
440
441    (Ceci devrait maintenant prendre une minute ou plus, soyez patient)
442
44321. Consultez les journaux :
444
445        $ cd /var/lib/rancid/logs
446        $ ls -l
447
448    ... Choisissez le fichier le plus récent et affichez-le
449
450        $ less all.YYYYMMDD.HHMMSS
451
452    C'est à dire le dernier fichier listé par la commande "ls -l"
453
45422. Regardez les configs
455
456        $ cd /var/lib/rancid/all/configs
457        $ more *.ws.nsrc.org
458
459    Utiliser la barre ESPACE pour défiler le contenu de chaque fichier.
460    Ou alors, on peut faire
461
462        $ less *.ws.nsrc.org
463
464    Puis, ESPACE pour faire défiler, et ":n" pour passer au fichier
465    suivant. Souvenez-vous, dans les deux cas, vous pouvez appuyer sur
466    "q" pour quitter à tout moment.
467
468    Si tout s'est bien déroulé, vous voyez les configs de TOUS les routeurs.
469
47023.  Exécutez de nouveau RANCID juste au cas où quelqu'un aurait modifié la configuration sur le routeur
471
472        $ /usr/lib/rancid/bin/rancid-run
473
474     (patience)
475
476
47724. Essayez clogin :
478
479        $  /usr/lib/rancid/bin/clogin -c "show clock" rtrX.ws.nsrc.org
480
481    ... où "X" est le numéro de votre groupe.
482
483    Que remarquez-vous ?
484
485    Encore mieux, voici la puissance d'un simple script utilisé pour effectuer
486    des changements sur plusieurs machines rapidement
487
488        $ editor /tmp/newuser
489
490    ... dans ce fichier, ajoutez les commandes:
491
492configure terminal
493username NewUser secret 0 NewPassword
494exit
495write
496
497    Sauvez le fichier, et tapez les commandes suivantes:
498
499        $ for r in 1 2 3 4
500
501    Votre invite va se transformer en ">". Continuez et tapez:
502
503> do
504>   /var/lib/rancid/bin/clogin -x /tmp/newuser rtr$r.ws.nsrc.org
505> done
506
507    Votre invite va redevenir "$" et la commande rancid clogin va
508    s'éxécuter et lancer les commandes que vous avez tapés ci-dessus
509    sur les routeurs rtr1, rtr2, rtr3, etc.  C'est un simple exemple
510    de script shell sous Linux, mais trÚs puissant.
511
512    Q: Comment vérifier que la commande a été éxécutée correctement ?
513       Indice: "show run | inc"
514
515    A: Connectez-vous à rtr1, 2, 3 et 4 (si actif). Taper "enable"
516       et ensuite "show run | inc username" pour vérifier que l'utilisateur
517       NewUser existe désormais. Exit pour quitter chaque routeur.
518
519       Ã‰videmment, on peut automatiser ceci comme on l'a fait dans l'exemple
520       ci-dessus.
521
522
52325. Ajoutez le dépÎt RANCID SVN dans SVNWeb
524
525    Si vous êtes toujours logué en tant qu'utilisateur rancid,
526    reprenez l'identité de root
527
528        $ exit
529        #
530
531    Installez SVNWeb :
532
533        # apt-get install websvn
534
535    * Répondez Yes à la question si vous voulez configurer WebSVN maintenant,
536      et appuyer sur ENTREE
537    * Faites OK pour la question suivante concernant la prise en charge
538      de différents serveurs web, et appuyer sur ENTREE
539    * Quand on vous pose la question du "svn parent repositories", remplacer
540      le chemin par:
541
542      /var/lib/rancid/svn
543
544      Choisir OK et appuyer sur ENTREE. Faire la même chose quand on vous
545      demande le chemin pour "svn repositories". C'est à dire, mettre le
546      chemin:
547
548      /var/lib/rancid/svn
549
550      (effacer ce qui est y était sur la ligne avant)
551
552      Choisir OK et appuyer sur ENTREE
553
554    * Faites OK pour l'écran suivant relatif aux autorisations, et appuyer sur
555      ENTREE
556
55726. Corriger les permissions. Le serveur Web doit pouvoir lire le contenu
558    du dossier svn
559
560        # chgrp -R www-data /var/lib/rancid/svn
561        # chmod g+w -R /var/lib/rancid/svn
562
563 
56427. Parcourez les fichiers avec votre navigateur web
565
566        http://pcX.ws.nsrc.org/websvn
567
568    Parcourez les fichiers du répertoire "all/configs".
569    Tous vos fichiers de configuration de routeur se trouvent ici.
570
57128. Examinez les révisions
572   
573    WebSVN vous permet de voire facilement les changements entre les
574    versions.
575
576    * Naviguer sur http://pcX.ws.nsrc.org/websvn de nouveau, cliquer sur "all",
577      puis "configs"
578    * Cliquer sur le fichier avec le nom du routeur (rtrX.ws.nsrc.org). Vous
579      allez avoir un nouvel écran
580    * Cliquer sur "Compare with Previous" en haut de l'écran.
581    * Vous devriez voir les changements surlignés en couleur.
582
583    Cliquer sur "REPOS 1" pour revenir en arriÚre à la page principale WebSVN:
584
585    * Cliquer sur "all/" sous "Path"
586    * Cliquer sur "configs/"
587    * Sélectionnez deux des routeurs qui sont cÃŽte à cÃŽte, par exemple:
588      rtr1 et rtr2.
589    * Cliquer sur "Compare Paths"
590
591    Ceci vous montrera les différences de configuration entre deux routeurs
592    distincts.
593
594    Note: c'est possiblement un trou de sécurité, donc il vaut mieux
595    restreindre l'accÚs à http://host/websvn en utilisant des mots de
596    passe (et SSL), ou avec des listes d'accÚs.
597
598    Si vous voulez juxtaposer différentes révisions afin de les comparer, vous pouvez également le faire avec WebSVN.
599
600    Accédez de nouveau à http://pcXXX.ws.nsrc.org/websvn, allez à "all configs"
601    Sélectionnez le fichier de votre routeur (rtrX.ws.nsrc.org) et cliquez sur "Compare with Previous" (comparer avec version précédente)
602    Vous devriez maintenant voir les derniÚres modifications cÃŽte-à-cÃŽte.
603
604