Changeset 427 for devel/pb/bin/pb


Ignore:
Timestamp:
05/07/08 17:20:25 (5 years ago)
Author:
bruno
Message:

Improve setupv to use pb functions and setup the pb account ssh env correctly now when reusing the VMs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • devel/pb/bin/pb

    r423 r427  
    13291329use File::Copy; 
    13301330 
     1331our $debug; 
     1332our $LOG; 
     1333our $synmsg = "pbscript"; 
     1334pb_log_init($debug, $LOG); 
     1335pb_temp_init(); 
     1336 
    13311337EOF 
    13321338    if ($vtype eq "vm") { 
     
    13701376if ( $found == 0 ) { 
    13711377    if ( ! -d "/home" ) { 
    1372         mkdir "/home"; 
     1378        pb_mkdir("/home"); 
    13731379    } 
    13741380EOF 
    13751381    print SCRIPT << "EOF"; 
    1376 system "groupadd $pbac->{$ENV{'PBPROJ'}}"; 
    1377 system "useradd $pbac->{$ENV{'PBPROJ'}} -g $pbac->{$ENV{'PBPROJ'}} -m -d /home/$pbac->{$ENV{'PBPROJ'}}"; 
     1382pb_system("groupadd $pbac->{$ENV{'PBPROJ'}}","Adding group $pbac->{$ENV{'PBPROJ'}}"); 
     1383pb_system("useradd $pbac->{$ENV{'PBPROJ'}} -g $pbac->{$ENV{'PBPROJ'}} -m -d /home/$pbac->{$ENV{'PBPROJ'}}","Adding user $pbac->{$ENV{'PBPROJ'}} (group $pbac->{$ENV{'PBPROJ'}} - home /home/$pbac->{$ENV{'PBPROJ'}}"); 
     1384} 
    13781385 
    13791386# allow ssh entry to build 
    13801387# 
    1381 chdir "/home/$pbac->{$ENV{'PBPROJ'}}"; 
    1382 mkdir ".ssh",0700; 
     1388mkdir "/home/$pbac->{$ENV{'PBPROJ'}}/.ssh",0700; 
    13831389# Allow those accessing root to access the build account 
    1384 copy("\$ENV{'HOME'}/.ssh/authorized_keys",".ssh/authorized_keys"); 
     1390copy("\$ENV{'HOME'}/.ssh/authorized_keys","/home/$pbac->{$ENV{'PBPROJ'}}/.ssh/authorized_keys"); 
    13851391chmod 0600,".ssh/authorized_keys"; 
    1386 system 'chown -R $pbac->{$ENV{'PBPROJ'}}:$pbac->{$ENV{'PBPROJ'}} .ssh'; 
     1392pb_system("chown -R $pbac->{$ENV{'PBPROJ'}}:$pbac->{$ENV{'PBPROJ'}} /home/$pbac->{$ENV{'PBPROJ'}}/.ssh","Finish setting up the SSH env for $pbac->{$ENV{'PBPROJ'}}"); 
    13871393 
    13881394EOF 
    13891395    print SCRIPT << 'EOF'; 
    1390 } 
    1391  
    13921396# No passwd for build account only keys 
    13931397$file="/etc/shadow"; 
     
    14491453#system "/usr/sbin/ntpdate ntp.pool.org"; 
    14501454 
    1451 system "rm -rf perl-ProjectBuilder-* ; wget --passive-ftp ftp://ftp.mondorescue.org/src/perl-ProjectBuilder-latest.tar.gz ; tar xvfz perl-ProjectBuilder-latest.tar.gz ; cd perl-ProjectBuilder-* ; perl Makefile.PL ; make ; make install ; cd .. ; rm -rf perl-ProjectBuilder-* ; rm -rf project-builder-* ; wget --passive-ftp ftp://ftp.mondorescue.org/src/project-builder-latest.tar.gz ; tar xvfz project-builder-latest.tar.gz ; cd project-builder-* ; perl Makefile.PL ; make ; make install ; cd .. ; rm -rf project-builder-* ;"; 
     1455pb_system("rm -rf perl-ProjectBuilder-* ; wget --passive-ftp ftp://ftp.mondorescue.org/src/perl-ProjectBuilder-latest.tar.gz ; tar xvfz perl-ProjectBuilder-latest.tar.gz ; cd perl-ProjectBuilder-* ; perl Makefile.PL ; make ; make install ; cd .. ; rm -rf perl-ProjectBuilder-* ; rm -rf project-builder-* ; wget --passive-ftp ftp://ftp.mondorescue.org/src/project-builder-latest.tar.gz ; tar xvfz project-builder-latest.tar.gz ; cd project-builder-* ; perl Makefile.PL ; make ; make install ; cd .. ; rm -rf project-builder-* ;","Building Project-Builder"); 
    14521456system "pb 2>&1 | head -5"; 
    14531457EOF 
    14541458    if ((! $vmexist) && ($vtype eq "vm")) { 
    14551459        print SCRIPT << 'EOF'; 
    1456 system "sudo /sbin/halt -p"; 
     1460pb_system("sudo /sbin/halt -p","Halting the $vtype"); 
    14571461EOF 
    14581462    } 
     
    14651469                open(PBD,"$f") || die "Unable to open $f"; 
    14661470                while (<PBD>) { 
    1467                     next if (/^package/); 
    1468                     next if (/^use Exporter/); 
    1469                     next if (/^use ProjectBuilder::Base/); 
    1470                     next if (/^our \@/); 
     1471                        next if (/^package/); 
     1472                        next if (/^use Exporter/); 
     1473                        next if (/^use ProjectBuilder::/); 
     1474                        next if (/^our /); 
    14711475                    print SCRIPT $_; 
    14721476                } 
     
    15001504my $insfm = "rm -rf File-MimeInfo* ; wget http://search.cpan.org/CPAN/authors/id/P/PA/PARDUS/File-MimeInfo/File-MimeInfo-0.15.tar.gz ; tar xvfz File-MimeInfo-0.15.tar.gz ; cd File-MimeInfo* ; perl Makefile.PL ; make ; make install ; cd .. ; rm -rf File-MimeInfo*"; 
    15011505my $insfb = "rm -rf File-Basedir* ; wget http://search.cpan.org/CPAN/authors/id/P/PA/PARDUS/File-BaseDir-0.03.tar.gz ; tar xvfz File-BaseDir-0.03.tar.gz ; cd File-BaseDir* ; perl Makefile.PL ; make ; make install ; cd .. ; rm -rf File-BaseDir*"; 
     1506my $cmtdm = "Installing Date-Manip perl module"; 
     1507my $cmtmb = "Installing Module-Build perl module"; 
     1508my $cmtfm = "Installing File-MimeInfo perl module"; 
     1509my $cmtfb = "Installing File-Basedir perl module"; 
     1510my $cmtall = "Installing required modules"; 
    15021511 
    15031512if ( $ddir eq "fedora" ) { 
    1504     system "yum clean all"; 
     1513    pb_system("yum clean all","Cleaning yum env"); 
    15051514    #system "yum update -y"; 
    15061515    my $arch=`uname -m`; 
     
    15111520    } 
    15121521 
    1513     system "yum -y $opt install rpm-build wget patch ntp sudo perl-DateManip perl-File-MimeInfo perl-ExtUtils-MakeMaker"; 
     1522    pb_system("yum -y $opt install rpm-build wget patch ntp sudo perl-DateManip perl-File-MimeInfo perl-ExtUtils-MakeMaker",$cmtall); 
    15141523    if ($dver eq 4) { 
    1515         system "$insmb"; 
    1516         system "$insfm"; 
    1517         system "$insfb"; 
     1524        pb_system("$insmb","$cmtmb"); 
     1525        pb_system("$insfm","$cmtfm"); 
     1526        pb_system("$insfb","$cmtfb"); 
    15181527    } 
    15191528} elsif (( $dfam eq "rh" ) || ($ddir eq "sles") || (($ddir eq "suse") && (($dver eq "10.1") || ($dver eq "10.0"))) || ($ddir eq "slackware")) { 
    15201529    # Suppose pkg are installed already as no online mirror available 
    1521     system "rpm -e lsb 2>&1 > /dev/null"; 
    1522     system "$insdm"; 
    1523     system "$insmb"; 
    1524     system "$insfm"; 
    1525     system "$insfb"; 
     1530    pb_system("rpm -e lsb 2>&1 > /dev/null","Removing lsb package"); 
     1531    pb_system("$insdm","$cmtdm"); 
     1532    pb_system("$insmb","$cmtmb"); 
     1533    pb_system("$insfm","$cmtfm"); 
     1534    pb_system("$insfb","$cmtfb"); 
    15261535} elsif ($ddir eq "suse") {  
    15271536    # New OpenSuSE 
    1528     system "$insmb"; 
    1529     system "$insfm"; 
    1530     system "$insfb"; 
    1531     system "export TERM=linux ; liste=\"\" ; for i in make wget patch sudo perl-DateManip perl-File-HomeDir xntp; do rpm -q \$i 1> /dev/null 2> /dev/null ; if [ \$\? != 0 ]; then liste=\"\$liste \$i\"; fi; done; echo \"Liste: \$liste\" ; if [ \"\$liste\" != \"\" ]; then yast2 -i \$liste ; fi"; 
     1537    pb_system("$insmb","$cmtmb"); 
     1538    pb_system("$insfm","$cmtfm"); 
     1539    pb_system("$insfb","$cmtfb"); 
     1540    pb_system("export TERM=linux ; liste=\"\" ; for i in make wget patch sudo perl-DateManip perl-File-HomeDir xntp; do rpm -q \$i 1> /dev/null 2> /dev/null ; if [ \$\? != 0 ]; then liste=\"\$liste \$i\"; fi; done; echo \"Liste: \$liste\" ; if [ \"\$liste\" != \"\" ]; then yast2 -i \$liste ; fi","$cmtall"); 
    15321541} elsif ( $dfam eq "md" ) { 
    1533         system "urpmi.update -a ; urpmi --auto rpm-build wget sudo patch ntp-client perl-File-MimeInfo"; 
     1542        pb_system("urpmi.update -a ; urpmi --auto rpm-build wget sudo patch ntp-client perl-File-MimeInfo","$cmtall"); 
    15341543        if (($ddir eq "mandrake") && ($dver eq "10.1")) { 
    1535             system "$insdm"; 
     1544            pb_system("$insdm","$cmtdm"); 
    15361545        } else { 
    1537             system "urpmi --auto perl-DateManip"; 
     1546            pb_system("urpmi --auto perl-DateManip","$cmtdm"); 
    15381547        } 
    15391548} elsif ( $dfam eq "du" ) { 
    15401549    if (( $dver eq "3.1" ) && ($ddir eq "debian")) { 
    15411550        #system "apt-get update"; 
    1542         system "$insfb"; 
    1543         system "$insfm"; 
    1544         system "apt-get -y install wget patch ssh sudo debian-builder dh-make fakeroot ntpdate libmodule-build-perl libdate-manip-perl"; 
     1551        pb_system("$insfb","$cmtfb"); 
     1552        pb_system("$insfm","$cmtfm"); 
     1553        pb_system("apt-get -y install wget patch ssh sudo debian-builder dh-make fakeroot ntpdate libmodule-build-perl libdate-manip-perl","$cmtall"); 
    15451554    } else  { 
    1546         system "apt-get update; apt-get -y install wget patch openssh-server dpkg-dev sudo debian-builder dh-make fakeroot ntpdate libfile-mimeinfo-perl libmodule-build-perl libdate-manip-perl"; 
     1555        pb_system("apt-get update; apt-get -y install wget patch openssh-server dpkg-dev sudo debian-builder dh-make fakeroot ntpdate libfile-mimeinfo-perl libmodule-build-perl libdate-manip-perl","$cmtall"); 
    15471556    } 
    15481557} elsif ( $dfam eq "gen" ) { 
    1549         #system "emerge -u system ; emerge wget sudo ntp DateManip File-MimeInfo"; 
    1550         system "emerge wget sudo ntp DateManip File-MimeInfo"; 
     1558        #system "emerge -u system"; 
     1559        pb_system("emerge wget sudo ntp DateManip File-MimeInfo","$cmtall"); 
    15511560} else { 
    15521561    print "No pkg to install\n"; 
Note: See TracChangeset for help on using the changeset viewer.