J'ai modifié l'outil de collecte de configuration de routeur que j'ai posté plus tôt et l'ai publié sur PyPI. [Outil pour acquérir de manière centralisée la configuration du routeur Cisco / Juniper] (http://qiita.com/taijijiji/items/620908c1bec27e1ea933)
https://pypi.python.org/pypi/ConfigCollector https://github.com/taijiji/ConfigCollector
Cela a pris du temps car c'était ma première inscription PyPI, mais j'ai réussi à faire mes débuts avec PyPI.
Je voulais gérer la configuration du routeur avec Git, mais avant Git, il était difficile de collecter la configuration du groupe de routeurs d'exploitation, j'ai donc créé un collecteur de configuration qui peut collecter la configuration de tous les routeurs avec une seule commande. J'ai fait.
J'ai pensé à l'automatiser en incluant la commande Git, mais "Si vous confilct, vous devez le sélectionner manuellement." "Si vous téléchargez de force la configuration du routeur, qui est une information confidentielle, vous risquez d'avoir des problèmes lorsque vous faites une erreur." La cible de cet outil est la "connexion SSH à plusieurs routeurs" car il était difficile d'implémenter des fonctions optionnelles telles que git remove au moment de l'erreur (je ne suis pas sûr si une implémentation gênante est nécessaire). Obtenir la configuration ・ Limité à la "collecte".
En le publiant sur PyPI, il peut être installé avec la commande pip.
pip install configcolletctor
Si vous n'avez jamais utilisé pip, veuillez installer pip en vous référant à cet article. [Les premiers packages à inclure dans Python setuptools et pip] (http://www.lifewithpython.com/2012/11/Python-package-setuptools-pip.html)
Après l'installation, exécutez l'outil de cette manière.
configcollector -i [inventory_file] -o [output_dirctory]
[
{
"hostname" : "router1",
"username" : "user1",
"password" : "aaabbbccc",
"ipv4" : "192.168.0.1",
"os" : "JUNOS"
},
{
"hostname" : "router2",
"username" : "user2",
"password" : "aaabbbccc",
"ipv4" : "192.168.0.2",
"os" : "IOS-XR"
},
{
"hostname" : "router3",
"username" : "user3",
"password" : "aaabbbccc",
"ipv4" : "192.168.0.3",
"os" : "IOS"
}
]
Utilisez ConfigCollector comme suit.
Tout d'abord, créez un répertoire de destination de sortie dans lequel la configuration du routeur est enregistrée.
% mkdir router_config
Exécutez ConfigCollector
% configcollector -i sample_routers.json -o router_config/
Accessing router: router1...
Writing output file "router_config/router1"...
Success : "router_config/router1"!
Accessing router: router2...
Writing output file "router_config/router2"...
Success : "router_config/router2"!
Accessing router: router3...
Writing output file "router_config/router3"...
Success : "router_config/router3"!
Vérifiez le fichier créé.
% ls router_config
router1.txt router2.txt router3.txt
% less router1.txt
show configuration | no-more
## Last commit: 2015-05-01 17:00:00 JST by user1
version x.x.x;
system {
host-name router1;
time-zone Asia/Tokyo;
(snip)
c'est tout.
Vous pouvez gérer la configuration du routeur acquise par cet outil avec la procédure suivante.
% configcollector -i sample_routers.json -o router_config/
% git add router_config/ .
4.git commit (effectuer la mise à jour)
% git commit
% git push
(Première fois seulement% git push origin master)
Je me suis inscrit à PyPI pour la première fois de ma vie. Je suis heureux d'avoir pu rejoindre pour la première fois les rangs des committeers décents de l'OSS. Il y a de nombreux endroits où je ne sais pas encore comment utiliser PyPI et OSS, je vous serais donc reconnaissant de bien vouloir me donner quelques commentaires. https://pypi.python.org/pypi/ConfigCollector https://github.com/taijiji/ConfigCollector
Recommended Posts