¹«º£²Ê´¬¡¤6600(ÖйúÓÎ)¹Ù·½ÍøÕ¾

µã»÷ÏÂÔØ¡¶ÍòÕ×Ô°ÇøÒÔÌ«²Ê¹âÑо¿±¨¸æ¡·£¬½âËøÍòÕ×Ô°ÇøÍøÂ罨ÉèÖ¸ÄÏ
Á¢¼´ÏÂÔØ
ÎÞ¸Ð×¼Èë ÈËÎïͳ¹Ü Ø­ RG-SAM+5.X ÐÂÒ»´ú¸ßУAIÈÏ֤ƽ̨·¢²¼
Ô¤Ô¼Ö±²¥
²úÆ·
< ·µ»ØÖ÷²Ëµ¥
²úÆ·ÖÐÐÄ
²úÆ·
ºÏ×÷»ï°é
·µ»ØÖ÷²Ëµ¥
Ñ¡ÔñÇøÓò/ÓïÑÔ

»ùÓÚPython TextFSMÄ£¿éµÄÍøÂçÉ豸×Ô¶¯»¯ÔËά·½·¨

±¾ÎĽ«¸ø´ó¼Ò½éÉÜÒ»ÖÖÖ÷Á÷µÄ»ùÓÚCLIÃüÁîÐеǼµÄ×Ô¶¯»¯ÔËάʵ¼ù°¸Àý£¬Ï£ÍûÄܹ»¸ø´ó¼Ò´øÀ´°ïÖú¡£

  • ·¢²¼Ê±¼ä£º2021-03-04

  • µã»÷Á¿£º

  • µãÔÞ£º

·ÖÏíÖÁ

ÎÒÏëÆÀÂÛ

±¾ÎÄ×÷Õߣºkevinwoo

¹«º£²Ê´¬¡¤6600ÍøÂç¼¼Êõ·þÎñ²¿»¥ÁªÍø·þÎñÖÐÐÄ

 

Ëæ×ÅÔÆ¼ÆËãºÍSDN¼¼ÊõµÄ·¢Õ¹£¬Êý¾ÝÖÐÐĹæÄ£Ô½À´Ô½´ó£¬¶øÍøÂç¼Ü¹¹Öð½¥Ïò“È¥¶Ñµþ”¡¢“È¥¿ò”ʽ·¢Õ¹£¬Õâ¾ÍÒâζ×ÅÐèҪά»¤µÄ½»»»»úÊýÁ¿Ôڳɱ¶µÄÔö³¤¡£Ëæ×ÅÍøÂçά»¤¹æÄ£Ô½À´Ô½´ó£¬ÔËάÈËԱѹÁ¦Ò²³É±¶Ôö¼Ó£¬ÒÀ¿¿´«Í³µÄÈ˹¤Î¬»¤ÒѲ»Ì«ÏÖʵ£¬¹¤¾ß»¯¡¢×Ô¶¯»¯ÔËÎ¬ÊÆÔÚ±ØÐС£Õâ¾ÍÐèÒªÔËάÈËÔ±¾ß±¸Ò»¶¨±à³ÌÄÜÁ¦£¬´Ó¶øÍ¨¹ýÈí¼þ´úÌæ´«Í³µÄÈ˹¤Î¬»¤¡£ÍøÂç×Ô¶¯»¯ÔËάÀíÄî½áºÏÈí¼þ¿ª·¢ÁìÓòDevOpsÀíÄî¶ø²úÉúµÄNetDevOps¸ÅÄîÒÑÖð½¥±»ÍøÂçÔËά½çËù½ÓÊÜ¡£

ÍøÂç×Ô¶¯»¯ÔËά£¬Ê×ÏÈҪʵÏÖÍøÂçÉ豸Óë×Ô¶¯»¯ÔËάƽ̨¶Ô½Ó£¬¼´Í¨¹ý´úÂëʵÏÖµÇÂ¼ÍøÂçÉ豸²¢»ñÈ¡ÐÅÏ¢¡£Ä¿Ç°³£¼ûÁ¬½ÓÉ豸µÄ·½·¨ÓÐÄ£Ä⴫ͳµÄTelnet/SSHÃüÁîµÇ¼¡¢NETCONF¡¢gRPC¡¢OpenFlowЭÒé¶Ô½ÓµÈµÈ¡£


