Annotation of loncom/build/postinstall.pl, revision 1.2

1.1       harris41    1: #!/usr/bin/perl
                      2: 
                      3: # A post-installation script
                      4: # to finalize a LON-CAPA
                      5: # installation.
                      6: 
1.2     ! harris41    7: # set /etc/hosts.deny to be ALL: ALL
        !             8: open OUT, ">/etc/hosts.deny";
        !             9: print OUT "ALL: ALL\n";
        !            10: close OUT;
        !            11: 
        !            12: if (1==0) {
        !            13: # get wget and install
        !            14: system('lynx -source http://install.lon-capa.org/3.1/SupplementalRPMS/wget-1.5.3-6.i386.rpm > wget-1.5.3-6.i386.rpm');
        !            15: system('rpm','-Uvh','--force','wget-1.5.3-6.i386.rpm');
        !            16: 
        !            17: # download SupplementalRPMS and install
        !            18: system('wget','-r','http://install.lon-capa.org/3.1/SupplementalRPMS');
        !            19: system('rpm','-Uvh','--force','install.lon-capa.org/3.1/SupplementalRPMS');
        !            20: 
        !            21: # download remove_extra.sh and run
        !            22: system('wget','http://install.lon-capa.org/3.1/scripts/remove_extra.sh');
        !            23: system('sh','./remove_extra.sh');
        !            24: 
        !            25: # download FinalRPMS and install
        !            26: system('wget','-r','http://install.lon-capa.org/3.1/FinalRPMS');
        !            27: system('rpm','-Uvh','--force','install.lon-capa.org/3.1/FinalRPMS');
        !            28: 
1.1       harris41   29: # allow entry of new access.conf parameters
1.2     ! harris41   30: my @perlsetvars=("lonHostID","lonRole","lonAdmEMail","lonDefDomain","lonLoadLim","lonExpire");
        !            31: my %psvinfo=(
        !            32: 	     "lonHostID" => <<END
        !            33: LON Host ID is an internal ID within the LON-CAPA
        !            34: network used to specify the uniqueness of a particular
        !            35: LON-CAPA server.  Current examples include "msul1", "msua3",
        !            36: "103l1", "fsul1", and "107a1".
        !            37: END
        !            38: ,	     "lonRole" => <<END
        !            39: LON Role specifies the role this machine plays within
        !            40: the LON-CAPA network.  There are two valid values for
        !            41: this:
        !            42:  * library
        !            43:  * access
        !            44: END
        !            45: ,	     "lonAdmEMail" => <<END
        !            46: LON System Administrator E-Mail specifies the e-mail
        !            47: address of an institutional member responsible for
        !            48: direct upkeep of this server.
        !            49: END
        !            50: ,	     "lonDefDomain" => <<END
        !            51: LON Domain is a unique internal identifier within the LON-CAPA network
        !            52: specific to the home institution.  Current examples include
        !            53: "msu", "fsu", "103", and "107".
        !            54: END
        !            55: ,	     "lonLoadLim" => <<END
        !            56: LON Load Limit specifies a threshold of activity within The Learning
        !            57: Online Network that this machine should provide.  We strongly recommend
        !            58: a value of 2.00.  Depending on processor architecture (dual processor),
        !            59: this value may be increased, but there is no readily available measure
        !            60: in this regard.
        !            61: END
        !            62: ,	     "lonExpire" => <<END
        !            63: LON Expiration Time indicates, in seconds, how long distributed resources
        !            64: should be held in the server's cache when not being accessed by students,
        !            65: instructors, or any other class of user.  We recommend a value of 86400.
        !            66: END
        !            67: 	     );
        !            68: my $template=`/bin/cat /etc/httpd/conf/access.conf`;
        !            69: my $okay=0;
        !            70: while ($okay==0) {
        !            71:     foreach my $psv (@perlsetvars) {
        !            72:         print "\n";
        !            73:         print $psvinfo{$psv};
        !            74:         print "\nEnter in value for $psv: "; my $input=<>; chop $input;
        !            75:         my $pval=$input;
        !            76:         $template=~s/(\nPerlSetVar\s+$psv\s+)\S+/$1$pval/;
        !            77:         $pvar{$psv}=$pval;
        !            78:     }
        !            79:     print "\n\nThese are the current values:\n";
        !            80:     foreach my $psv (@perlsetvars) {
        !            81:         print "$psv\t\t$pvar{$psv}\n";
        !            82:     }
        !            83:     print "Are these correct? (y/n)";
        !            84:     my $input=<>;
        !            85:     if ($input=~/^y/i) {
        !            86:         $okay=1;
        !            87:     }
        !            88: }
        !            89: open OUT,">/etc/httpd/conf/access.conf";
        !            90: print OUT $template;
        !            91: close OUT;
        !            92: 
        !            93: $template=`/bin/cat /etc/smb.conf`;
        !            94: foreach my $psv (@perlsetvars) {
        !            95:     $template=~s/\{\{\{\{\[(.*?)\]\}\}\}\}/$pvar{$1}/ge;
        !            96: }
        !            97: open OUT,">/etc/smb.conf";
        !            98: print OUT $template;
        !            99: close OUT;
        !           100: }
