version 1.3, 2002/05/12 19:25:15
|
version 1.9, 2002/05/16 15:29:15
|
Line 31 http://www.lon-capa.org/
|
Line 31 http://www.lon-capa.org/
|
<targetroot>/</targetroot> |
<targetroot>/</targetroot> |
<files> |
<files> |
<file> |
<file> |
<target dist='default'>/home/httpd/lonUsers</target> |
<target dist='default'>/</target> |
<perlscript mode='fg'> |
<perlscript mode='fg'> |
|
$|=1; |
print(<<END); |
print(<<END); |
|
|
|
|
Line 47 http://www.lon-capa.org/
|
Line 48 http://www.lon-capa.org/
|
********************************************* |
********************************************* |
|
|
END |
END |
|
sleep(3); |
</perlscript> |
</perlscript> |
</file> |
</file> |
<file> |
<file> |
<target dist='default'>/home/httpd/lonUsers</target> |
<target dist='default'>/home/httpd/lonUsers2/</target> |
<perlscript mode='fg'> |
<perlscript mode='fg'> |
|
$|=1; |
unless (-e "<TARGET />") { |
unless (-e "<TARGET />") { |
print(<<END); |
print(<<END); |
WELCOME TO LON-CAPA! |
WELCOME TO LON-CAPA! |
|
|
If you have questions, please visit http://install.lon-capa.org |
If you have questions, please visit http://install.lon-capa.org |
or contact sharrison@install.lon-capa.org. |
or contact sharrison\@mail.lon-capa.org. |
|
|
=============================================================================== |
=============================================================================== |
The following 3 values are needed to configure LON-CAPA: |
The following 4 values are needed to configure LON-CAPA: |
* Machine ID Name |
* Machine Role |
* LON-CAPA Domain Name, and |
* LON-CAPA Domain Name |
|
* LON-CAPA Machine ID Name, and |
* System Administration E-mail Address. |
* System Administration E-mail Address. |
END |
END |
|
|
|
open(OUT,'>/tmp/loncapa_updatequery.out'); |
|
close(OUT); |
|
|
# query for Machine Role |
# query for Machine Role |
print(<<END); |
print(<<END); |
**** Machine Role **** |
**** Machine Role **** |
Line 76 Library server (recommended if first-tim
|
Line 83 Library server (recommended if first-tim
|
Access server: |
Access server: |
Servers that load-balance high-traffic delivery of educational resources |
Servers that load-balance high-traffic delivery of educational resources |
over the world-wide web. |
over the world-wide web. |
1) Will this be a library server? (recommended if this is your |
1) Will this be a library server? (recommended if this is your first install) |
2) Or, will this be an access server? |
2) Or, will this be an access server? |
ENTER A CHOICE OF 1 or 2: |
|
END |
END |
|
my $flag=0; |
|
my $r=''; |
|
my $lonRole; |
|
while (!$flag) { |
|
print "ENTER A CHOICE OF 1 or 2:\n"; |
|
my $choice=<>; |
|
chomp($choice); |
|
if ($choice==1) { |
|
open(OUT,'>>/tmp/loncapa_updatequery.out'); |
|
print(OUT 'lonRole'."\t".'library'."\n"); |
|
close(OUT); |
|
$lonRole='library'; |
|
$r='l'; |
|
$flag=1; |
|
} |
|
elsif ($choice==2) { |
|
open(OUT,'>>/tmp/loncapa_updatequery.out'); |
|
print(OUT 'lonRole'."\t".'access'."\n"); |
|
close(OUT); |
|
$lonRole='access'; |
|
$r='a'; |
|
$flag=2; |
|
} |
|
else { |
|
|
|
} |
|
} |
|
|
# need to recommend a machine ID name (ipdomain.l.somenumber) |
# need to recommend a machine ID name (ipdomain.l.somenumber) |
|
my $hostname=`hostname`; chomp($hostname); |
|
my $ipdomain=''; |
|
if ($hostname=~/([^\.]*)\.([^\.]*)$/) { |
|
$ipdomain=$1; |
|
} |
|
|
|
print(<<END); |
|
|
|
**** Domain **** |
|
[this does NOT need to correspond to internet address domains, |
|
examples might be "msu" or "bionet" or "vermontcc"] |
|
END |
|
|
|
# get domain name |
|
# accept if valid, if not valid, tell user and repeat |
|
$flag=0; |
|
my $lonDefDomain; |
|
while (!$flag) { |
|
if ($ipdomain) { |
|
print(<<END); |
|
ENTER LONCAPA DOMAIN [$ipdomain]: |
|
END |
|
} |
|
else { |
|
print(<<END); |
|
ENTER LONCAPA DOMAIN: |
|
END |
|
} |
|
my $choice=<>; |
|
chomp($choice); |
|
if ($ipdomain and $choice=~/^\s*$/) { |
|
$choice=$ipdomain; |
|
open(OUT,'>>/tmp/loncapa_updatequery.out'); |
|
print(OUT 'lonDefDomain'."\t".$choice."\n"); |
|
close(OUT); |
|
$lonDefDomain=$choice; |
|
$flag=1; |
|
} |
|
elsif ($choice!~/\_/ and $choice=~/^\w+$/) { |
|
open(OUT,'>>/tmp/loncapa_updatequery.out'); |
|
print(OUT 'lonDefDomain'."\t".$choice."\n"); |
|
close(OUT); |
|
$lonDefDomain=$choice; |
|
$r='l'; |
|
$flag=1; |
|
} |
|
else { |
|
print "Invalid input (only alphanumeric characters supported).\n"; |
|
} |
|
} |
|
|
|
my $lonHostID; |
|
if ($lonDefDomain) { |
|
$lonHostID=$lonDefDomain.$r.int(1+rand(9)); # should be probably also detect |
|
# against the hosts.tab |
|
} |
|
|
print(<<END); |
print(<<END); |
|
|
Line 91 END
|
Line 180 END
|
we recommend that you use a name based off of your institution; |
we recommend that you use a name based off of your institution; |
good examples: "msul1" or "bionetl1"; |
good examples: "msul1" or "bionetl1"; |
bad examples: "loncapabox" or "studentsinside"] |
bad examples: "loncapabox" or "studentsinside"] |
ENTER MACHINE ID NAME: |
|
END |
END |
# get machine name |
# get machine name |
# accept if valid, if not valid, tell user and repeat |
# accept if valid, if not valid, tell user and repeat |
|
$flag=0; |
|
while (!$flag) { |
|
if ($ipdomain) { |
|
print(<<END); |
|
ENTER LONCAPA MACHINE ID [$lonHostID]: |
|
END |
|
} |
|
else { |
print(<<END); |
print(<<END); |
|
ENTER LONCAPA MACHINE ID: |
**** Domain **** |
|
[this does NOT need to correspond to internet address domains, |
|
examples might be "msu" or "bionet" or "vermontcc"] |
|
ENTER LONCAPA DOMAIN: |
|
END |
END |
|
} |
|
my $choice=<>; |
|
chomp($choice); |
|
if ($lonHostID and $choice=~/^\s*$/) { |
|
$choice=$lonHostID; |
|
open(OUT,'>>/tmp/loncapa_updatequery.out'); |
|
print(OUT 'lonHostID'."\t".$choice."\n"); |
|
close(OUT); |
|
$lonHostID=$choice; |
|
$flag=1; |
|
} |
|
elsif ($choice!~/\_/ and $choice=~/^\w+$/) { |
|
open(OUT,'>>/tmp/loncapa_updatequery.out'); |
|
print(OUT 'lonHostID'."\t".$choice."\n"); |
|
close(OUT); |
|
$lonHostID=$choice; |
|
$flag=1; |
|
} |
|
else { |
|
print "Invalid input (only alphanumeric characters supported).\n"; |
|
} |
|
} |
|
|
# get domain name |
# get e-mail address |
# accept if valid, if not valid, tell user and repeat |
# accept if valid, if not valid, tell user and repeat |
|
$flag=0; |
|
my $lonAdmEMail; |
|
while (!$flag) { |
print(<<END); |
print(<<END); |
|
|
**** System Administrator's E-mail **** |
**** System Administrator's E-mail **** |
E-mail address of the person who will manage this machine |
E-mail address of the person who will manage this machine |
[should be in the form somebody@somewhere] |
[should be in the form somebody\@somewhere] |
ENTER E-MAIL ADDRESS: |
ENTER E-MAIL ADDRESS: |
END |
END |
|
|
# get e-mail address |
my $choice=<>; |
# accept if valid, if not valid, tell user and repeat |
chomp($choice); |
|
if ($choice=~/\@/) { |
|
open(OUT,'>>/tmp/loncapa_updatequery.out'); |
|
print(OUT 'lonAdmEMail'."\t".$choice."\n"); |
|
close(OUT); |
|
$lonAdmEMail=$choice; |
|
$flag=1; |
|
} |
|
else { |
|
print "Invalid input (this needs to look like an e-mail address!).\n"; |
|
} |
|
} |
|
|
# update loncapa.conf |
# update loncapa.conf |
|
my $confdir='/etc/httpd/conf/'; |
|
#my $confdir=''; |
|
my $filename='loncapa.conf'; |
|
my %perlvar; |
|
if (-e "$confdir$filename") { |
|
open(CONFIG,'<'.$confdir.$filename) or die("Can't read $confdir$filename"); |
|
while (my $configline=<CONFIG>) { |
|
if ($configline =~ /^[^\#]*PerlSetVar/) { |
|
my ($unused,$varname,$varvalue)=split(/\s+/,$configline); |
|
chomp($varvalue); |
|
$perlvar{$varname}=$varvalue; |
|
} |
|
} |
|
close(CONFIG); |
|
} |
|
$perlvar{'lonHostID'}=$lonHostID; |
|
$perlvar{'lonDefDomain'}=$lonDefDomain; |
|
$perlvar{'lonAdmEMail'}=$lonAdmEMail; |
|
$perlvar{'lonRole'}=$lonRole; |
|
unless ($perlvar{'lonSqlAccess'}) { |
|
$perlvar{'lonSqlAccess'}='localhostkey'; |
|
} |
|
unless ($perlvar{'lonLoadLim'}) { |
|
$perlvar{'lonLoadLim'}='2.00'; |
|
} |
|
unless ($perlvar{'lonExpire'}) { |
|
$perlvar{'lonExpire'}='86400'; |
|
} |
|
unless ($perlvar{'lonReceipt'}) { |
|
my $lonReceipt=''; |
|
srand($$.time); |
|
my @alnum=(0..9,a..z); |
|
foreach my $i (1..20) { |
|
$lonReceipt.=$alnum[int(rand(36))]; |
|
} |
|
$perlvar{'lonReceipt'}=$lonReceipt; |
|
} |
|
open(OUT,">$confdir$filename") or |
|
die("Cannot output to $confdir$filename\n"); |
|
foreach my $key (keys %perlvar) { |
|
my $value=$perlvar{$key}; |
|
print(OUT <<END); |
|
PerlSetVar $key $value |
|
END |
|
} |
|
close(OUT); |
} |
} |
</perlscript> |
</perlscript> |
</file> |
</file> |
<file> |
<file> |
<target dist='default'>/home/httpd/lonUsers2</target> |
<target dist='default'>/</target> |
<perlscript mode='fg'> |
<perlscript mode='fg'> |
# read values from loncapa.conf |
# read values from loncapa.conf |
|
my $confdir='/etc/httpd/conf/'; |
|
#my $confdir=''; |
|
my $filename='loncapa.conf'; |
|
my %perlvar; |
|
if (-e "$confdir$filename") { |
|
open(CONFIG,'<'.$confdir.$filename) or |
|
die("Can't read $confdir$filename"); |
|
while (my $configline=<CONFIG>) { |
|
if ($configline =~ /^[^\#]*PerlSetVar/) { |
|
my ($unused,$varname,$varvalue)=split(/\s+/,$configline); |
|
chomp($varvalue); |
|
$perlvar{$varname}=$varvalue; |
|
} |
|
} |
|
close(CONFIG); |
|
} |
|
my %perlvarstatic; |
|
if (-e "${confdir}loncapa_apache.conf") { |
|
open(CONFIG,'<'.$confdir.'loncapa_apache.conf') or |
|
die("Can't read ${confdir}loncapa_apache.conf"); |
|
while (my $configline=<CONFIG>) { |
|
if ($configline =~ /^[^\#]*PerlSetVar/) { |
|
my ($unused,$varname,$varvalue)=split(/\s+/,$configline); |
|
chomp($varvalue); |
|
$perlvarstatic{$varname}=$varvalue; |
|
} |
|
} |
|
close(CONFIG); |
|
} |
|
# implement editing logic below, interactively |
|
# update loncapa.conf until 7 is entered |
|
|
|
$flag=0; |
|
while (!$flag) { |
print(<<END); |
print(<<END); |
|
|
=============================================================================== |
=============================================================================== |
This is now the current configuration of your machine. |
This is now the current configuration of your machine. |
1) Machine Name: $perlsetvar{'lonHostID'} |
1) Domain Name: $perlvar{'lonDefDomain'} |
2) Domain Name: $perlsetvar{'lonDefDomain'} |
2) Machine Name: $perlvar{'lonHostID'} |
3) System Administrator's E-mail Address: $perlsetvar{'lonAdmEmail'} |
3) System Administrator's E-mail Address: $perlvar{'lonAdmEMail'} |
4) Role: $perlsetvar{'lonRole'} |
4) Role: $perlvar{'lonRole'} |
5) Cache Expiration Time: $perlsetvar{'lonExpire'} |
5) Cache Expiration Time: $perlvar{'lonExpire'} |
6) Server Load: $perlsetvar{'lonLoadLim'} |
6) Server Load: $perlvar{'lonLoadLim'} |
7) Everything is correct up above |
7) Everything is correct up above |
|
END |
|
print(<<END); |
ENTER A CHOICE OF 1-6 TO CHANGE, otherwise ENTER 7: |
ENTER A CHOICE OF 1-6 TO CHANGE, otherwise ENTER 7: |
END |
END |
|
my $choice=<>; |
|
chomp($choice); |
|
if ($choice==1) { |
|
print(<<END); |
|
2) Domain Name: $perlvar{'lonDefDomain'} |
|
ENTER NEW VALUE: |
|
END |
|
my $choice2=<>; |
|
chomp($choice2); |
|
$perlvar{'lonDefDomain'}=$choice2; |
|
} |
|
elsif ($choice==2) { |
|
print(<<END); |
|
1) Machine Name: $perlvar{'lonHostID'} |
|
ENTER NEW VALUE: |
|
END |
|
my $choice2=<>; |
|
chomp($choice2); |
|
$perlvar{'lonHostID'}=$choice2; |
|
} |
|
elsif ($choice==3) { |
|
print(<<END); |
|
3) System Administrator's E-mail Address: $perlvar{'lonAdmEMail'} |
|
ENTER NEW VALUE: |
|
END |
|
my $choice2=<>; |
|
chomp($choice2); |
|
$perlvar{'lonAdmEMail'}=$choice2; |
|
} |
|
elsif ($choice==4) { |
|
print(<<END); |
|
4) Role: $perlvar{'lonRole'} |
|
ENTER NEW VALUE: |
|
END |
|
my $choice2=<>; |
|
chomp($choice2); |
|
$perlvar{'lonRole'}=$choice2; |
|
} |
|
elsif ($choice==5) { |
|
print(<<END); |
|
5) Cache Expiration Time: $perlvar{'lonExpire'} |
|
ENTER NEW VALUE: |
|
END |
|
my $choice2=<>; |
|
chomp($choice2); |
|
$perlvar{'lonExpire'}=$choice2; |
|
} |
|
elsif ($choice==6) { |
|
print(<<END); |
|
6) Server Load: $perlvar{'lonLoadLim'} |
|
ENTER NEW VALUE: |
|
END |
|
my $choice2=<>; |
|
chomp($choice2); |
|
$perlvar{'lonLoadLim'}=$choice2; |
|
} |
|
elsif ($choice==7) { |
|
$flag=1; |
|
} |
|
else { |
|
|
# implement editing logic below, interactively |
} |
# update loncapa.conf until 7 is entered |
} |
|
open(OUT,">$confdir$filename") or |
|
die("Cannot output to $confdir$filename\n"); |
|
foreach my $key (keys %perlvar) { |
|
my $value=$perlvar{$key}; |
|
print(OUT <<END) unless $perlvarstatic{$key}; |
|
PerlSetVar $key $value |
|
END |
|
} |
|
close(OUT); |
</perlscript> |
</perlscript> |
</file> |
</file> |
<file> |
<file> |
Line 158 on the LON-CAPA network)
|
Line 435 on the LON-CAPA network)
|
|
|
1) PRODUCTION - you want to deliver courses today or sometime very soon |
1) PRODUCTION - you want to deliver courses today or sometime very soon |
on this machine |
on this machine |
2) DEVELOPMENT - you want to play with or explore LON-CAPA |
2) STAND-ALONE - you want this machine to run in 'stand-alone' mode and |
3) Do not install hosts.tab right now |
not be connected to other LON-CAPA machines for now |
|
3) DEVELOPMENT - you want to play with or explore LON-CAPA |
|
4) PRESERVE the existing hosts.tab (/home/httpd/lonTabs/hosts.tab) |
|
|
ENTER 1, 2, or 3: |
|
END |
END |
# Option number 26 will install rawhide_hosts.tab, but |
# Option number 26 will install rawhide_hosts.tab, but |
# the typical user does not want to be part of an intensive |
# the typical user does not want to be part of an intensive |
Line 169 END
|
Line 447 END
|
|
|
# get input |
# get input |
# if valid then process, otherwise loop |
# if valid then process, otherwise loop |
|
my $hostname=`hostname`;chomp($hostname); |
|
my $hostaddress=`hostname -i $hostname`;chomp($hostaddress); |
|
$flag=0; |
|
while (!$flag) { |
|
print "ENTER 1, 2, 3, or 4:\n"; |
|
my $choice=<>; |
|
chomp($choice); |
|
if ($choice==1) { |
|
$lonCluster='production'; |
|
`rm -f ../hosts.tab`; |
|
`ln -s production_hosts.tab ../hosts.tab`; |
|
$flag=1; |
|
} |
|
elsif ($choice==2) { |
|
$lonCluster='standalone'; |
|
open(OUT,'>../standalone_hosts.tab') or |
|
die("cannot open loncom/standalone_hosts.tab for output\n"); |
|
print(OUT <<END); |
|
$perlvar{'lonHostID'}:$perlvar{'lonDefDomain'}:$perlvar{'lonRole'}:$hostname:$hostaddress |
|
END |
|
close(OUT); |
|
`rm -f ../hosts.tab`; |
|
`ln -s standalone_hosts.tab ../hosts.tab`; |
|
$flag=1; |
|
} |
|
elsif ($choice==3) { |
|
$lonCluster='development'; |
|
`rm -f loncom/hosts.tab`; |
|
`ln -s development_hosts.tab ../hosts.tab`; |
|
$flag=1; |
|
} |
|
elsif ($choice==4) { |
|
$lonCluster='existing'; |
|
`rm -f ../hosts.tab`; |
|
`touch existing_hosts.tab`; |
|
if (-e '/home/httpd/lonTabs/hosts.tab') { |
|
`cp /home/httpd/lonTabs/hosts.tab ../existing_hosts.tab`; |
|
} |
|
`ln -s existing_hosts.tab ../hosts.tab`; |
|
$flag=1; |
|
} |
|
elsif ($choice==26) { |
|
$lonCluster='rawhide'; |
|
`rm -f ../hosts.tab`; |
|
`ln -s rawhide_hosts.tab ../hosts.tab`; |
|
$flag=1; |
|
} |
|
else { |
|
|
|
} |
|
} |
|
|
} |
} |
</perlscript> |
</perlscript> |