ΪÁ˸úÉÏSDNµÄ·¢Õ¹Ç÷ÊÆ£¬¸÷¸ö´«Í³ÍøÂçÉ豸³§ÉÌÒÑÖ𽥿ª·ÅAPI½Ó¿Ú£¬±È½ÏÓдú±íÐÔµÄÊÇNETCONFºÍYANGÄ£ÐͶÔÍøÂçÉ豸µÄÅäÖúÍÐÅÏ¢Êä³öµÄÊý¾Ý½á¹¹»¯¶¨Ò塣Ŀǰ¹«º£²Ê´¬¡¤6600Êý¾ÝÖÐÐĽ»»»»ú²úÆ·ÒÑÈ«ÃæÖ§³ÖNETCONFЭÒ飬¿ÉÊÊÓÃÓÚºÍSDN¿ØÖÆÆ÷»òÔËάƽ̨µÄÄÏÏò½Ó¿Ú¶Ô½Ó¡£¶øÃæ¶ÔÍøÂ繤³ÌʦÔÚ²Ù×÷ÍøÂçÉ豸ʱϰ¹ßÓÚʹÓÃCLIÃüÁîÐеÄÏÖ×´£¬ÓÖÓÐʲôÑùµÄ°¸Àýʵ¼ùÄØ£¿


±¾ÎĽ«¸ø´ó¼Ò½éÉÜÒ»ÖÖÖ÷Á÷µÄ»ùÓÚCLIÃüÁîÐеǼµÄ×Ô¶¯»¯ÔËάʵ¼ù°¸Àý£¬Ï£ÍûÄܹ»¸ø´ó¼Ò´øÀ´°ïÖú¡£


»ùÓÚCLIµÄ×Ô¶¯»¯ÔËά´øÀ´µÄÎÊÌâ

 

CLI(Command-Line Interface)ÊÇ´«Í³ÍøÂ繤³Ìʦ×îÊìϤµÄÓëÍøÂçÉ豸“¹µÍ¨”µÄ·½Ê½£¬¹¤³Ìʦ×î³õÑ§Ï°ÍøÂç¿Î³Ì¾ÍÊÇÒªÊìϤ¸÷ÀàЭÒéµÄÃüÁîÐÐÅäÖᢵ÷ÊÔ¡£¹¤³ÌʦÔÚÈÕ³£¹¤×÷ÖÐÐèÒª½áºÏÃüÁîÐÐÊä³ö½á¹û½øÐÐÅÅ´í£¬ÉõÖÁÔÚÍøÂç¸î½ÓºÍ±ä¸üµÄ³¡¾°ÖУ¬ÐèÒª½«±ä¸üµÄ²Ù×÷²½Öèϸ»¯µ½Ã¿Ò»ÌõÃüÁî¡£Ïà±ÈNETCONFµÈAPI½Ó¿Ú£¬CLIÃüÁîÐÐͨ³£Ö§³ÖµÄÄÚÈݸü¼Ó·á¸»¡¢Áé»î¡£ËùÒÔÔÚʵÏÖÍøÂç×Ô¶¯»¯ÔËάµÄ¹ý³ÌÖУ¬»ùÓÚCLIµÄ×Ô¶¯»¯ÊÇÈÝÒ×±»´«Í³ÍøÂ繤³ÌʦËù½ÓÊܺÍÖ´ÐеÄ¡£


