Changeset 5240 in /cluster/svnroot


Ignore:
Timestamp:
Jul 15, 2015 7:29:20 AM (5 years ago)
Author:
skylar
Message:

merge addresses #896, #898, #915, #946, #949, #950

Location:
bccd-ng/tags/bccd-3.4.0-rc
Files:
2 deleted
13 edited
1 copied

Legend:

Unmodified
Added
Removed
  • bccd-ng/tags/bccd-3.4.0-rc

  • bccd-ng/tags/bccd-3.4.0-rc/bin/build_bootable_USB.sh

    r5206 r5240  
    7777
    7878SVN_URL=http://bccd-ng.cluster.earlham.edu/svn/bccd-ng/trunk
    79 MIN_SIZE=1005306368
     79MIN_SIZE=1305306368
    8080SCRIPT_DIR=$(dirname $0)
    8181pushd ${SCRIPT_DIR}
  • bccd-ng/tags/bccd-3.4.0-rc/bin/build_livecd.pl

    r5208 r5240  
    256256
    257257# Prepare meta-directories in build directory
     258# Possible improvement: Can this be turned into a bind mount?
    258259$Bccd->run_test(
    259260    "system",
     
    335336
    336337# FILE REMOVAL
     338# Can we package these files on our own, and override the provided files?
    337339foreach my $file (
    338340    "$BUILDDIR/etc/apt/sources.list",
     
    345347    "$BUILDDIR/etc/default/useradd",
    346348    "$BUILDDIR/etc/default/tftpd-hpa",
    347     "$BUILDDIR/etc/rc.local",
    348349) {
    349350    if( -f $file ) {
     
    458459    "init.d/bccd-sshd","lam.conf", "init.d/bccd-nfs",
    459460    "init.d/bccd-unite-sw", "init.d/bccd-nics","init.d/bccd-dhcp-conf",
    460     "init.d/bccd-route", "init.d/bccd-keyboard", "rc.local",
     461    "init.d/bccd-keyboard",
    461462    "init.d/bccd-fsrw", "init.d/bccd-mail", "ld.so.conf.d/CUDA.conf",
    462463    "init.d/nfs-common","init.d/bccd-liberate", "init.d/bccd-networking",) {
     
    487488);
    488489
    489 foreach my $file ( "bccd-networking", "bccd-passwd", "bccd-dhcp", "bccd-sshd",
     490foreach my $file ( "bccd-passwd", "bccd-dhcp", "bccd-sshd",
    490491    "bccd-nfs", "bccd-unite-sw", "networking","bccd-nics", "bccd-dhcp-conf",
    491     "bccd-route", "bccd-keyboard", "bccd-fsrw", "bccd-mail", "bccd-bootflags",
    492     "bccd-automated", "nfs-common", "bccd-liberate", ) {
     492    "bccd-keyboard", "bccd-fsrw", "bccd-mail", "bccd-bootflags",
     493    "bccd-automated", "nfs-common", "bccd-liberate", "bccd-networking",) {
    493494    $Bccd->run_test(
    494495        "chmod",
     
    500501}
    501502
    502 foreach my $file ( '/etc/rc.local', '/usr/sbin/policy-rc.d', ) {
    503     $Bccd->run_test(
    504         "chmod",
    505         "",
    506         "Set $BUILDDIR/$file executable.",
    507         0755,
    508         "$BUILDDIR/$file",
    509     );
    510 }
     503$Bccd->run_test(
     504    "chmod",
     505    "",
     506    "Set $BUILDDIR/usr/sbin/policy-rc.d executable.",
     507    0755,
     508    "$BUILDDIR/usr/sbin/policy-rc.d",
     509);
    511510
    512511$cwd = getcwd();
     
    10601059}
    10611060
    1062 foreach my $script ("nfs-common", "vboxadd", "vboxadd-service",,"bccd-nics",
    1063     "bccd-nvidia", "bccd-mail","networking",
    1064     "bccd-unite-sw","bccd-networking","torque-mom",
     1061foreach my $script ("nfs-common","bccd-passwd","bccd-nics","vboxadd",
     1062    "vboxadd-service", "bccd-nvidia", "bccd-mail","networking",
     1063    "bccd-unite-sw","torque-mom",
    10651064    "torque-server","torque-scheduler","bccd-mount-virtfs",
    1066     "bccd-liberate","ssh",) {
     1065    "bccd-liberate","ssh","bccd-networking",) {
    10671066    $Bccd->run_test(
    10681067        "system",
     
    11671166        'start',
    11681167        '38',
    1169         'S',
    1170         '.',
    1171     ],
    1172 );
    1173 
    1174 $Bccd->run_test(
    1175     "system",
    1176     "",
    1177     "Enabling bccd-route config.",
    1178     [
    1179         '/usr/sbin/chroot',
    1180         $BUILDDIR,
    1181         '/usr/sbin/update-rc.d',
    1182         'bccd-route',
    1183         'start',
    1184         '41',
    11851168        'S',
    11861169        '.',
  • bccd-ng/tags/bccd-3.4.0-rc/packages/etc/exports.liberate

    r4433 r5240  
    66/diskless/bccd          *(ro,no_root_squash,async,subtree_check)
    77/diskless/clients       *(rw,no_root_squash,async,subtree_check)
    8 /bccd/home              *(rw,no_root_squash,async,subtree_check)
     8/home           *(rw,no_root_squash,async,subtree_check)
  • bccd-ng/tags/bccd-3.4.0-rc/packages/etc/init.d/bccd-bootflags

    r3090 r5240  
    3535use Bccd;
    3636
    37 my %request = ( "BUILD_CONTROL" => "1",
    38                                 "EXPECTED_NODES" => "8,4",);
    39 Bccd::get_boot_flags_from_NIC(%request);
     37my $request = { "BUILD_CONTROL" => "1",
     38                                "EXPECTED_NODES" => "8,4",};
     39Bccd::get_boot_flags_from_NIC($request);
  • bccd-ng/tags/bccd-3.4.0-rc/packages/etc/init.d/bccd-liberate

    r4956 r5240  
    2525### BEGIN INIT INFO
    2626# Provides:          bccd-liberate
    27 # Required-Start:    bccd-nics
     27# Required-Start:   
    2828# Required-Stop:
    2929# Default-Start:     2 5
  • bccd-ng/tags/bccd-3.4.0-rc/packages/etc/init.d/bccd-networking

    r4956 r5240  
    2525### BEGIN INIT INFO
    2626# Provides:          bccd-networking
    27 # Required-Start:    networking bccd-nics
     27# Required-Start:    networking
    2828# Required-Stop:     
    2929# Default-Start:     2 3 4 5
  • bccd-ng/tags/bccd-3.4.0-rc/packages/etc/init.d/bccd-nics

    r5194 r5240  
    2525### BEGIN INIT INFO
    2626# Provides:          bccd-nics
    27 # Required-Start:
     27# Required-Start:    bccd-passwd
    2828# Required-Stop:
    29 # Default-Start:     2 3 4 5
     29# Default-Start:     S
    3030# Default-Stop:
    3131# Short-Description: Setup NICs
    3232### END INIT INFO
    3333
    34 /bin/bccd-nic-probe
    35 
    3634if [ "$(cat /etc/bccd-stage)" = "LIVE" ] ; then
    37     # Debian /dev/console (boot-time terminal) does not understand
    38     # terminal escapes
    39         /usr/bin/rlwrap /bin/bccd-nic-setup
     35        /bin/bccd-nic-setup
    4036    if [ "$(/bin/hostname -s)" = "node000" ] ; then
    4137        /bin/bccd-nat
  • bccd-ng/tags/bccd-3.4.0-rc/packages/rsync_liberate.exclude

    r4746 r5240  
    66/tmp/*
    77/var/tmp/*
    8 /home/* # ~bccd is /bccd/home, but a bind mount makes it show up here
     8/home/*
  • bccd-ng/tags/bccd-3.4.0-rc/trees/etc/init.d/vboxadd

    r2749 r5240  
    11#! /bin/sh
    22
    3 # $Id$
     3# $Id: vboxadd 5230 2015-07-14 17:59:25Z skylar $
    44
    55# Sun VirtualBox
     
    2525### BEGIN INIT INFO
    2626# Provides:       vboxadd
    27 # Required-Start:
     27# Required-Start: bccd-nics
    2828# Required-Stop:
    2929# Default-Start:  2 3 4 5
  • bccd-ng/tags/bccd-3.4.0-rc/trees/etc/init.d/vboxadd-service

    r2749 r5240  
    11#!/bin/sh
    22#
    3 # $Id$
     3# $Id: vboxadd-service 5230 2015-07-14 17:59:25Z skylar $
    44#
    55# Sun VirtualBox
     
    2222### BEGIN INIT INFO
    2323# Provides:       vboxadd-service
    24 # Required-Start: vboxadd
     24# Required-Start: vboxadd bccd-nics
    2525# Required-Stop:  vboxadd
    2626# Default-Start:  2 3 4 5
  • bccd-ng/tags/bccd-3.4.0-rc/trees/etc/init.d/vboxadd-x11

    r2749 r5240  
    11#! /bin/sh
    22
    3 # $Id$
     3# $Id: vboxadd-x11 5230 2015-07-14 17:59:25Z skylar $
    44
    55# Sun VirtualBox
     
    2525### BEGIN INIT INFO
    2626# Provides:       vboxadd-x11
    27 # Required-Start:
     27# Required-Start: bccd-nics
    2828# Required-Stop:
    2929# Default-Start:
  • bccd-ng/tags/bccd-3.4.0-rc/trees/usr/local/lib/site_perl/Bccd.pm

    r5194 r5240  
    8484Readonly my $IS_BCCD_NETWORK_NIC => 0;
    8585
     86# LOGGING FLAGS
    8687my $debug = 0;
    8788my $INFO = 0b1;
     
    9697}
    9798
     99# LOGGING ROUTINES
     100# Possible improvements:
     101#
     102# carp with calling line number, not log_and_foo line number
     103# Consolidate to one function, use croak and eval{ }
     104# Test logging level w/i logging subroutines, not in calling code
    98105sub log_and_cont( $$$$ ) {
    99106    my($self,$code,$func,$msg) = @_;
     
    125132}
    126133
     134# Possible improvements:
     135# Should return, can catch w/ eval { }
    127136sub cmd_num_die( $@ ) {
    128137    my($self,@cmds) = @_;
    129     my $sub = "cmd_num_due";
     138    my $sub = "cmd_num_die";
    130139    $self->enter_sub($sub);
    131140   
     
    148157}
    149158
     159# LVM ROUTINES
    150160sub get_lvminfo( $$ ) {
    151161    my($self,$layer) = @_;
     
    173183        return;
    174184    }
     185    # BUG: Why the two tests of $rc?
    175186    elsif($rc) {
    176187        if($rc) {
     
    401412    ($rc,$pvinfo) = $self->exec_system($cmd);
    402413    if($rc) {
    403         $self->log_and_cont("@{$cmd} failed with $rc, out $pvinfo");
     414        $self->log_and_cont('ERROR',$sub,"@{$cmd} failed with $rc, out $pvinfo");
    404415        return;
    405416    }
     
    438449}
    439450
     451# Possible improvements:
     452# Use File::Slurp instead?
    440453sub snarf_file( $$ ) {
    441454    my($self,$file) = @_;
     
    21062119                $self->log_and_cont('DEBUG',$sub,"Pushing static $nic onto auto stack");
    21072120            }
    2108             push(@auto,$nic);
    2109             print $INT "iface $nic inet static\n";
     2121
     2122            # Remove alias suffix for new iproute2 multi-IP NIC config (#950)
     2123            my $nic_name = $nic;
     2124            $nic_name =~ s{:1$}{};
     2125
     2126            push(@auto,$nic_name);
     2127            print $INT "iface $nic_name inet static\n";
    21102128            print $INT "\taddress $self->{nic_conf}->{$nic}->{'ipaddr'}\n";
    21112129            print $INT "\tnetmask $self->{nic_conf}->{$nic}->{'mask'}\n";
     
    22722290                   
    22732291            # Add shared (non-aufs) home directory
    2274                 print $FCONF "$self->{nic_conf}->{$pxenic}->{'ipaddr'}:/bccd/home  "
    2275                                 ."/bccd/home   nfs     "
     2292                print $FCONF "$self->{nic_conf}->{$pxenic}->{'ipaddr'}:/home  "
     2293                                ."/home   nfs     "
    22762294                                ."nfsvers=3,tcp,rsize=32768,wsize=32768,hard,intr 0 0\n";
    22772295            # Mount /sysfs for power management (#770)
     
    23052323        }
    23062324       
    2307         my $base_dhcpnic_ip = new NetAddr::IP($self->{nic_conf}->{$base_dhcpnic}->{'ipaddr'},
     2325        my $base_dhcpnic_ip
     2326            = new NetAddr::IP($self->{nic_conf}->{$base_dhcpnic}->{'ipaddr'},
    23082327            $self->{nic_conf}->{$base_dhcpnic}->{'mask'});
    23092328                # Just get the network address, not the mask
     
    23112330                $network =~ s{/\d+$}{};
    23122331       
    2313                 print $DCONF "subnet $network ";
    2314                 print $DCONF "netmask $self->{nic_conf}->{$base_dhcpnic}->{'mask'} {\n";
    2315                 print $DCONF "}\n";
    2316 
    2317                 # Generate blank subnet statements for each known subnet
    2318                 foreach my $nic_conf_nic (keys(%{$self->{nic_conf}})) {
    2319             if(defined($self->{nic_conf}->{$nic_conf_nic}->{'mask'})) {
    2320                             # Filter out aliases (DHCP doesn't like them)
    2321                 if($nic_conf_nic !~ m{:\d+$}
    2322                         && defined($self->{nic_conf}->{$nic_conf_nic}->{'ipaddr'})
    2323                         && defined($self->{nic_conf}->{$nic_conf_nic}->{'mask'})) {
    2324                     my $nic_nai
    2325                         = new NetAddr::IP($self->{nic_conf}->{$nic_conf_nic}->{'ipaddr'},
    2326                                 $self->{nic_conf}->{$nic_conf_nic}->{'mask'});
    2327                     $network = $nic_nai->network();
    2328                     $network =~ s{/\d+$}{};
    2329                     print $DCONF "subnet $network ";
    2330                     print $DCONF "netmask $self->{nic_conf}->{$nic_conf_nic}->{'mask'} {\n";
    2331                     print $DCONF "}\n";
    2332                 }
    2333             }           
    2334                 }
    2335 
    23362332            close($DCONF);
    23372333        }
     
    26322628sub config_nic_dialog {
    26332629    my($self,$d,$nic) = @_;
    2634     my($temp,$bccd_nic,$gotpxe,$dhcp_source,$sub,$rc,$msg_string);
     2630    my($temp,$gotpxe,$dhcp_source,$sub,$rc,$msg_string);
    26352631    $sub = 'config_nic_dialog';
    26362632    $self->enter_sub($sub);
     
    26782674                $self->log_and_cont('DEBUG',$sub,"Only one NIC for BCCD");
    26792675            }
    2680             $bccd_nic = $dhcp_nics[0];
     2676            $self->{bccd_nic} = $dhcp_nics[0];
    26812677        }
    26822678        elsif($#dhcp_nics > 0 and not -e '/testmode') {
     
    26912687                );
    26922688            # Set NIC that will have a locked-down DHCP server listening on it
    2693             $bccd_nic = $d->menu(text=>"Choose NIC to have BCCD network.", list => \@dhcp_nics);
     2689            $self->{bccd_nic} = $d->menu(text=>"Choose NIC to have BCCD network.", list => \@dhcp_nics);
    26942690            if($self->is_log($INFO) || $self->is_log($DEBUG)) {
    2695                 $self->log_and_cont('INFO',$sub,"User selected $bccd_nic to be BCCD NIC.");
     2691                $self->log_and_cont('INFO',$sub,"User selected
     2692$self->{bccd_nic} to be BCCD NIC.");
    26962693            }
    26972694            if(!$self->is_dialog_ok($d)) {
     
    27032700            my  @command = grep (/BCCD_NIC/, <TEST>);
    27042701            if ($command[0] =~ m/export BCCD_NIC=(.*)$/){
    2705                 $bccd_nic = $1;
    2706             }
    2707             print STDERR "$bccd_nic selected for BCCD network\n"
     2702                $self->{bccd_nic} = $1;
     2703            }
     2704            print STDERR "$self->{bccd_nic} selected for BCCD network\n"
    27082705        }
    27092706        # Copy iptables template regardless of NAT Status
     
    27212718        }
    27222719        # Setup NAT in iptables on the BCCD NIC
    2723         if(defined($bccd_nic) && !$self->check_bccd_net($self->{nic_conf})) {
     2720        if(defined($self->{bccd_nic}) && !$self->check_bccd_net($self->{nic_conf})) {
    27242721            if($self->is_log($DEBUG)) {
    2725                 $self->log_and_cont('DEBUG',$sub,"Setting $bccd_nic:1 to be BCCD net NIC");
    2726             }
    2727             $self->{nic_conf}->{"$bccd_nic:1"} = $BCCD_NET;
     2722                $self->log_and_cont('DEBUG',$sub,"Setting $self->{bccd_nic}:1 to be BCCD net NIC");
     2723            }
     2724            $self->{nic_conf}->{"$self->{bccd_nic}:1"} = $BCCD_NET;
    27282725            foreach my $LINE (
    27292726                q{*nat},
     
    27382735        close($IPT);
    27392736
     2737        # Ignore NIC aliases
    27402738      NIC_CONF:
    2741         foreach my $nic (sort keys %{$self->{nic_conf}}) {
     2739        foreach my $nic (grep {!/:1$/} sort keys %{$self->{nic_conf}}) {
    27422740            # If $nic has an IP address, and it came from a BCCD DHCP
    27432741            # server
     
    27622760            else {
    27632761                $self->{nic_conf}->{$nic}->{'dhcp'} = 0;
    2764             }
    2765             # If we have no DHCP response and no IP address, then prompt
    2766             # whether to skip this NIC. If not, then we assign an address
    2767             # in a later section.
    2768             $msg_string = "No DHCP found for network on $nic, "
     2762                # If we have no DHCP response and no IP address, then prompt
     2763                # whether to skip this NIC. If not, then we assign an address
     2764                # in a later section.
     2765                $msg_string = "No DHCP found for network on $nic, "
    27692766                ."do you wish to accept auto-configuration?";
    2770             if($self->get_stage() eq 'LIBERATED') {
    2771                 $msg_string .= " (Say NO to configure PXE/diskless booting.)";
    2772             }
    2773             if(($self->{nic_conf}->{$nic}->{'dhcp'} == 0)
    2774                                 && !defined($self->{nic_conf}->{$nic}->{'ipaddr'})
    2775                 && ! -e '/testmode'
    2776                                 && ! $d->yesno(text => $msg_string)) {
    2777                 $self->{nic_conf}->{$nic}->{'dhcp'} = 0;
    2778             }
    2779             # If the user chooses not to assign an address, we need to
    2780             # assign a local IP address to make DHCP happy.
    2781             else {
    2782                 # This reworks around a bug in squeeze DHCP where dhcpd
    2783                 # cannot listen on an interface with an alias
    2784                 # unless the base interface has an IP address
    2785                 # Assign a local IP address if no IP address is present
    2786                 if(defined($bccd_nic) && $nic eq $bccd_nic
    2787                   && !defined($self->{nic_conf}->{$nic}->{'ipaddr'})) {
    2788                     if($self->is_log($INFO)) {
    2789                         $self->log_and_cont('INFO',$sub,"$nic has no address, assigning 127.127.127.127/8");
    2790                     }
    2791                     $self->{nic_conf}->{$nic}->{'ipaddr'} = '127.127.127.127';
    2792                     $self->{nic_conf}->{$nic}->{'mask'} = '255.0.0.0';
     2767                if($self->get_stage() eq 'LIBERATED') {
     2768                    $msg_string .= " (Say NO to configure PXE/diskless booting.)";
    27932769                }
    2794                 next NIC_CONF;
    2795             }
     2770                $temp = $d->yesno(text => $msg_string);
     2771                if(($self->{nic_conf}->{$nic}->{'dhcp'} == 0)
     2772                    && !defined($self->{nic_conf}->{$nic}->{'ipaddr'})
     2773                    && ! -e '/testmode'
     2774                    && $temp == 0) {
     2775                    $self->{nic_conf}->{$nic}->{'dhcp'} = 0;
     2776                }
     2777                elsif($temp == 1) {
     2778                    $self->{nic_conf}->{$nic}->{'dhcp'} = 1;
     2779                }
     2780            }
     2781
    27962782            if($self->{nic_conf}->{$nic}->{'dhcp'} == 0) {
    27972783              FIND_CUR_NIC:
     
    28002786                    if(!defined($gotpxe)
    28012787                                                && $self->get_stage() eq 'LIBERATED'
    2802                         && $d->yesno(text=>"Make $nic the PXE-capable NIC?")) {
     2788                        && $d->yesno(text=>"Make $nic the PXE-capable NIC?")
     2789                        && $self->{nic_conf}->{$nic}->{'dhcp'} == 0
     2790                    ) {
    28032791                        $gotpxe = 1;
    28042792                        $self->{nic_conf}->{$nic}->{'pxenic'}  = $nic;
     
    28212809                        if (-e '/testmode'){
    28222810                            $self->{nic_conf}->{$nic}->{'ipaddr'} = '192.168.0.*';
    2823                         }else{
     2811                        }
     2812                        elsif($nic eq $self->{bccd_nic}) {
     2813                            $self->{nic_conf}->{$nic} = $BCCD_NET;
     2814                        }
     2815                        else{
    28242816                            $self->{nic_conf}->{$nic}->{'ipaddr'} =
    28252817                                ($temp = $d->inputbox(text=>
     
    28302822                                redo FIND_EXT_NIC;
    28312823                            }
    2832                             elsif($self->{nic_conf}->{$nic}->{'ipaddr'}
    2833                                   eq $BCCD_NET->{'ipaddr'}) {
     2824                            elsif($self->{nic_conf}->{$nic}->{'ipaddr'} eq $BCCD_NET->{'ipaddr'}
     2825                                && $nic ne $self->{bccd_nic})
     2826                            {
    28342827                                $d->msgbox(text =>
    28352828                                           "IP address cannot be the BCCD virtual IP ($BCCD_NET->{'ipaddr'}).");
     
    30633056}
    30643057
     3058
    30653059sub get_boot_flags_from_NIC{
    3066     my %request = @_;
     3060    my ($self,$request) = @_;
    30673061    my @custom_macs;
    30683062    my @custom_nics;
    30693063    my @boot_strings;
    30703064    my $boot_string;
    3071     my $bccd_nic;
    30723065   
    30733066   
     
    30963089            )
    30973090        {
    3098             $bccd_nic = $custom_nics[$i];
     3091            $self->{bccd_nic} = $custom_nics[$i];
    30993092            $boot_string = $boot_strings[$i];
    31003093        }
     
    31023095   
    31033096    # Only process NIC if it has the test flags
    3104     if(defined($bccd_nic)) {
    3105         my $boot_flags = "#!/bin/sh\nexport BCCD_NIC=$bccd_nic\n";     
     3097    if(defined($self->{bccd_nic})) {
     3098        my $boot_flags = "#!/bin/sh\nexport BCCD_NIC=$self->{bccd_nic}\n";     
    31063099       
    3107         foreach my $key(keys %request){
     3100        foreach my $key(keys %{$request}){
    31083101            my $value;
    3109             my $pointer = $request{$key};
     3102            my $pointer = $request->{$key};
    31103103            my ($index,$length) = split(/,/,$pointer);
    31113104           
Note: See TracChangeset for help on using the changeset viewer.