oracular (3) Net::CLI::Interact::Manual::Phrasebook.3pm.gz

Provided by: libnet-cli-interact-perl_2.400002-1_all bug

NAME

       Net::CLI::Interact::Manual::Phrasebook - List of Supported CLIs

INTRODUCTION

       The bundled phrasebook includes support for a variety of network device CLIs.  Many were contributed by
       users of the module. If you set up a new CLI dictionary, please consider contributing it back! The
       phrasebook specification is given in Net::CLI::Interact::Phrasebook.

       For each supported CLI, there is a name which must be passed in the "personality" option to
       Net::CLI::Interact's "new()" method; this is the same as the directory containing the phrasebook file.

       After that, you can call the included Macros, and the module will use the included Prompt to match the
       current state of the CLI. More information is available in the Tutorial and Cookbook.

PERSONALITIES

       See the files themselves at the following link for full details:
       <https://github.com/ollyg/Net-CLI-Interact/tree/master/share/phrasebook>.

       •   ASA

       •   Avaya

       •   Bash

       •   CatOS

       •   Cisco (generic)

       •   Csh

       •   ExtremeOS

       •   F5

       •   Fortinet

       •   Foundry / Brocade

           Before connecting to the device you probably want to set the output separator to be:

            $nci->transport->ors("\r\n");

           For users of Net::Appliance::Session this should be:

            $session_obj->nci->transport->ors("\r\n");

       •   FWSM

       •   FWSM 3

       •   HP

       •   IOS

       •   JunOS

       •   Mikrotik

       •   Nortel

       •   OVMCLI

       •   PIXOS

       •   PIXOS 7

       •   Qnap

       •   RedBack

       •   ScreenOS

       •   WLC

       •   Zyxel

SUPPORTING A NEW DEVICE

       In order to support a new device, particularly for the Net::Appliance::Session module, there is a basic
       set of prompts and macros you must create.

   Required Prompts
       With SSH, no "user" prompt is required, but for other transports you should include a prompt named "user"
       which matches the ""Username:"" prompt presented by the device.

        # example only!
        prompt user
            match /[Uu]sername/

       With all transports you must provide a "pass" prompt which matches the ""password:"" prompt presented by
       the device.

        # example only!
        prompt pass
            match /[Pp]assword: ?$/

       The last essential prompt is of course a simple command line prompt match, and this should be named
       "generic".

        # example only!
        prompt generic
            match /> ?$/

   Desirable Prompt and Macros
       To cleanly disconnect from your device session, you might want to include a macro named "disconnect" with
       the relevant command. Note there is no need for a "match" statement in this macro, as the device should
       have detached!

        # example only!
        macro disconnect
            send exit

       For paging support, include either only a "prompt" macro, or two macros named "enable_paging" and
       "disable_paging", depending on what the device requires.  In all cases, there must be one substitution
       ("%s") which is where the number of page lines will be inserted into the command.

        # example only!
        macro paging
            send terminal length %s

       For privileged mode (super-user) support, include a prompt named "privileged" first, and then include
       macros named "begin_privileged" and "end_privileged" to enter and leave the mode, respectively. Note that
       both macros will require explicit match statements, because the prompt encountered after issuing the
       command will be different to that encountered before.

        # example only!
        prompt privileged
            match /# ?$/

        macro begin_privileged
            send enable
            match user or pass or privileged

        macro end_privileged
            send disable
            match generic

       Similarly for configure mode, include a prompt named "configure" first, and then include macros named
       "begin_configure" and "end_configure" to enter and leave the mode, respectively. Note that both macros
       will require explicit match statements, because the prompt encountered after issuing the command will be
       different to that encountered before.

        # example only!
        prompt configure
            match /\(config[^)]*\)# ?$/

        macro begin_configure
            send configure terminal
            match configure

        macro end_configure
            send exit
            match privileged