Ëæ×ÅPythonÓïÑÔÔÚ½üЩÄêµÄ¿ìËÙ·¢Õ¹£¬Ó¿ÏÖÁËÒ»Åú»ùÓÚPythonµÄÓÅÐ㿪Դģ¿é£¬±ÈÈçAnsible¡¢Paramiko¡¢Netmiko¡¢PexpectµÈ¡£ÍøÂ繤³ÌʦÏÖÔÚ¿ÉÒÔ±àд¼ò¶ÌµÄPython½Å±¾¾ÍÄܵ÷ÓÃÕâЩģ¿éʵÏÖÅúÁ¿µÇ¼É豸ִÐнű¾£¬µ«ÊÇËæÖ®¶øÀ´µÄÁíÒ»¸öÍ·Í´µÄÎÊÌâÊÇ´«Í³µÄÃüÁîÐÐÊä³ö½á¹ûͨ³£Êǰ´ÕÕÊʺÏÈËÀàÔĶÁµÄ·½Ê½À´³ÊÏֵġ£±ÈÈç“show”ÃüÁîµÄÊä³ö½á¹û°üº¬ÁË´óÁ¿µÄ¿Õ¸ñ¡¢Ëõ½ø¡¢»»ÐеÈ£¬¶øÇҺܶàÃüÁ´æÔÚÉÏÏÂÎĹØÁªÐÔ¡£ÕâЩÃüÁîÐÐÊä³ö½á¹ûͨ³£ÎÞ·¨±»¼ÆËã»úºÜºÃµØÊ¶±ð£¬¼ÆËã»ú¸üÉó¤Ê¶±ðXML¡¢JSON¡¢YAMLµÈ½á¹¹»¯Êý¾ÝÀàÐÍ£¬ËùÒÔÍø¹¤ÔÚ±àдPython½Å±¾Ê±²»µÃ²»Ð´Ò»¶ÑÕýÔò±í´ïʽȥ“¿Ù”¹Ø¼ü²ÎÊý£¬È»¶øÊ¹Óø´ÔÓµÄÕýÔò±í´ïʽÓÖ½øÒ»²½µ¼Ö´úÂë¿Éά»¤ÐԽϲî¡£


ÏÂÃæÒÔ½»»»»ú×î»ù´¡µÄ²é¿´VLANÃüÁîΪÀý½øÐÐ˵Ã÷¡£ÈçÏÂͼËùʾÊÇͨ¹ý“show vlan”ÃüÁîµÄÊä³ö½á¹û£¬¶ÔÓÚͬһ¸öVLAN¿ÉÄÜ»á´æÔÚ¶à¸ö¶Ë¿Úͬʱ·ÅÐеÄÇé¿ö¡£¹ØÁªµÄ½Ó¿ÚÊýÁ¿³¬¹ýÒ»¶¨ÊýÁ¿Ê±£¬Êä³öµÄ½á¹û½«»á²ð·Ö³É¶àÐÐÏÔʾ£¬´Ëʱ£¬VLANÐÅÏ¢Ö»ÔÚµÚÒ»ÐÐÏÔʾ£¬ºóÐø¼¸ÐÐÄÚÈÝÐèÒªÓëµÚÒ»ÐнøÐйØÁªÆ¥Åä²ÅÄܵõ½ÕýÈ·µÄÊä³öÐÅÏ¢¡£´ËʱÈç¹ûÐèÒª¶Áȡij¸öVLAN¹ØÁªµÄËùÓж˿ںÅÁÐ±í£¬Ê¹Óô«Í³µÄÕýÔò±í´ïʽ¾ÍÐèÒª¶à´Îµ÷ÓÃÕýÔò±í´ïʽ²¢ÅäºÏÑ­»·Âß¼­ÅжϲÅÄÜʵÏÖ£¬Õû¸ö¹ý³Ì·Ç³£·±Ëö¡£


Python³£¹æµÄÊý¾ÝÀàÐÍÖ÷ÒªÊÇÁбí»ò×Öµä¸ñʽ£¬Èç¹ûÓй¤¾ßÄܹ»½«É豸µÄÉÏÃæµÄÊä³ö½á¹ûÖ±½Óת»¯ÎªPythonÊÊÅäµÄÊý¾ÝÀàÐÍ£¨ÈçÏÂͼ£©£¬ÄÇô¾Í¿ÉÒÔÖ±½ÓʹÓÃPython½øÐд¦Àí¡£

 


ÏÂÃæ¾ÍÒªÂ¡ÖØ½éÉÜһϱ¾ÎıêÌâÖÐÌáµ½µÄTextFSMÄ£¿é£¬Ëü¾ÍÊÇÓÃÓڽṹ»¯Êä³öÎı¾µÄÒ»¸öÉñÆæ¹¤¾ß¡£


TextFSMÄ£¿é½éÉÜ

 

