Net-FullAuto
view release on metacpan or search on metacpan
lib/Net/FullAuto/ISets/Local/FullAutoAPI_is.pm view on Meta::CPAN
package Net::FullAuto::ISets::Local::FullAutoAPI_is;
### OPEN SOURCE LICENSE - GNU AFFERO PUBLIC LICENSE Version 3.0 #######
#
# Net::FullAuto - Powerful Network Process Automation Software
# Copyright © 2000-2025 Brian M. Kelly
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or any later version.
#
# This program is distributed in the hope that it will be useful,
# but **WITHOUT ANY WARRANTY**; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License along with this program. If not, see:
# <http://www.gnu.org/licenses/agpl.html>.
#
#######################################################################
our $VERSION='0.01';
our $DISPLAY='FullAuto RESTful API Server';
our $CONNECT='secure';
our $defaultInstanceType='t2.small';
use 5.005;
use strict;
use warnings;
my $service_and_cert_password='Full@ut0O1';
require Exporter;
our @ISA = qw(Exporter);
our @EXPORT = qw($select_fullautoapi_setup);
use Net::FullAuto::Cloud::fa_amazon;
use Net::FullAuto::FA_Core qw[$localhost cleanup fetch clean_filehandle];
use Time::Local;
use File::HomeDir;
my $home_dir=File::HomeDir->my_home;
$home_dir||=$ENV{'HOME'}||'';
$home_dir.='/';
my $username=getlogin || getpwuid($<);
my $do;my $ad;my $prompt;my $public_ip='';
my $builddir='';my @ls_tmp=();
my $avail_port='';
my $configure_fullautoapi=sub {
my $selection=$_[0]||'';
my $service_and_cert_password=$_[1]||'';
my $domain_url=$_[2]||'';
my ($stdout,$stderr)=('','');
my $handle=connect_shell();my $connect_error='';
$handle->cwd('~');
my $userhome=$handle->cmd('pwd');
my $sudo=($^O eq 'cygwin')?'':'sudo ';
my $security_group='FullAutoAPISecurityGroup';
($stdout,$stderr)=setup_aws_security(
$security_group,'FullAutoAPI Security Group');
my $c='aws ec2 describe-security-groups '.
"--group-names $security_group";
my ($hash,$output,$error)=('','','');
($hash,$output,$error)=run_aws_cmd($c);
my $cidr=$hash->{SecurityGroups}->[0]->{IpPermissions}
->[0]->{IpRanges}->[0]->{CidrIp};
$c='aws ec2 authorize-security-group-ingress '.
"--group-name $security_group --protocol ".
'tcp --port 80 --cidr '.$cidr." 2>&1";
($hash,$output,$error)=run_aws_cmd($c);
$c='aws ec2 authorize-security-group-ingress '.
"--group-name $security_group --protocol ".
'tcp --port 443 --cidr '.$cidr." 2>&1";
$c='aws ec2 authorize-security-group-ingress '.
"--group-name $security_group --protocol ".
'tcp --port 11211 --cidr '.$cidr." 2>&1";
($hash,$output,$error)=run_aws_cmd($c);
$c='aws ec2 authorize-security-group-ingress '.
"--group-name $security_group --protocol ".
'tcp --port 3000 --cidr '.$cidr." 2>&1";
($hash,$output,$error)=run_aws_cmd($c);
($stdout,$stderr)=$handle->cmd($sudo."perl -e \'use CPAN;".
"CPAN::HandleConfig-\>load;print \$CPAN::Config-\>{build_dir}\'");
$builddir=$stdout;
my $fa_ver=$Net::FullAuto::VERSION;
($stdout,$stderr)=$handle->cmd($sudo.
"ls -1t $builddir | grep Net-FullAuto-$fa_ver");
my @lstmp=split /\n/,$stdout;
foreach my $line (@lstmp) {
unshift @ls_tmp, $line if $line!~/\.yml$/;
}
$do=1;
if ($do==1) {
unless ($^O eq 'cygwin') {
($stdout,$stderr)=$handle->cmd($sudo.
"chmod -v 755 ~",'__display__');
($stdout,$stderr)=$handle->cmd("sudo yum clean all");
($stdout,$stderr)=$handle->cmd("sudo yum grouplist hidden");
($stdout,$stderr)=$handle->cmd("sudo yum groups mark convert");
($stdout,$stderr)=$handle->cmd(
"sudo yum -y groupinstall 'Development tools'",'__display__');
($stdout,$stderr)=$handle->cmd(
( run in 0.931 second using v1.01-cache-2.11-cpan-39bf76dae61 )