1 Introduction to Perl and Perl Syntax Learning Perl, Schwartz.
Nubilus Perl
-
Upload
flavio-poletti -
Category
Technology
-
view
540 -
download
1
description
Transcript of Nubilus Perl
![Page 1: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/1.jpg)
Nubilus PerlLibrerie Perl in the cloud
![Page 2: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/2.jpg)
IaaS - PaaS - SaaS
2
![Page 3: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/3.jpg)
IaaS - PaaS - SaaS2
![Page 4: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/4.jpg)
Amazon
![Page 5: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/5.jpg)
require Net::Amazon::EC2;my $ec2 = Net::Amazon::EC2->new( AWSAccessKeyId => 'YOUR-AWS-KEY', SecretAccessKey => 'YOUR-AWS-SECRET',);
![Page 6: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/6.jpg)
require Net::Amazon::EC2;my $ec2 = Net::Amazon::EC2->new( AWSAccessKeyId => 'YOUR-AWS-KEY', SecretAccessKey => 'YOUR-AWS-SECRET',);
![Page 7: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/7.jpg)
![Page 8: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/8.jpg)
my $res = $ec2->run_instances( ImageId => 'ami-8c1fece5', MinCount => 1, MaxCount => 1, SecurityGroup => 'quick-start-1', InstanceType => 'm1.small',);
![Page 9: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/9.jpg)
Instance
![Page 10: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/10.jpg)
my $res = $ec2->run_instances( ImageId => 'ami-8c1fece5', MinCount => 1, MaxCount => 1, SecurityGroup => 'quick-start-1', InstanceType => 'm1.small',);
![Page 11: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/11.jpg)
Instance
![Page 12: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/12.jpg)
Image Instance
![Page 13: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/13.jpg)
#!/usr/bin/env perl use strict;use warnings;use 5.012;
my $message = shift || 'whatever!';while ('necessary') { say $message; sleep 1;}
10715 gnome-terminal10719 \_ gnome-pty-helper10720 \_ bash24910 \_ bash32549 \_ bash27438 | \_ perl prg.pl27444 \_ bash27462 | \_ perl prg.pl hey you!27463 \_ bash27480 | \_ perl prg.pl another
Image Instance
![Page 14: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/14.jpg)
my $res = $ec2->run_instances( ImageId => 'ami-8c1fece5', MinCount => 1, MaxCount => 1, SecurityGroup => 'quick-start-1', InstanceType => 'm1.small',);
![Page 15: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/15.jpg)
#!/usr/bin/env perl use strict;use warnings;use 5.012;
my $message = shift || 'whatever!';while ('necessary') { say $message; sleep 1;}
10715 gnome-terminal10719 \_ gnome-pty-helper10720 \_ bash24910 \_ bash32549 \_ bash27438 | \_ perl prg.pl27444 \_ bash27462 | \_ perl prg.pl hey you!27463 \_ bash27480 | \_ perl prg.pl another
Image Instance
![Page 16: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/16.jpg)
Image Instance
Type
![Page 17: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/17.jpg)
my $res = $ec2->run_instances( ImageId => 'ami-8c1fece5', MinCount => 1, MaxCount => 1, SecurityGroup => 'quick-start-1', InstanceType => 'm1.small',);
![Page 18: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/18.jpg)
![Page 19: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/19.jpg)
RUNNING_CHECK:while ('necessary') { my $reservations = $ec2->describe_instances() || [];
foreach my $res (@$reservations) { foreach my $instance ($res->instances_set()) { if ($instance->{instance_state}{name} eq 'running') { say 'active, IP: ', $instance->{ip_address}; last RUNNING_CHECK; } } } sleep 1;}
![Page 20: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/20.jpg)
RUNNING_CHECK:while ('necessary') { my $reservations = $ec2->describe_instances() || [];
foreach my $res (@$reservations) { foreach my $instance ($res->instances_set()) { if ($instance->{instance_state}{name} eq 'running') { say 'active, IP: ', $instance->{ip_address}; last RUNNING_CHECK; } } } sleep 1;}
![Page 21: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/21.jpg)
Ora?
![Page 22: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/22.jpg)
Beh... PRIMA...
![Page 23: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/23.jpg)
![Page 24: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/24.jpg)
![Page 25: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/25.jpg)
Sì, SSH
![Page 26: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/26.jpg)
my $res = $ec2->run_instances( ImageId => 'ami-8c1fece5', MinCount => 1, MaxCount => 1, SecurityGroup => 'quick-start-1', InstanceType => 'm1.small',);
RUNNING_CHECK:while ('necessary') { my $reservations = $ec2->describe_instances() || [];
foreach my $res (@$reservations) { #...
my $instance_id = $res->instance_id();
$ec2->terminate_instances( InstanceId => $instance_id,);
![Page 27: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/27.jpg)
my $reservations = $ec2->describe_instances() || [];
foreach my $res (@$reservations) { foreach my $instance ($res->instances_set()) { my $state = $instance->{instance_state}{name}; # ... utilizzare $state... }}
![Page 28: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/28.jpg)
RackSpace
![Page 29: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/29.jpg)
require Net::RackSpace::CloudServers;my $cs = Net::RackSpace::CloudServers->new( user => 'myusername', key => 'mysecretkey', location => 'UK',);
![Page 30: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/30.jpg)
require Net::RackSpace::CloudServers;my $cs = Net::RackSpace::CloudServers->new( user => 'YOUR-CS-USERNAME', key => 'YOUR-CS-SECRETKEY', location => 'UK',);
![Page 31: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/31.jpg)
![Page 32: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/32.jpg)
require Net::RackSpace::CloudServers;my $cs = Net::RackSpace::CloudServers->new( user => 'YOUR-CS-USERNAME', key => 'YOUR-CS-SECRETKEY', location => 'UK',);
![Page 33: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/33.jpg)
![Page 34: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/34.jpg)
my $server = Net::RackSpace::CloudServers::Server->new( cloudservers => $cs, # N::R::CloudServers instance name => 'my-instance', imageid => 4, # Debian 5.0 (lenny) flavorid => 1, # basic server, 256 MB RAM);
![Page 35: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/35.jpg)
Image Instance
Type
![Page 36: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/36.jpg)
Image
Flavor
Server
![Page 37: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/37.jpg)
Ancora niente
![Page 38: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/38.jpg)
my $real_server = $server->create_server();my $root_pass = $real_server->adminpass();
![Page 39: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/39.jpg)
Ora sì
![Page 40: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/40.jpg)
![Page 41: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/41.jpg)
my $id = $real_server->id();
RUNNING_CHECK:while ('necessary') { my $instance = $cs->get_server($id); say 'completion status: ', $server->progress(); if ($server->status eq 'ACTIVE') { say 'active, IP: ', $instance->public_address()->[0]; last RUNNING_CHECK; } sleep 1;}
![Page 42: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/42.jpg)
my $id = $real_server->id();
RUNNING_CHECK:while ('necessary') { my $instance = $cs->get_server($id); say 'completion status: ', $server->progress(); if ($server->status eq 'ACTIVE') { say 'active, IP: ', $instance->public_address()->[0]; last RUNNING_CHECK; } sleep 1;}
![Page 43: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/43.jpg)
Ora?SSH con $root_pass
![Page 44: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/44.jpg)
O anche...
![Page 45: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/45.jpg)
![Page 46: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/46.jpg)
Sì... root passwordvia email
![Page 47: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/47.jpg)
my $server = Net::RackSpace::CloudServers::Server->new( cloudservers => $cs, # N::R::CloudServers instance name => 'my-instance', imageid => 4, # Debian 5.0 (lenny) flavorid => 1, # basic server, 256 MB RAM personality => [ { path => '/root/.ssh/authorized_keys2', contents => <<END_OF_BASE64SUlKckNyZWIxcU5NcGxuS1BIaFBBdFIxL2RMUVJ6SnNzSnNxTWUwRENlbXp5NlVMZ0g3Uy9seWZU...anExQWhSaE1zK0FHaDZDL01aV1N4QStZNmhqd2wwMFozSVl1R3AgaW1wb3J0ZWQtb3BlbnNzaC1rZXkK
END_OF_BASE64 }, ],);
![Page 48: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/48.jpg)
Chiave SSH
![Page 49: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/49.jpg)
$real_server->delete();
![Page 50: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/50.jpg)
Adieu
![Page 51: Nubilus Perl](https://reader033.fdocuments.net/reader033/viewer/2022052411/55795b61d8b42ab6648b4ed1/html5/thumbnails/51.jpg)
46