Net-FullAuto

 view release on metacpan or  search on metacpan

lib/Net/FullAuto/ISets/Amazon/Jenkins_is.pm  view on Meta::CPAN

   ($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(
      'sudo yum -y install openssl-devel icu cyrus-sasl'.
      ' libicu cyrus-sasl-devel libtool-ltdl-devel',
      '__display__');
   ($stdout,$stderr)=$handle->cmd("sudo yum -y -v install java-1.8.0",
      '__display__');
   ($stdout,$stderr)=$handle->cmd("sudo yum -y -v remove java-1.7.0-openjdk",
      '__display__');
   ($stdout,$stderr)=$handle->cmd('sudo '.
      'yum -y -v install tomcat8 tomcat8-webapps tomcat8-admin-webapps '.
      'tomcat8-docs-webapp tomcat8-javadoc',
      '__display__');
   my $source='http://mirrors.jenkins.io/war-stable/latest/jenkins.war';
   ($stdout,$stderr)=$handle->cmd(
       "wget --random-wait --progress=dot $source",'__display__');
   my $install_jenkins=<<'END';




          o o    o .oPYo. ooooo    .oo o     o     o o    o .oPYo.
          8 8b   8 8        8     .P 8 8     8     8 8b   8 8    8
          8 8`b  8 `Yooo.   8    .P  8 8     8     8 8`b  8 8
          8 8 `b 8     `8   8   oPooo8 8     8     8 8 `b 8 8   oo
          8 8  `b8      8   8  .P    8 8     8     8 8  `b8 8    8
          8 8   `8 `YooP'   8 .P     8 8oooo 8oooo 8 8   `8 `YooP8
          ........................................................
          ::::::::::::::::::::::::::::::::::::::::::::::::::::::::

                          http://www.jenkins.io    

                       _            _    _
                      | | ___ _ __ | | _(_)_ __  ___
                   _  | |/ _ \ '_ \| |/ / | '_ \/ __|
                  | |_| |  __/ | | |   <| | | | \__ \
                   \___/ \___|_| |_|_|\_\_|_| |_|___/


         (Jenkins® is **NOT** a sponsor of the FullAuto© Project.)

END
   print $install_jenkins;sleep 10;
   ($stdout,$stderr)=$handle->cmd("sudo yum -y update",'__display__');
   my $master=$main::aws->{$server_type}->[$cnt]->[0]->{InstanceId};
   my $c="aws ec2 describe-instances --instance-ids $master 2>&1";
   my ($hash,$output,$error)=('','','');
   ($hash,$output,$error)=run_aws_cmd($c);
   my $mdns=$hash->{Reservations}->[0]->{Instances}->[0]->{PublicDnsName};
   my $pbip=$hash->{Reservations}->[0]->{Instances}->[0]->{PublicIpAddress};
   my $dcnt=0;
   my $extn='';
   ($stdout,$stderr)=$handle->cmd('sudo '.
      'mv ~/jenkins.war /var/lib/tomcat8/webapps');
   ($stdout,$stderr)=$handle->cwd('/usr/share/tomcat8');
   ($stdout,$stderr)=$handle->cmd('sudo mkdir .jenkins');
   ($stdout,$stderr)=$handle->cmd('sudo chown -Rv tomcat:tomcat .jenkins',
      '__display__');
   ($stdout,$stderr)=$handle->cmd('sudo chown -Rv tomcat:tomcat *',
      '__display__');
   ($stdout,$stderr)=$handle->cmd('sudo service tomcat8 start','__display__');
   $handle->{_cmd_handle}->print('sudo '.
      'tail -f /usr/share/tomcat8/logs/catalina.out');
   my $prompt=substr($handle->{_cmd_handle}->prompt(),1,-1);
   my $adminpass='';my $allout='';
   while (1) {
      my $output=Net::FullAuto::FA_Core::fetch($handle);
      last if $output=~/$prompt/;
      print $output;
      $allout.=$output;
      if ($allout=~
            /^.*password to proceed to installation:\s+(.*?)\s+This.*$/s) {
         $adminpass=$1;
      }
      if ($allout=~/Finished/s) {
         sleep 5;
         $handle->{_cmd_handle}->print("\003");
         last;
      }
   }
   $handle->clean_filehandle();
   ($stdout,$stderr)=$handle->cmd('hostname');
   my $cmd='wget -d -qO- '.
      '-e robots=off '.
      '--cookies=on --keep-session-cookies '.
      '--save-cookies cookies.txt '.
      '--header="Upgrade-Insecure-Requests: 1" '.
      '--header="DNT: 1" http://'.$pbip.':8080/jenkins';
print "BEGIN_CMD=$cmd\n";
   ($stdout,$stderr)=$handle->cmd($cmd);
print "BEGIN_STDOUT=$stdout<== and BEGIN_STDERR=$stderr<==\n\n\n\n\n";
   my $session=$stdout;
   $stdout=~s/^.*(JSESSIONID=.*?);.*/$1/s;
   my $cookies=$stdout;
   $session=~s/^.*X-Jenkins-Session: (.*?)\n.*$/$1/s;
   $cmd='sudo wget -d -qO- --content-on-error '.
      '--random-wait --wait=3 '.
      '--cookies=on --keep-session-cookies '.
      '--load-cookies cookies.txt '.
      '--save-cookies cookies.txt '.
      '--header="Accept: text/html,application/xhtml+xml,application/xml;'.
      'q=0.9,*/*;q=0.8" '.
      '--header="User-Agent: Mozilla/5.0 '.
      '(Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0" '.
      '--header="DNT: 1" '.
      '--header="Upgrade-Insecure-Requests: 1" '.
      '--header="Referer: http://'.$pbip.':8080/jenkins/" '.
      'http://'.$pbip.':8080/jenkins/login?from=%2Fjenkins%2F';
print "SESSION=$session\n";
print "LOGIN_CMD=$cmd\n";
   ($stdout,$stderr)=$handle->cmd($cmd);
print "LOGIN_STDOUT=$stdout<========= and LOGIN_STDERR=$stderr<=========\n\n\n\n\n";
   $cookies=$stderr;
   $cookies=~s/^.*(JSESSIONID=.*?);.*$/$1/s;
print "COOKIE=$cookies<==\n";
   $stdout=~s/^.*Jenkins-Crumb", "(.*?)"[)].*$/$1/s;
   my $jenkins_crumb=$stdout;
print "CRUMB=$jenkins_crumb<==\n";
   my @files=(



( run in 0.597 second using v1.01-cache-2.11-cpan-71847e10f99 )