1.1       harris41  101: # unshadow passwords
1.2     ! harris41  102: # change this line in /etc/pam.d/login
        !           103: # password   required     /lib/security/pam_pwdb.so nullok use_authtok md5 shadow
        !           104: $template=`/bin/cat /etc/pam.d/login`;
        !           105: $template=~s|password   required     /lib/security/pam_pwdb\.so nullok use_authtok md5 shadow|password   required     /lib/security/pam_pwdb.so nullok use_authtok|;
        !           106: open OUT, ">/etc/pam.d/login";
        !           107: print OUT $template;
        !           108: close OUT;
        !           109: # change this line in /etc/pam.d/passwd
        !           110: # password   required     /lib/security/pam_pwdb.so use_authtok nullok md5 shadow 
        !           111: $template=`/bin/cat /etc/pam.d/passwd`;
        !           112: $template=~s|password   required     /lib/security/pam_pwdb\.so nullok use_authtok md5 shadow|password   required     /lib/security/pam_pwdb.so nullok use_authtok|;
        !           113: open OUT, ">/etc/pam.d/passwd";
        !           114: print OUT $template;
        !           115: close OUT;
        !           116: `/usr/sbin/pwunconv`;
        !           117: `/usr/sbin/grpunconv`;
        !           118: # set new passwords
        !           119: print "Now we need to have passwords entered in order to unshadow this machine.\n";
        !           120: system('stty -echo');
        !           121: $okay=0;
        !           122: my $input1;
        !           123: my $input2;
        !           124: while ($okay==0) {
        !           125:     print "Enter in password for root: ";
        !           126:     $input1=<>; chop $input1;
        !           127:     print "\nEnter in password again for root: ";
        !           128:     $input2=<>; chop $input2;
        !           129:     if ($input1 ne $input2) {
        !           130:         print "\nPasswords do not match, try again.\n";
        !           131:     }
        !           132:     else {
        !           133:         $okay=1;
        !           134:     }
        !           135: }
        !           136: open OUT, "|/usr/sbin/chpasswd";
        !           137: print OUT "root:$input1\n";
        !           138: close OUT;
        !           139: 
        !           140: $okay=0;
        !           141: while ($okay==0) {
        !           142:     print "\nEnter in password for www: ";
        !           143:     $input1=<>; chop $input1;
        !           144:     print "\nEnter in password again for www: ";
        !           145:     $input2=<>; chop $input2;
        !           146:     if ($input1 ne $input2) {
        !           147:         print "\nPasswords do not match, try again.\n";
        !           148:     }
        !           149:     else {
        !           150:         $okay=1;
        !           151:     }
        !           152: }
        !           153: open OUT, "|/usr/sbin/chpasswd";
        !           154: print OUT "www:$input1\n";
        !           155: close OUT;
        !           156: system('stty echo');
        !           157: 
        !           158: 
        !           159: if (1==0) {
1.1       harris41  160: # create mime.types link
1.2     ! harris41  161: `ln -s /etc/mime.types /etc/httpd/conf/mime.types`;
        !           162: 
1.1       harris41  163: # restart network and inet services
1.2     ! harris41  164: system('/etc/rc.d/init.d/network','reload');
        !           165: system('/etc/rc.d/init.d/inet','restart');
1.1       harris41  166: # restart httpd
1.2     ! harris41  167: system('/etc/rc.d/init.d/httpd','restart');
        !           168: 
        !           169: # fix the setup of init.d processes
        !           170: # nfs
        !           171: # atalk
        !           172: 
        !           173: # make atalk specific modifications
        !           174: # /etc/services
        !           175: # /etc/atalk/conf
        !           176: 
        !           177: # restart nfs, smb, and atalk services
        !           178: system('/etc/rc.d/init.d/smb','restart');
        !           179: system('/etc/rc.d/init.d/atalk','restart');
        !           180: 
        !           181: 
1.1       harris41  182: # restart loncontrol
1.2     ! harris41  183: print "Please be patient while loncontrol services are restarted (approximately 10 minutes).\n";
        !           184: system('/etc/rc.d/init.d/loncontrol','restart');
        !           185: 
1.1       harris41  186: # warn about /etc/hosts.allow
1.2     ! harris41  187: print <<END;
        !           188: Final note:  Currently your machine is set-up
        !           189: to disable many different kinds of network
        !           190: connectivity.  To enable network connectivity
        !           191: different than that needed for LON-CAPA, you
        !           192: must make appropriate adjustment to the
        !           193: /etc/hosts.allow file.
        !           194: END
        !           195: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>