<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Perl Scripting to FW in Automation/API Discussions</title>
    <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9895#M273</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;this may be useful for what you are doing:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="https://github.com/kevinsteves/pan-python/blob/master/doc/panconf.rst" rel="nofollow"&gt;https://github.com/kevinsteves/pan-python/blob/master/doc/panconf.rst&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 22 Oct 2014 23:22:37 GMT</pubDate>
    <dc:creator>ksteves1</dc:creator>
    <dc:date>2014-10-22T23:22:37Z</dc:date>
    <item>
      <title>Perl Scripting to FW</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9885#M263</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;So I got help from support and they gave me this nifty Perl example on how to get output from the firewalls.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, I need to assign that output from the show command to a variable for further manipulation.&amp;nbsp; That was the whole purpose.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does anyone know how to assign the outputs from the show commands to a variable?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And below is the script example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11px; background-color: #ecf3ea;"&gt;example.pl &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11px; background-color: #ecf3ea;"&gt;----------------------------------------------------------------- &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11px; background-color: #ecf3ea;"&gt;#!/usr/bin/perl &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11px; background-color: #ecf3ea;"&gt;use strict; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11px; background-color: #ecf3ea;"&gt;my $cmd = "ssh ssh\@10.40.10.228"; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11px; background-color: #ecf3ea;"&gt;my $line = "show system info"; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11px; background-color: #ecf3ea;"&gt;open CLI, " | $cmd "; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11px; background-color: #ecf3ea;"&gt;print CLI "$line\n"; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11px; background-color: #ecf3ea;"&gt;close CLI; &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Sep 2014 17:50:38 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9885#M263</guid>
      <dc:creator>zyang</dc:creator>
      <dc:date>2014-09-19T17:50:38Z</dc:date>
    </item>
    <item>
      <title>Re: Perl Scripting to FW</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9886#M264</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What do you want to do?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It's already saved in the $line variable. If you want to process it using the same script just use that variable, &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 22 Sep 2014 22:00:52 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9886#M264</guid>
      <dc:creator>GLastra</dc:creator>
      <dc:date>2014-09-22T22:00:52Z</dc:date>
    </item>
    <item>
      <title>Re: Perl Scripting to FW</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9887#M265</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The value of the variable $line is "show system info" ...&amp;nbsp; Printing $line gives me ... "show system info".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What I need is the output from the show command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to assign that to a variable or be able to manipulate/parse it in the script to get meaningful information.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 22 Sep 2014 22:14:35 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9887#M265</guid>
      <dc:creator>zyang</dc:creator>
      <dc:date>2014-09-22T22:14:35Z</dc:date>
    </item>
    <item>
      <title>Re: Perl Scripting to FW</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9888#M266</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN class="kwd" style="color: #00008b; background: transparent;"&gt;Ok first let's check your code, is it working?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="kwd" style="color: #00008b; background: transparent;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3b3b3b;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 11px; font-family: Arial, Helvetica, sans-serif; color: #333333; background-color: #ecf3ea;"&gt;my $cmd = "ssh ssh\@10.40.10.228";&amp;nbsp; # external command to run, I assume you're using a UNIX in your computer&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3b3b3b;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 11px; font-family: Arial, Helvetica, sans-serif; color: #333333; background-color: #ecf3ea;"&gt;my $line = "show system info";&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Command to run&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3b3b3b;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 11px; font-family: Arial, Helvetica, sans-serif; color: #333333; background-color: #ecf3ea;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3b3b3b;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 11px; font-family: Arial, Helvetica, sans-serif; color: #333333; background-color: #ecf3ea;"&gt;open CLI, " | $cmd ";&lt;/SPAN&gt;&lt;SPAN style="line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Executing the external command, in this case SSH login, you cand find more info in the following link but I prefer to use the backstiks &lt;A class="loading" href="http://www.perlhowto.com/executing_external_commands" title="http://www.perlhowto.com/executing_external_commands"&gt;http://www.perlhowto.com/executing_external_commands&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3b3b3b;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 11px; font-family: Arial, Helvetica, sans-serif; color: #333333; background-color: #ecf3ea;"&gt;print CLI "$line\n";&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # you have the CLI opened so you just put the command there and print it&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3b3b3b;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 11px; font-family: Arial, Helvetica, sans-serif; color: #333333; background-color: #ecf3ea;"&gt;close CLI;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # you close the SSH external session&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="kwd" style="color: #00008b; background: transparent;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="kwd" style="color: #00008b; background: transparent;"&gt;You have a lot of ways to put this working, you can use the Net:SSH module &lt;A class="loading" href="http://search.cpan.org/~schwigon/Net-SSH-Perl-1.37/lib/Net/SSH/Perl.pm" title="http://search.cpan.org/~schwigon/Net-SSH-Perl-1.37/lib/Net/SSH/Perl.pm"&gt;http://search.cpan.org/~schwigon/Net-SSH-Perl-1.37/lib/Net/SSH/Perl.pm&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="kwd" style="color: #00008b; background: transparent;"&gt;And create an script like this one:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="sh_keyword"&gt;use&lt;/SPAN&gt; Net&lt;SPAN class="sh_symbol"&gt;::&lt;/SPAN&gt;SSH&lt;SPAN class="sh_symbol"&gt;::&lt;/SPAN&gt;Perl&lt;SPAN class="sh_symbol"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Loading the SSH module&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="sh_symbol"&gt;&lt;CODE style="font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; background-position: initial;"&gt;&lt;SPAN class="kwd" style="color: #00008b; background: transparent;"&gt;my&lt;/SPAN&gt;&lt;SPAN class="pln" style="background: transparent;"&gt; $cmd &lt;/SPAN&gt;&lt;SPAN class="pun" style="background: transparent;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="pln" style="background: transparent;"&gt; shift&lt;/SPAN&gt;&lt;SPAN class="pun" style="background: transparent;"&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #command to execute&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="sh_keyword"&gt;my&lt;/SPAN&gt; &lt;SPAN class="sh_variable"&gt;$ssh&lt;/SPAN&gt; &lt;SPAN class="sh_symbol"&gt;=&lt;/SPAN&gt; Net&lt;SPAN class="sh_symbol"&gt;::&lt;/SPAN&gt;SSH&lt;SPAN class="sh_symbol"&gt;::&lt;/SPAN&gt;Perl&lt;SPAN class="sh_symbol"&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN class="sh_function"&gt;new&lt;/SPAN&gt;&lt;SPAN class="sh_symbol"&gt;(&lt;/SPAN&gt;&lt;SPAN class="sh_variable"&gt;$host&lt;/SPAN&gt;&lt;SPAN class="sh_symbol"&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #opening the SSH session&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="sh_variable"&gt;$ssh&lt;/SPAN&gt;&lt;SPAN class="sh_symbol"&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN class="sh_function"&gt;login&lt;/SPAN&gt;&lt;SPAN class="sh_symbol"&gt;(&lt;/SPAN&gt;&lt;SPAN class="sh_variable"&gt;$user&lt;/SPAN&gt;&lt;SPAN class="sh_symbol"&gt;,&lt;/SPAN&gt; &lt;SPAN class="sh_variable"&gt;$pass&lt;/SPAN&gt;&lt;SPAN class="sh_symbol"&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #login into the session&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="sh_keyword"&gt;my&lt;/SPAN&gt;&lt;SPAN class="sh_symbol"&gt;(&lt;/SPAN&gt;&lt;SPAN class="sh_variable"&gt;$stdout&lt;/SPAN&gt;&lt;SPAN class="sh_symbol"&gt;,&lt;/SPAN&gt; &lt;SPAN class="sh_variable"&gt;$stderr&lt;/SPAN&gt;&lt;SPAN class="sh_symbol"&gt;,&lt;/SPAN&gt; &lt;SPAN class="sh_variable"&gt;$exit&lt;/SPAN&gt;&lt;SPAN class="sh_symbol"&gt;)&lt;/SPAN&gt; &lt;SPAN class="sh_symbol"&gt;=&lt;/SPAN&gt; &lt;SPAN class="sh_variable"&gt;$ssh&lt;/SPAN&gt;&lt;SPAN class="sh_symbol"&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN class="sh_function"&gt;cmd&lt;/SPAN&gt;&lt;SPAN class="sh_symbol"&gt;(&lt;/SPAN&gt;&lt;SPAN class="sh_variable"&gt;$cmd&lt;/SPAN&gt;&lt;SPAN class="sh_symbol"&gt;);&amp;nbsp;&amp;nbsp; # the output will be saved in the $stdout varaible&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="sh_symbol"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #00008b;"&gt;If your script is working may be you can try&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #00008b;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="sh_symbol"&gt;&lt;SPAN&gt;&lt;SPAN style="color: #00008b; font-size: 11px; background-color: #ecf3ea; font-family: Arial, Helvetica, sans-serif;"&gt;@output = &lt;/SPAN&gt;&lt;SPAN style="color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 11px; background-color: #ecf3ea;"&gt;print CLI "$line\n";&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # @ indicates it's an array&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="kwd" style="color: #00008b; background: transparent;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="kwd" style="color: #00008b; background: transparent;"&gt;Also the easiest one is that you already set up SSH keys betwen the PA FW and your script machine. &lt;A class="loading" href="https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2" title="https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2"&gt;https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="kwd" style="color: #00008b; background: transparent;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;CODE style="font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; background-position: initial;"&gt;&lt;SPAN class="kwd" style="color: #00008b; background: transparent;"&gt;my&lt;/SPAN&gt;&lt;SPAN class="pln" style="background: transparent;"&gt; &lt;/SPAN&gt;&lt;SPAN class="lit" style="color: #800000; background: transparent;"&gt;@output&lt;/SPAN&gt;&lt;SPAN class="pln" style="background: transparent;"&gt; &lt;/SPAN&gt;&lt;SPAN class="pun" style="background: transparent;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="pln" style="background: transparent;"&gt; &lt;/SPAN&gt;&lt;SPAN class="str" style="color: #800000; background: transparent;"&gt;`ssh root@1.1.1.1 "which perl"`&lt;/SPAN&gt;&lt;SPAN class="pun" style="background: transparent;"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="pun" style="background: transparent;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="pun" style="background: transparent;"&gt;There is more info in the next link &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="pun" style="background: transparent;"&gt;&lt;A class="loading" href="http://stackoverflow.com/questions/2848725/how-can-i-ssh-inside-a-perl-script" title="http://stackoverflow.com/questions/2848725/how-can-i-ssh-inside-a-perl-script"&gt;http://stackoverflow.com/questions/2848725/how-can-i-ssh-inside-a-perl-script&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 22 Sep 2014 22:54:37 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9888#M266</guid>
      <dc:creator>GLastra</dc:creator>
      <dc:date>2014-09-22T22:54:37Z</dc:date>
    </item>
    <item>
      <title>Re: Perl Scripting to FW</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9889#M267</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You need two pipes one for input and one for output, this document goes over using pipes in Perl,&lt;/P&gt;&lt;P&gt;&lt;A href="http://docstore.mik.ua/orelly/perl2/prog/ch16_03.htm" title="http://docstore.mik.ua/orelly/perl2/prog/ch16_03.htm"&gt;Pipes (Programming Perl)&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;In the example CLI is a unidirectional pipe so the output will need to be returned through another pipe.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;The example below will not work to get data back,&lt;/P&gt;&lt;P&gt;@output = print CLI "$line\n"; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This example uses two pipes, it does require an extra library and you may have problems with line buffering. &lt;/P&gt;&lt;P&gt;use IPC::Open2;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;open2(\*INPUT, \*OUTPUT, 'ssh ssh\@firewall');&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;print OUTPUT "show system info";&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;foreach $line (&amp;lt;INPUT&amp;gt;) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;print "$line";&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;close INPUT;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;close OUTPUT;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 23 Sep 2014 22:08:42 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9889#M267</guid>
      <dc:creator>lcurtis</dc:creator>
      <dc:date>2014-09-23T22:08:42Z</dc:date>
    </item>
    <item>
      <title>Re: Perl Scripting to FW</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9890#M268</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Neither methods seem to work with the palo alto.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;They just hang after I enter my password...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was able find the PAN::CLI module and was able to issue operation commands successfully.&amp;nbsp; However it seems to be one lined commands and very restrictive in what I can do.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I opened the PAN::CLI file and it uses the expect module to do most of it's work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can't follow it beyond that.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I just basically need a perl script example, that gets me to the basic point of working.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 24 Sep 2014 21:18:40 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9890#M268</guid>
      <dc:creator>zyang</dc:creator>
      <dc:date>2014-09-24T21:18:40Z</dc:date>
    </item>
    <item>
      <title>Re: Perl Scripting to FW</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9891#M269</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #3b3b3b; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;After doing some further reading I believe that &lt;/SPAN&gt;&lt;SPAN style="color: #3b3b3b; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;you are having problems with line buffering as ssh doesn't auto flush the buffer. &lt;/SPAN&gt;&lt;SPAN style="color: #3b3b3b; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3b3b3b; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;I found this doc, &lt;A href="https://live.paloaltonetworks.com/docs/DOC-1910"&gt;PAN-perl: command line and Perl interface to PAN-OS XML API and CLI&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3b3b3b; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;I am working on reading through it now, it appears to cover &lt;SPAN style="color: #3b3b3b; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;aml api accesses to the PA also.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3b3b3b; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3b3b3b; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3b3b3b; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Sep 2014 16:47:40 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9891#M269</guid>
      <dc:creator>lcurtis</dc:creator>
      <dc:date>2014-09-26T16:47:40Z</dc:date>
    </item>
    <item>
      <title>Re: Perl Scripting to FW</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9892#M270</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I was able to use the pancli tool that is part of PAN-perl-20121110.tar.gz&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://live.paloaltonetworks.com/docs/DOC-1910" title="https://live.paloaltonetworks.com/docs/DOC-1910"&gt;https://live.paloaltonetworks.com/docs/DOC-1910&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pancli lets you run a command on the PA and returns the output. I was able to make it work with only one pipe and it does not require buffer auto flushing. I wrote and tested the script on Debian 7 and I had to install the following library s,&lt;/P&gt;&lt;P&gt;libjson-perl&lt;/P&gt;&lt;P&gt;libexpect-perl&lt;/P&gt;&lt;P&gt;libxml-simple-perl&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The README file in PAN-perl-20121110.tar.gz covers the installation&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#!/usr/bin/perl&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;use strict;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#&lt;/P&gt;&lt;P&gt;# run command on PA using "pancli"&lt;/P&gt;&lt;P&gt;# pancli is part of PAN-perl-20121110.tar.gz, found at&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;# &lt;/SPAN&gt;&lt;A _jive_internal="true" data-containerid="2010" data-containertype="14" data-objectid="1910" data-objecttype="102" href="https://live.paloaltonetworks.com/docs/DOC-1910"&gt;https://live.paloaltonetworks.com/docs/DOC-1910&lt;/A&gt;&lt;/P&gt;&lt;P&gt;# the script runs the "show system info"print out each&lt;/P&gt;&lt;P&gt;# then prints each line&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;my $pa_cmd = "show system info";&lt;/P&gt;&lt;P&gt;my $raw_system_info;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;# run command and catch returned data&lt;/P&gt;&lt;P&gt;$raw_system_info = pa_ctl($pa_cmd);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;# send system data to be printed&lt;/P&gt;&lt;P&gt;display_system_info($raw_system_info);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sub pa_ctl {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; my $opperation = shift;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; my $cmd = 'pancli -l user:password -h 172.20.2.1';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; my $line;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; my $system_data;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; my @data;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; # pipe $opperation through pancli&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; open PAN, "$cmd \"$opperation\" |";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; foreach $line (&amp;lt;PAN&amp;gt;) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; chomp $line;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; push @data, $line;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; close PAN;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $system_data = join ",", @data;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; return $system_data;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;sub display_system_info {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; my $info = shift;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; my $i = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; my $line;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; my $num_lines;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; my @system_info;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; @system_info = split ",", $info;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $num_lines = @system_info;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; print "$num_lines lines of output\n";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; # print line number and line of info&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; foreach $line (@system_info) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "$i :-: $line\n";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $i++;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 28 Sep 2014 03:47:31 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9892#M270</guid>
      <dc:creator>lcurtis</dc:creator>
      <dc:date>2014-09-28T03:47:31Z</dc:date>
    </item>
    <item>
      <title>Re: Perl Scripting to FW</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9893#M271</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;pancli is a wrapper around PAN::CLI and the CLI_operational_mode_exec() method.&amp;nbsp; for documentation use 'perldoc CLI.pm'&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 30 Sep 2014 21:46:10 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9893#M271</guid>
      <dc:creator>ksteves1</dc:creator>
      <dc:date>2014-09-30T21:46:10Z</dc:date>
    </item>
    <item>
      <title>Re: Perl Scripting to FW</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9894#M272</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I was able to use PAN:CLI to do one operational command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What I need to do is run multiple commands and save output to a file or variable.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;For example, I want all the shared addresses, address-groups, pre-rulebase security rules, etc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That would require going into configure mode, running "show shared address", "show shared address-group", etc&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Unfortunately, none of the scripts allow me to do that.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So far the only thing I've been able to do is use your first script but add the commands into an array.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#!/usr/bin/perl&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;use strict;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;my $cmd = "ssh user\@192.168.1.1";&lt;/P&gt;&lt;P&gt;my $line = "show system info";&lt;/P&gt;&lt;P&gt;my @cli;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;push(@cli, "set cli config-output-format set\n");&lt;/P&gt;&lt;P&gt;push(@cli, "configure\n");&lt;/P&gt;&lt;P&gt;push(@cli, "show shared address\n");&lt;/P&gt;&lt;P&gt;push(@cli, "show shared address-group\n");&lt;/P&gt;&lt;P&gt;push(@cli, "show shared pre-rulebase security\n");&lt;/P&gt;&lt;P&gt;push(@cli, "exit\n");&lt;/P&gt;&lt;P&gt;push(@cli, "exit\n");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;open CLI, " | $cmd ";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;print CLI @cli;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;close CLI;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, it doesn't allow me for further manipulation.&amp;nbsp; I have to copy the contents and paste into a new file.&amp;nbsp; Which can be tedious.&amp;nbsp; It would be nice to have a script that can do that.&amp;nbsp; It doesn't have to be perl.&amp;nbsp; I would learn python if there is an easy way to ssh and run those commands all in session and be able to manipulate them in the end.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 01 Oct 2014 14:31:25 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9894#M272</guid>
      <dc:creator>zyang</dc:creator>
      <dc:date>2014-10-01T14:31:25Z</dc:date>
    </item>
    <item>
      <title>Re: Perl Scripting to FW</title>
      <link>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9895#M273</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;this may be useful for what you are doing:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="https://github.com/kevinsteves/pan-python/blob/master/doc/panconf.rst" rel="nofollow"&gt;https://github.com/kevinsteves/pan-python/blob/master/doc/panconf.rst&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Oct 2014 23:22:37 GMT</pubDate>
      <guid>https://live.paloaltonetworks.com/t5/automation-api-discussions/perl-scripting-to-fw/m-p/9895#M273</guid>
      <dc:creator>ksteves1</dc:creator>
      <dc:date>2014-10-22T23:22:37Z</dc:date>
    </item>
  </channel>
</rss>