TextFSMÊÇGoogle¿ª·¢µÄÒ»ÖÖ¿ªÔ´PythonÄ£¿é£¬¿ÉÒÔ»ùÓÚÄ£°åµÄ״̬»úÀ´½âÎö°ë¸ñʽ»¯Îı¾£¬´Ó¶øÊµÏÖ¶ÔÍøÂçÉ豸CLIÊä³öÐÅÏ¢½øÐнṹ»¯Êý¾Ý´¦Àí£¬×îÖÕ½«Îı¾ÄÚÈÝÊä³öΪPythonµÄ×Öµä»òÁбí¸ñʽ£¨»òÕßÊÇÁ½Õß×éºÏ£©¡£


ÏêϸÄÚÈÝ¿ÉÒÔ·ÃÎʸÃÄ£¿éµÄGitHub£ºhttps://github.com/google/textfsm¡£


ÀýÈ磬ÉÏÎÄÖÐÐèÒª½«“show vlan”ÃüÁîµÄÊä³ö½á¹û½øÐнâÎö£¬¿ÉÒÔͨ¹ýµ÷ÓÃÏÂÃæµÄTextFSMÄ£°å½«ÃüÁîÊä³ö½øÐиñʽ»¯£º


ruijie-templatesÄ£¿é½éÉÜ

 

ËäÈ»ÓÐÁËTextFSMÄ£¿éÄܹ»×öµ½½á¹¹»¯½âÎöÎı¾ÐÅÏ¢£¬µ«ÊÇÿ¸ö³§¼ÒµÄCLIÊä³öÄÚÈݲîÒì½Ï´ó£¬ÐèҪÿÌõÃüÁî¶¼ÓÐÏàÓ¦µÄÄ£°åÀ´ÊÊÅ䣬µ¼ÖÂÔËάÈËÔ±»¹ÐèҪͶÈë´óÁ¿Ê±¼äÈ¥±àдÏàÓ¦µÄÄ£°å¡£ntc-templatesÄ£¿é¾ÍÊÇΪÁ˽â¾öÕâ¸öÍ´µãµ®ÉúµÄ¡£ntc-templatesÄ£¿éÊÇÓÉnetworktocodeÍŶӿª·¢µÄPythonÄ£¿é£¬¸ÃÄ£¿é»ùÓÚTextFSM¿ª·¢£¬ËüÄÚÖÃÁ˽«½ü400¸öTextFSMÄ£°å£¬¿ÉÒÔÊÊÅäÖ÷Á÷³§É̵ÄCLIÊä³ö½á¹û¡£


Ïêϸ¿É²Î¿¼¸ÃÄ£¿éµÄGitHubÖ÷Ò³£º


https://github.com/networktocode/ntc-templates

 

ntc-templatesÄ£¿éÄÚÖÃÁËindexÎļþ£¬½«¸÷Àà³§ÉÌÆ½Ì¨ºÍshowÃüÁîÓ³Éäµ½ÏàÓ¦µÄTextFSMÄ£°åÎļþ£¬Ã¿¸ö³§É̵IJ»Í¬ÃüÁî¶¼¶ÔÓ¦×ÅÒ»¸ö¶ÀÁ¢µÄÄ£°å¡£ÎÒÃÇÔÚntc-templatesÄ£¿éµÄ»ù´¡ÉÏ£¬¿ª·¢ÁË»ùÓÚ¹«º£²Ê´¬¡¤6600Êý¾ÝÖÐÐĽ»»»»ú²úÆ·µÄÄ£°å¿â£ºruijie-templates¡£ruijie-templatesÄ£°å¿âÊÇ»ùÓÚTextFSM¹æÔò¿ª·¢£¬ÓÃÓÚÊÊÅäntc-templatesÄ£¿é£¬¿ÉÒÔÎÞ·ìÏνÓNetmikoÄ£¿éʹÓá£ruijie-templatesÄ£¿é¿ÉÒÔ½«¹«º£²Ê´¬¡¤6600Êý¾ÝÖÐÐĽ»»»»úCLIÄÚÈݽøÐнṹ»¯Êä³ö£¬Êä³ö½á¹û¿ÉÒÔÖ±½ÓÓÃÓÚPython½Å±¾Ê¹Ó᣸ÃÄ£¿é¾­¹ý¶à¸ö¹«º£²Ê´¬¡¤6600Ö÷Á÷Êý¾ÝÖÐÐĽ»»»»ú°æ±¾²âÊÔ£¬¸²¸ÇRG-S6510¡¢RG-S6520¡¢RG-S6910¡¢RG-S6920¡¢RG-N18000-XϵÁÐ[Ȩ5] ²úÆ·£¬Ä¿Ç°ÒÑÖ§³Ö½ü50Ìõ³£ÓÃÃüÁî½âÎö£¬ºóÐø»áÖ𲽸üÐÂÍêÉÆ£¬¾´Çë¹Ø×¢¡£Ä¿Ç°ruijie-templates´úÂëÒÑÍйÜÖÁGitHub£ºhttps://github.com/kevinkrabi/ruijie-templates

