Difference between revisions of "Deploying to PlanetLab"
Line 40: | Line 40: | ||
Commands | Commands | ||
+ | Download the Linux binary for the Java Runtime Environment | ||
<pre> | <pre> | ||
pssh -h nodes.txt -l sfu_games -p 200 -t 600 -o /tmp/test1 "wget -nc http://nsl.cs.sfu.ca/tmp/jre-linux.bin" | pssh -h nodes.txt -l sfu_games -p 200 -t 600 -o /tmp/test1 "wget -nc http://nsl.cs.sfu.ca/tmp/jre-linux.bin" | ||
+ | </pre> | ||
+ | |||
+ | Copy the installation shell script to all the nodes in the slice | ||
+ | <pre> | ||
pscp -h nodes.txt -l sfu_games -t 180 -p 200 install_jvm.sh /home/sfu_games/install_jvm.sh | pscp -h nodes.txt -l sfu_games -t 180 -p 200 install_jvm.sh /home/sfu_games/install_jvm.sh | ||
+ | </pre> | ||
+ | |||
+ | Make the shell script executable on all the nodes | ||
+ | <pre> | ||
pssh -h nodes.txt -l sfu_games -p 200 -o /tmp chmod 755 /home/sfu_games/install_jvm.sh | pssh -h nodes.txt -l sfu_games -p 200 -o /tmp chmod 755 /home/sfu_games/install_jvm.sh | ||
+ | </pre> | ||
+ | |||
+ | Execute the shell script on all the nodes of the slice | ||
+ | <pre> | ||
pssh -h nodes.txt -l sfu_games -p 200 -t 300 -o /tmp ./install_jvm.sh | pssh -h nodes.txt -l sfu_games -p 200 -t 300 -o /tmp ./install_jvm.sh | ||
</pre> | </pre> |
Revision as of 05:35, 20 September 2009
Deploying Files to PlanetLab Nodes
To deploy your app to PlanetLab use the command below:
pscp -h ''nodes.txt'' -l slice_name -t 180 -p 200 yourapp.tar /home/slice_name/yourapp.tar
Replace slice_name and yourapp.tar with the appropriate values.
The -t switch denotes the timeout period for each node. For example, -t 180 sets the pscp command timeout period to 3 minutes. A "Timeout" status will be returned if the node failed to response within the timeout period.
The -p 200 denotes the max number of parallel threads for the pscp process. A value of 200 means the process will attempt to copy the file to 200 nodes concurrently. Please do not abuse this setting. You will run out of memory if you spawn too many threads.
Executing Remote Commands
You can use pssh to issue a command to all nodes in your slice. For example, the command below will untar yourapp.tar from the above example.
pssh -h nodes.txt -l sfu_games -t 180 -p 200 -o /tmp "tar xvf yourapp.tar"
Installing Java
Below is a series of commands used to deploy Java on PlanetLab.
The content of install_jvm.sh
#!/bin/sh echo -e "q\nyes\n" | sudo sh jre-linux.bin | grep "\.\.\."
Commands
Download the Linux binary for the Java Runtime Environment
pssh -h nodes.txt -l sfu_games -p 200 -t 600 -o /tmp/test1 "wget -nc http://nsl.cs.sfu.ca/tmp/jre-linux.bin"
Copy the installation shell script to all the nodes in the slice
pscp -h nodes.txt -l sfu_games -t 180 -p 200 install_jvm.sh /home/sfu_games/install_jvm.sh
Make the shell script executable on all the nodes
pssh -h nodes.txt -l sfu_games -p 200 -o /tmp chmod 755 /home/sfu_games/install_jvm.sh
Execute the shell script on all the nodes of the slice
pssh -h nodes.txt -l sfu_games -p 200 -t 300 -o /tmp ./install_jvm.sh