|
From: Keith C. <kei...@ya...> - 2012-07-09 20:55:06
|
Sent from my iPad
On Jul 9, 2012, at 3:42 PM, Atahualpa Ledesma <ata...@gm...> wrote:
> I'm trying to automate something using Perl and Expect.pm using a virtual serial port on an HP server using ILO3, but somehow when i try to start a virtual console from Expect created pty, it just freezes there, and doesn't start, but if i do it manually via ssh then it works, i think it is an stty/pty issue but i don't know where to start debugging this.
>
> This is a simpler version of what i am doing:
>
> #!/usr/bin/perl
> use strict;
> use warnings;
> use Expect;
>
> my $iloip = "1.2.3.4"; # IP changed to protect the guilty
> my $ilouser = "Administrator";
> my $ilopswd = "mypass"; #same
> my $osuser = "admin";
> my $ospassword = "SecurePassword!"; #same
>
> my $expect = Expect->new();
> $expect->log_stdout(1); #debug
> $expect->exp_internal(1); #debug
> $expect->spawn("ssh $ilouser\@$iloip");
> $expect->expect(10, "ssword:");
> $expect->send("$ilopswd\n");
> $expect->expect(10, "iLO->");
> $expect->send("vsp\n");
> $expect->expect(20, "login:");
> .....
>
> After issuing the vsp command, i should get a login prompt ( on the server there is a console configuration on /etc/inittab using agetty [co:2345:respawn:/sbin/agetty ttyS0 115200 vt102] ) but nothing happens.
>
> If i do the same commands on a manually initiated ssh session then it works correctly
>
> Example:
>
> Script output:
>
> [dev@dev-ipdr-01 standalone]$ perl rconsole.pl
> Spawned 'ssh Administrator@1.2.3.4'
> spawn id(3)
> Pid: 27108
> Tty: /dev/pts/0
> at /usr/share/perl5/vendor_perl/Expect.pm line 181
> Expect::spawn('Expect=GLOB(0x19ad360)', 'ssh Administrator@1.2.3.4') called at rconsole.pl line 15
> Starting EXPECT pattern matching...
> at /usr/share/perl5/vendor_perl/Expect.pm line 561
> Expect::expect('Expect=GLOB(0x19ad360)', 10, 'ssword:') called at rconsole.pl line 16
> spawn id(3): list of patterns:
> #1: -ex `ssword:'
>
> spawn id(3): Does `'
> match:
> pattern #1: -ex `ssword:'? No.
>
> Administrator@1.2.3.4's password:
> spawn id(3): Does `Administrator@1.2.3.4\'s password: '
> match:
> pattern #1: -ex `ssword:'? YES!!
> Before match string: `Administrator@1.2.3.4\'s pa'
> Match string: `ssword:'
> After match string: ` '
> Matchlist: ()
> Sending 'mypass\n' to spawn id(3)
> at /usr/share/perl5/vendor_perl/Expect.pm line 1264
> Expect::print('Expect=GLOB(0x19ad360)', 'mypass!\x{a}') called at rconsole.pl line 17
> Starting EXPECT pattern matching...
> at /usr/share/perl5/vendor_perl/Expect.pm line 561
> Expect::expect('Expect=GLOB(0x19ad360)', 10, 'iLO->') called at rconsole.pl line 18
> spawn id(3): list of patterns:
> #1: -ex `iLO->'
>
> spawn id(3): Does ` '
> match:
> pattern #1: -ex `iLO->'? No.
>
> spawn id(3): Does ` \r\n'
> match:
> pattern #1: -ex `iLO->'? No.
>
> User:Administrator logged-in to
> spawn id(3): Does ` \r\nUser:Administrator logged-in to '
> match:
> pattern #1: -ex `iLO->'? No.
>
> ilo1.solutions.net(1.2.3.4)
> iLO 3 Advanced 1.28 at Jan 13 2012
> Server Name: FOOBAR
> Server Power: On
>
> </>hpiLO->
> spawn id(3): Does ` \r\nUser:Administrator logged-in to ilo1.solutions.net(1.2.3.4)\r\niLO 3 Advanced 1.28 at Jan 13 2012\r\nServer Name: FOOBAR\r\nServer Power: On\r\n\n</>hpiLO-> '
> match:
> pattern #1: -ex `iLO->'? YES!!
> Before match string: ` \r\nUser:Administrator logged-in to ilo1.solutions.net(1.2.3.4)\r\niLO 3 Advanced 1.28 at Jan 13 2012\r\nServer Name: FOOBAR\r\nServer Power: On\r\n\n</>hp'
> Match string: `iLO->'
> After match string: ` '
> Matchlist: ()
> Sending 'vsp\n' to spawn id(3)
> at /usr/share/perl5/vendor_perl/Expect.pm line 1264
> Expect::print('Expect=GLOB(0x19ad360)', 'vsp\x{a}') called at rconsole.pl line 19
> Starting EXPECT pattern matching...
> at /usr/share/perl5/vendor_perl/Expect.pm line 561
> Expect::expect('Expect=GLOB(0x19ad360)', 20, 'login:') called at rconsole.pl line 20
> spawn id(3): list of patterns:
> #1: -ex `login:'
>
>
> spawn id(3): Does ` '
> match:
> pattern #1: -ex `login:'? No.
>
> vsp
>
> spawn id(3): Does ` vsp\n'
> match:
> pattern #1: -ex `login:'? No.
>
> [dev@dev-ipdr-01 standalone]$
>
>
> Now this is the output of a manual ssh connection:
>
> dev@dev-ipdr-01 standalone]$ ssh Administrator@1.2.3.4
> Administrator@10.2.3.4's password:
> User:Administrator logged-in to ilo1.solutions.net(1.2.3.4)
> iLO 3 Advanced 1.28 at Jan 13 2012
> Server Name: FOOBAR
> Server Power: On
>
> </>hpiLO-> vsp
>
> Virtual Serial Port Active: COM1
>
> Starting virtual serial port.
> Press 'ESC (' to return to the CLI Session.
>
>
>
> foobar.foo.myboxen.lan login:
>
>
> -END-
>
> I tried to see the stty options on the ssh connection's pty and the Expect spawn'ed pty:
>
> SSH PTY:
>
> [dev@dev-ipdr-01 ~]$ stty -F /dev/pts/2
> speed 38400 baud; line = 0;
> eol = M-^?; eol2 = M-^?; lnext = <undef>; min = 1; time = 0;
> -icrnl
> -icanon -echo
>
> EXPECT IO::Pty PTY:
>
> [dev@dev-ipdr-01 ~]$ stty -F /dev/pts/0
> speed 38400 baud; line = 0;
> min = 1; time = 0;
> -brkint -icrnl -imaxbel
> -opost
> -isig -icanon -iexten -echo -echoe -echok
>
>
>
> How can i debug this? Is there anyway to see if there is something in the pty settings that ILO is setting up?
>
>
>
> --
> --------------------------------------------------
> Atahualpa Ledesma
> Redhat Certified Engineer
> Oracle Certified Professional 9i
> Unix/Linux/Oracle Consultant
> ata...@gm...
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> Expectperl-discuss mailing list
> Exp...@li...
> https://lists.sourceforge.net/lists/listinfo/expectperl-discuss |