ÏÂÃæ½éÉÜÒ»ÏÂruijie-templatesÄ£¿éʹÓ÷½·¨¡£


ruijie-templatesÄ£¿éʹÓ÷½·¨

 

°²×°·½·¨

 

ǰÖÃÌõ¼þ£º°²×°TextFSM¿âºÍntc-templates¿â

·½·¨Ò»£º½«ruijie-templates²¢Èëntc-templatesÄ£°å¿â£¨ÍƼö£©

·½·¨¶þ£º¶ÀÁ¢Ê¹ÓÃruijie-templates¿â£¬ÐèÒªÉèÖû·¾³±äÁ¿£¬Ïà¶Ô¸´ÔÓ£¨²»ÍƼö£©
ÍÆ¼öʹÓ÷½·¨Ò»½«±¾Ä£°å¿âºÏ²¢Èëntc-templatesÄ£¿éʹÓ㬾ßÌå²Ù×÷²½ÖèÈçÏ£º


ÏÂÔØÄ£°å¿â

 

git clone git@github.com:kevinkrabi/ruijie-templates.git

Ä£°åÎļþµ¼Èëntc-templates

½«templatesĿ¼ÏµÄËùÓÐTextFSMÎļþµ¼Èëntc-templates¿âµÄtemplatesĿ¼¡£


ÒÔmacOSΪÀý£º


cp*.textfsm Library/Frameworks/Python.framework/Versions/3.6/lib/Python3.6/site-packages/ntc_templates/templates//index

 

Ìí¼ÓindexÐÅÏ¢

 

ÒÔmacOSΪÀý£¬indexÎļþËùÔÚ·¾¶Îª£º

Library/Frameworks/Python.framework/Versions/3.6/lib/Python3.6/site-packages/ntc_templates/templates/index

 

ÕÒµ½indexÎļþºóÓÃÎı¾±à¼­Èí¼þ´ò¿ª£¬½«ÒÔÏÂÄÚÈÝÈ«²¿¸´ÖÆÕ³Ìùµ½Ô­Ê¼Îļþĩβ¼´¿É¡£

×¢Ò⣺ÓÉÓÚntc-templatesÄ£°å¿âÆ¥ÅäÔ­Ôò£¬Îª±ÜÃâÒì³£Çé¿ö£¬ÒÔÏÂindexÌõÄ¿²»½¨Òéµ÷Õû˳Ðò£¡

 

°¸ÀýÒ»£ºÊ¹ÓÃNetmikoµÇ¼É豸»ñÈ¡Êä³öÐÅÏ¢

 

˵Ã÷

¸Ã°¸ÀýʹÓÃNetmikoÄ£ÄâCLI×Ô¶¯»¯µÇ¼һ̨É豸£¬¶ÁÈ¡¹Ø¼üÐÅÏ¢²¢Êä³ö½á¹û¡£


NetmikoÊÇ»ùÓÚParamiko¿ª·¢µÄרÃÅÓÃÓÚÊÊÅäÍøÂçÉ豸µÄ¿ªÔ´Python¿â£¬Netmikoͬʱ¼¯³ÉÁËTextFSM»·¾³£¬Ä¿Ç°×îа汾Netmiko£¨3.3.3£©ÒÑÖ§³Ö¹«º£²Ê´¬¡¤6600²úÆ·£¬device_type²ÎÊý£ºruijie_os


²âÊÔÄ¿±ê

ʹÓÃNetmikoµÇ¼É豸£¬Í¨¹ýÖ´ÐГshow int count rate up”ÃüÁî»ñÈ¡É豸Êä³öÐÅÏ¢£¬²¢½«½á¹ûÒÔ×ֵ䷽ʽÊä³ö¡£

 

 

