Background
This page documents the installation proceedure at SLAC.
Unix accounts
No log in. No password.
[yee@terapaths home]$ sudo /usr/sbin/luseradd terapaths -u 30000 -g terapaths
Java
From: here
[yee@terapaths installation]$ sudo mkdir /usr/java Password: [yee@terapaths installation]$ sudo mv jdk1.5.0_13/ /usr/java/
SJSAS
From here
[terapaths@terapaths installation]$ sh sjsas_pe-8_2-linux.bin sjsas_pe-8_2-linux.bin: sjsas_pe-8_2-linux.bin: cannot execute binary file [terapaths@terapaths installation]$ chmod ugo+x sjsas_pe-8_2-linux.bin
The Sun Java System Application Server Platform Edition components will be installed in the following directory, which is referred to as the "Installation Directory".To use this directory, press only the Enter key. To use a different directory, type in the full path of the directory to use followed by pressing the Enter key. Installation Directory [/home/terapaths/SUNWappserver] {"<" goes back, "!" exits}: The directory "/home/terapaths/SUNWappserver" does not exist. Do you want to create it now or choose another directory? 1. Create Directory 2. Choose New Enter the number corresponding to your choice [1] {"<" goes back, "!" exits} 1 The Sun Java System Application Server requires a Java 2 SDK. Please provide the path to a Java 2 SDK 1.4.1 or greater. Recommended version is 1.4.2 or greater. [/usr/java/jdk1.5.0_13] {"<" goes back, "!" exits} Supply the administrator user's password and override any of the other initial configuration settings as necessary. Administrator User [admin] {"<" goes back, "!" exits}: Administrator User's Password (8 chars minimum): Re-enter Password: Do you want to store administrator user name and password in user preference file [yes] {"<" goes back, "!" exits}? yes Administration Port [4848] {"<" goes back, "!" exits}: 53470 HTTP Port [8080] {"<" goes back, "!" exits}: 40860 HTTPS Port [8181] {"<" goes back, "!" exits}: 48580 Please choose installation options. Do you want to upgrade from previous Application Server version [no] {"<" goes back, "!" exits}?
Installation Successful. Next Steps: 1. Access the About Application Server PE 8 welcome page at: file:///home/terapaths/SUNWappserver/docs/about.html 2. Start the Application Server by executing: /home/terapaths/SUNWappserver/bin/asadmin start-domain domain1 3. Start the Admin Console: http://localhost:53470
Append to configuration file
/home/terapaths/SUNWappserver/domains/domain1/config/server.policy
// TeraPaths-specific permissions // Permission to NetworkDeviceController to create ClassLoaders for hardware drivers grant codeBase "file:${com.sun.aas.instanceRoot}/generated/ejb/j2ee-modules/terapathsNetworkDeviceControllers/-" { permission java.lang.RuntimePermission "createClassLoader"; }; grant codeBase "file:${com.sun.aas.instanceRoot}/applications/j2ee-modules/terapathsNetworkDeviceControllers/-" { permission java.lang.RuntimePermission "createClassLoader"; }; // Permissions needed by WAN proxy server(s) grant codeBase "file:${com.sun.aas.instanceRoot}/generated/ejb/j2ee-modules/terapathsESnetOSCARSProxy/-" { permission java.security.AllPermission; permission java.lang.RuntimePermission "getClassLoader"; permission java.lang.RuntimePermission "createClassLoader"; permission java.net.SocketPermission "*", "connect,accept,resolve"; permission java.io.FilePermission "<>", "read,write,delete"; }; grant codeBase "file:${com.sun.aas.instanceRoot}/applications/j2ee-modules/terapathsESnetOSCARSProxy/-" { permission java.security.AllPermission; permission java.lang.RuntimePermission "getClassLoader"; permission java.lang.RuntimePermission "createClassLoader"; permission java.net.SocketPermission "*", "connect,accept,resolve"; permission java.io.FilePermission "<>", "read,write,delete"; };
Change jvm settings, place within <java-config/>
tag at end.
/home/terapaths/SUNWappserver/domains/domain1/config/domain.xml
<!-- this is to prevent the java.lang.OutOfMemoryError: PermGen space during deployment--> <jvm-options>-XX:MaxPermSize=256m</jvm-options> <!-- --> <!-- additional jvm options to fix file descriptor leak due to sockets not being closed (bug#:6321777) --> <jvm-options>-server</jvm-options> <jvm-options>-Dcom.sun.enterprise.web.connector.grizzly.useKeepAliveAlgorithm=true</jvm-options> <jvm-options>-Dcom.sun.enterprise.web.connector.grizzly.socketSoTimeout=30000</jvm-options> <jvm-options>-Dcom.sun.enterprise.web.connector.grizzly.maxKeepAliveRequests=250</jvm-options> <jvm-options>-Dcom.sun.enterprise.server.ss.ASQuickStartup=false</jvm-options> <!-- end of additional jvm options -->
MySQL
[root@terapaths installation]# rpm -Uhv MySQL-* error: Failed dependencies: MySQL conflicts with mysql-4.1.20-2.RHEL4.1.0.1.i386 [root@terapaths installation]# rpm -e mysql-4.1.20 error: Failed dependencies: libmysqlclient.so.14 is needed by (installed) cyrus-sasl-sql-2.1.19-14.i386 libmysqlclient.so.14(libmysqlclient_14) is needed by (installed) cyrus-sasl-sql-2.1.19-14.i386 [root@terapaths installation]# rpm -Uhv MySQL-server-community-5.0.45-0.rhel4.x86_64.rpm error: Failed dependencies: MySQL conflicts with mysql-4.1.20-2.RHEL4.1.0.1.i386 [root@terapaths installation]# rpm -e mysql-4.1.20 error: Failed dependencies: libmysqlclient.so.14 is needed by (installed) cyrus-sasl-sql-2.1.19-14.i386 libmysqlclient.so.14(libmysqlclient_14) is needed by (installed) cyrus-sasl-sql-2.1.19-14.i386 [root@terapaths installation]# rpm -e cyrus-sasl-sql-2.1.19 [root@terapaths installation]# rpm -e mysql-4.1.20
Change users
[root@terapaths installation]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.0.45-community MySQL Community Edition (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> select User,Host from mysql.user -> ; +------+-----------+ | User | Host | +------+-----------+ | root | 127.0.0.1 | | root | localhost | | root | terapaths | +------+-----------+ 3 rows in set (0.01 sec)
mysql> create database terapaths; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON terapaths.* TO 'terapaths'@'localhost' IDENTIFIED BY '********'; Query OK, 0 rows affected (0.00 sec) mysql> select User,Host from mysql.user -> ; +-----------+-----------+ | User | Host | +-----------+-----------+ | root | 127.0.0.1 | | root | localhost | | terapaths | localhost | | root | terapaths | +-----------+-----------+ 4 rows in set (0.00 sec) mysql>
Database creation
Create the terapaths MySQL database by running terapaths-create-1.2.0.sql.
[terapaths@terapaths dist]$ pwd /home/terapaths/installation/dist [terapaths@terapaths dist]$ mysql -u terapaths -D terapaths -p < terapaths-create-1.2.0.sql Enter password: [terapaths@terapaths ~]$ mysql -u terapaths -p -D terapaths Enter password: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 5.0.45-community MySQL Community Edition (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show tables; +-----------------------+ | Tables_in_terapaths | +-----------------------+ | WANServiceURL | | bandwidthClasses | | diffServClasses | | hosts | | remoteLANServiceURL | | reservations | | routerDrivers | | routerManagers | | routers | | routes | | systemMessages | | terapathsDatabaseInfo | | users | | virtualRouterMembers | | virtualRouters | +-----------------------+ 15 rows in set (0.01 sec)
Edit terapaths-populate-1.2.0.sql to match your network host information and run it to populate the database.
[yee@terapaths installation]$ cat terapaths-end2end-SLACside-secure-1.2.0.sql -- -- Populate the TeraPaths database for the TeraPaths UMich-side secure testbed -- MySQL server on tera01.ultralight.org (192.84.86.25) -- Database structure version 1.2.0 -- 01/23/07 -- USE terapaths; -- -- database settings -- INSERT INTO terapathsDatabaseInfo ( version, creationTimeStamp, serverIpAddress, serverName, siteName ) VALUES ( "1.2.0", NOW(), "192.124.59.130", "terapaths.slac.stanford.edu", "SLAC" ); -- -- drivers for communication between instance and router INSERT INTO routerDrivers ( name, driverInfo ) VALUES ( "DUMMY_DRIVER", "hardware,DUMMY,type,DUMMY,os,DUMMY,comm_protocol,DUMMY" ); INSERT INTO routerDrivers ( name, driverInfo ) VALUES ( "CISCO_WS-C6509_IOS_TELNET", "hardware,CISCO,type,WS-6509,os,IOS,comm_protocol,TELNET" ); INSERT INTO routerDrivers ( name, driverInfo ) VALUES ( "CISCO_WS-C6509_IOS_SSH", "hardware,CISCO,type,WS-6509,os,IOS,comm_protocol,SSH" ); SELECT @driver := LAST_INSERT_ID(); -- -- terapath instance, and endpoint to communicate to -- INSERT INTO routerManagers ( ipAddress, name, wsdlURL, interface, managerDir ) VALUES ( "192.124.59.130", "terapaths01.slac.stanford.edu", "https://192.124.59.130:48580/terapathsNetworkDeviceControllers/tpsNDC", "GigabitEthernet3/33", "/home/terapaths/routerConfig" ); SELECT @edgeManager := LAST_INSERT_ID(); SELECT @borderManager := @edgeManager; -- -- routers -- INSERT INTO routers ( ipAddress, name, routerInfo, driverParameters, driverId, managingNodeId, position ) VALUES ( "192.124.59.129", "tera", "hardware,CISCO,type,WS-6509,os,IOS12.2(18)SXD1", "system_prompt,tera,username,terapaths,entry_pass,********,enable_pass,********,policy_name_root,QoS_tera", @driver, @edgeManager, "edge" ); SELECT @edge := LAST_INSERT_ID(); SELECT @border := @edge; INSERT INTO virtualRouters ( name ) VALUES ( "tera (physical-edge)" ); SELECT @vedge := LAST_INSERT_ID(); INSERT INTO virtualRouters ( name ) VALUES ( "nile (physical-border)" ); SELECT @vborder := LAST_INSERT_ID(); INSERT INTO virtualRouterMembers ( virtualRouterId, routerId ) VALUES (<at:var at:name="vedge," />edge), (<at:var at:name="vborder," />border); INSERT INTO routes ( edge, border ) VALUES ( @vedge, @vborder ); SELECT @route := LAST_INSERT_ID(); -- -- worker nodes --- INSERT INTO hosts ( ipAddress, name, route, interface ) VALUES ("192.124.59.200", "node00.slac.stanford.edu", @route, "GigabitEthernet3/4"), ("192.124.59.201", "node01.slac.stanford.edu", @route, "GigabitEthernet3/5"), ("192.124.59.202", "node02.slac.stanford.edu", @route, "GigabitEthernet3/6"), ("192.124.59.203", "node03.slac.stanford.edu", @route, "GigabitEthernet3/7"), ("192.124.59.204", "node04.slac.stanford.edu", @route, "GigabitEthernet3/8"), ("192.124.59.205", "node05.slac.stanford.edu", @route, "GigabitEthernet3/9"), ("192.124.59.206", "node06.slac.stanford.edu", @route, "GigabitEthernet3/10"), ("192.124.59.207", "node07.slac.stanford.edu", @route, "GigabitEthernet3/11"), ("192.124.59.208", "node08.slac.stanford.edu", @route, "GigabitEthernet3/12"); INSERT INTO remoteLANServiceURL ( ipAddress, mask, maskedIpAddress, prefix, wsdlURL, preference ) VALUES ("198.124.220.0", "255.255.255.0", ipAddr2dec("198.124.220.0")&ipAddr2dec("255.255.255.0"), 24, "https://198.124.220.9:48588/terapathsRemoteTPsListeners/tpsRTPsL", 0); INSERT INTO WANServiceURL ( ipAddress, mask, maskedIpAddress, prefix, wsdlURL, preference ) VALUES ("198.124.220.0", "255.255.255.0", ipAddr2dec("198.124.220.0")&ipAddr2dec("255.255.255.0"), 24, "OSCARS,https://oscars.es.net/axis2/services/OSCARS", 0); INSERT INTO diffServClasses ( name, dscp, aggregateBandwidth, configured, active ) VALUES ("BE",0,0,0,0), ("CS01",1,0,0,0), ("CS02",2,0,0,0), ("CS03",3,0,0,0), ("CS04",4,0,0,0), ("CS05",5,0,0,0), ("CS06",6,0,0,0), ("CS07",7,0,0,0), ("CS1",8,0,0,0), ("CS11",9,0,0,0), ("AF11",10,0,0,0), ("CS13",11,0,0,0), ("AF12",12,0,0,0), ("CS15",13,0,0,0), ("AF13",14,0,0,0), ("CS17",15,0,0,0), ("CS2",16,0,0,0), ("CS21",17,0,0,0), ("AF21",18,0,0,0), ("CS23",19,0,0,0), ("AF22",20,0,0,0), ("CS25",21,0,0,0), ("AF23",22,0,0,0), ("CS27",23,0,0,0), ("CS3",24,0,0,0), ("CS31",25,0,0,0), ("AF31",26,0,0,0), ("CS33",27,0,0,0), ("AF32",28,0,0,0), ("CS35",29,0,0,0), ("AF33",30,0,0,0), ("CS37",31,0,0,0), ("CS4",32,0,0,0), ("CS41",33,0,0,0), ("AF41",34,0,0,0), ("CS43",35,0,0,0), ("AF42",36,0,0,0), ("CS45",37,0,0,0), ("AF43",38,0,0,0), ("CS47",39,0,0,0), ("CS5",40,0,0,0), ("CS51",41,0,0,0), ("CS52",42,0,0,0), ("CS53",43,0,0,0), ("CS54",44,0,0,0), ("CS55",45,0,0,0), ("EF",46,0,0,0), ("CS57",47,0,0,0), ("CS6",48,0,0,0), ("CS61",49,0,0,0), ("CS62",50,0,0,0), ("CS63",51,0,0,0), ("CS64",52,0,0,0), ("CS65",53,0,0,0), ("CS66",54,0,0,0), ("CS67",55,0,0,0), ("CS7",56,0,0,0), ("CS71",57,0,0,0), ("CS72",58,0,0,0), ("CS73",59,0,0,0), ("CS74",60,0,0,0), ("CS75",61,0,0,0), ("CS76",62,0,0,0), ("CS77",63,0,0,0); --Simple partitioning of bandwidth for testbed's 1 Gbit connection UPDATE diffServClasses SET aggregateBandwidth= 15000000, configured=1 WHERE name="CS1"; UPDATE diffServClasses SET aggregateBandwidth= 20000000, configured=1 WHERE name="AF11"; UPDATE diffServClasses SET aggregateBandwidth= 40000000, configured=1 WHERE name="CS2"; UPDATE diffServClasses SET aggregateBandwidth= 50000000, configured=1 WHERE name="AF21"; UPDATE diffServClasses SET aggregateBandwidth= 75000000, configured=1 WHERE name="AF31"; UPDATE diffServClasses SET aggregateBandwidth=100000000, configured=1 WHERE name="AF41"; UPDATE diffServClasses SET aggregateBandwidth=150000000, configured=1 WHERE name="CS47"; UPDATE diffServClasses SET aggregateBandwidth=200000000, configured=1 WHERE name="EF"; UPDATE diffServClasses SET aggregateBandwidth=250000000, configured=1 WHERE name="CS7"; INSERT INTO bandwidthClasses ( name, diffServClassId, bandwidth, type, configured, active ) VALUES ("CS1_1",(SELECT id FROM diffServClasses WHERE name="CS1"), 5000000,"shared",1,0), ("CS1_2",(SELECT id FROM diffServClasses WHERE name="CS1"), 5000000,"shared",1,0), ("CS1_3" ,(SELECT id FROM diffServClasses WHERE name="CS1"), 5000000,"shared",1,0), ("AF11_1",(SELECT id FROM diffServClasses WHERE name="AF11"),10000000,"shared",1,0), ("AF11_2",(SELECT id FROM diffServClasses WHERE name="AF11"),10000000,"shared",1,0), ("CS2_1",(SELECT id FROM diffServClasses WHERE name="CS2"), 20000000,"shared",1,0), ("CS2_2",(SELECT id FROM diffServClasses WHERE name="CS2"), 20000000,"shared",1,0), ("AF21",(SELECT id FROM diffServClasses WHERE name="AF21"), 50000000,"static",1,0), ("AF31",(SELECT id FROM diffServClasses WHERE name="AF31"), 75000000,"static",1,0), ("AF41",(SELECT id FROM diffServClasses WHERE name="AF41"), 100000000,"static",1,0), ("CS47",(SELECT id FROM diffServClasses WHERE name="CS47"), 150000000,"static",1,0), ("EF",(SELECT id FROM diffServClasses WHERE name="EF"), 200000000,"static",1,0), ("CS7",(SELECT id FROM diffServClasses WHERE name="CS7"), 250000000,"static",1,0); --Default user INSERT INTO users ( userName, passWord, type ) VALUES ('terapaths',PASSWORD('********'),'standard'); [yee@terapaths installation]$
Edit terapaths.properties to contain the database info and service module URLs for each host at which one or more terapaths modules will be deployed.
[yee@terapaths dist]$ cat terapaths.properties ################################################### # Change this file to match your host information # ################################################### # driver.for.host.localhost = com.mysql.jdbc.Driver db.for.host.localhost = jdbc:mysql://localhost:40860/terapaths?user=terapaths&password=******** pws.for.host.localhost = https://localhost:40860/terapathsPublicWebServices/tpsPWS iws.for.host.localhost = https://localhost:40860/terapathsInternalWebServices/tpsIWS OSCARS.for.host.localhost = https://localhost:40860/terapathsESnetOSCARSProxy/ESnetOSCARSProxy ################################################ # Add other hosts here by specifying same five # # values as above for each host # ################################################
Edit proxy.properties to match your WAN provider accounts (currently only ESnet/OSCARS is supported)
Edit terapathsWebInterfaceDefaults to contain the defaults of your choice for the web interface.
Copy the file to the /home/terapaths directory of the host where terapathsWebInterface will be deployed.
The defaults can be changed at any time, even when the service is running.
This file overrides the build-in defaults.
[yee@terapaths dist]$ cat terapathsWebInterfaceDefaults ################################## # Defaults for the web interface # # This file must be in the # # /home/terapaths directory # # ORDER IS IMPORTANT!!! # ################################## # default web interace value # 1. source IP address 192.124.59.200 # 2. destination IP address # 198.124.220.134 192.124.59.200 # 3. source low port # 10000 # 4. source high port # 10000 # 5. destination low port # 10000 # 6. destination high port # 10000 # 7. protocol tcp # 8. reservation direction bidirectional # 9. time span for schedule day
Edit autodeploy-hosts to describe which modules to deploy at which hosts.
[yee@terapaths dist]$ cat autodeploy-hosts ################################################################# # user@host_to_deploy:path_of_autodeploy_dir war1 war2 ... warN # ################################################################# #terapaths@localhost:/home/terapaths/SUNWappserver/domains/domain2/autodeploy/ terapathsWebInterface.war terapaths@localhost:/home/terapaths/SUNWappserver/domains/domain1/autodeploy/ terapathsWebInterface.war terapathsInternalWebServices.war terapathsPublicWebServices.war terapathsESnetOSCARSProxy.war terapathsRemoteTPsListeners.war terapathsNetworkDeviceControllers.war terapaths@localhost:/home/terapaths/SUNWappserver/domains/domain1/autodeploy/ terapathsNetworkDeviceControllers.war