ʵÏÖ´úÂë

 

×¢Òâ¹Ø¼ü×Ö£ºdevice_type': 'ruijie_os'£¬use_TextFSM=True

 

ʵÏÖЧ¹û

 

 

°¸Àý¶þ£ºÊ¹ÓÃntc-teamplates½«Îı¾½á¹¹»¯Êä³ö

 

˵Ã÷

¸Ã°¸ÀýʹÓÃntc-templatesÄ£¿é£¬¶ÔÎı¾ÄÚÈݽøÐнṹ»¯Êä³ö¡£

 

²âÊÔÄ¿±ê

ÒÔÏÂͼÖÐBGP·ÓɱíΪÀý£¬ÐèÒª¶Ô“show ip bgp”ÃüÁîÖ´Ðнá¹û½øÐнṹ»¯Êä³ö¡£

 

ʵÏÖ´úÂë

×¢Òâ¹Ø¼ü×Ö£ºplatform='ruijie_os'

 

ʵÏÖЧ¹û

 

дÔÚ×îºó

±¾ÎĽéÉÜÁËÍøÂç×Ô¶¯»¯ÔËάµÄÎÊÌâºÍ½â¾ö¹«º£²Ê´¬¡¤6600¹ÙÍø£¬²¢½áºÏÁ½¸ö°¸Àý½éÉÜÁËruijie-templateÄ£¿éµÄ¹¦ÄÜÒÔ¼°Ê¹Ó÷½·¨£¬¸ÐÐËȤµÄ¶ÁÕß¿ÉÒԲο¼°¸ÀýÏÂÔØ²âÊÔ£¬µ±Ç°µÄÃüÁîÊýÁ¿»¹²»ÄÜÂú×ãËùÓÐÒµÎñ³¡¾°£¬ÈçÄúÓиüºÃµÄ½¨ÒéºÍÒâ¼û¿ÉÒÔÁôÑÔ£¬Ï£ÍûÕâ¸öÄ£¿é¿ÉÒÔ°ïÖúµ½ÓÐÕâ·½ÃæÐèÇóµÄÅóÓÑ¡£


¸½Â¼

 

±¾ÎÄÖнéÉܵÄÏà¹ØÄ£¿éGitHubµØÖ·£º

ruijie-template£ºhttps://github.com/kevinkrabi/ruijie-templates

TextFSM£ºhttps://github.com/google/textfsm

ntc-templates£ºhttps://github.com/networktocode/ntc-templates

Netmiko£ºhttps://github.com/ktbyers/Netmiko

Ïà¹ØÍÆ¼ö£º

Ïà¹Ø±êÇ©£º

µãÔÞ

¸ü¶à¼¼Êõ²©ÎÄ

ÈκÎÐèÒª£¬ÇëÁªÏµÎÒÃÇ

·µ»Ø¶¥²¿

ÊÕÆð
ÎĵµAIÖúÊÖ
ÎĵµÆÀ¼Û
¸Ã×ÊÁÏÊÇ·ñ½â¾öÁËÄúµÄÎÊÌ⣿
Äú¶Ôµ±Ç°Ò³ÃæµÄÂúÒâ¶ÈÈçºÎ£¿
²»Õ¦µÎ
·Ç³£ºÃ
ÄúÂúÒâµÄÔ­ÒòÊÇ£¨¶àÑ¡£©£¿
Äú¶ÔÎĵµÊÇ·ñ»¹ÓÐÆäËüµÄÎÊÌâ»ò½¨Ò飿
Ϊ¾¡¿ì½â¾öÎÊÌ⣬ÇëÄúÁôÏÂÁªÏµ·½Ê½Òﱋȯ¸´
ÓÊÏä
ÊÖ»úºÅ
¸ÐлÄúµÄ·´À¡£¡
ÇëÑ¡Ôñ·þÎñÏîÄ¿
¹Ø±Õ×Éѯҳ
ÊÛǰ×Éѯ ÊÛǰ×Éѯ
ÊÛǰ×Éѯ
ÊÛºó·þÎñ ÊÛºó·þÎñ
ÊÛºó·þÎñ
Òâ¼û·´À¡ Òâ¼û·´À¡
Òâ¼û·´À¡
¸ü¶àÁªÏµ·½Ê½
¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