diff options
Diffstat (limited to 'scripts/install')
-rwxr-xr-x | scripts/install/create_sim.sh | 55 | ||||
-rwxr-xr-x | scripts/install/go_live.sh | 2 | ||||
-rw-r--r-- | scripts/install/opensim-monit.conf | 17 | ||||
-rwxr-xr-x | scripts/install/secure.sh | 20 |
4 files changed, 53 insertions, 41 deletions
diff --git a/scripts/install/create_sim.sh b/scripts/install/create_sim.sh index 0681067..08cedba 100755 --- a/scripts/install/create_sim.sh +++ b/scripts/install/create_sim.sh | |||
@@ -1,6 +1,6 @@ | |||
1 | #!/bin/bash | 1 | #!/bin/bash |
2 | 2 | ||
3 | source common.sh | 3 | source ../common.sh |
4 | getPrgDir | 4 | getPrgDir |
5 | 5 | ||
6 | NAME=$1 | 6 | NAME=$1 |
@@ -9,8 +9,7 @@ URL=$3 | |||
9 | IP=$4 | 9 | IP=$4 |
10 | SIZE=$5 | 10 | SIZE=$5 |
11 | 11 | ||
12 | OSPATH="/opt/opensim" | 12 | cd ${OS_PATH}/config |
13 | cd $OSPATH/config | ||
14 | 13 | ||
15 | k=0 | 14 | k=0 |
16 | for i in $(seq -w 1 99) | 15 | for i in $(seq -w 1 99) |
@@ -22,38 +21,37 @@ do | |||
22 | fi | 21 | fi |
23 | done | 22 | done |
24 | 23 | ||
25 | if [ "x$NAME" = "x" ] | 24 | if [ "x${NAME}" = "x" ] |
26 | then | 25 | then |
27 | NAME="No name sim $RANDOM" # Should be unique per grid. | 26 | NAME="No name sim $RANDOM" # Should be unique per grid. |
28 | echo "WARNING setting the sim name to [$NAME], this may not be what you want." | 27 | echo "WARNING setting the sim name to [${NAME}], this may not be what you want." |
29 | fi | 28 | fi |
30 | # Sanitize the name. Not removing [ or ], couldn't get that to work, only important for Windows. | 29 | # Sanitize the name. Not removing [ or ], couldn't get that to work, only important for Windows. |
31 | sim=$(sanitize $NAME) | 30 | sim=$(sanitize ${NAME}) |
32 | 31 | ||
33 | if [ "x$LOCATION" = "x" ] | 32 | if [ "x${LOCATION}" = "x" ] |
34 | then | 33 | then |
35 | LOCATION="$RANDOM,$RANDOM" # again UNIQUE (i.e. ONLY ONE) per grid in THIS case! | 34 | LOCATION="$RANDOM,$RANDOM" # again UNIQUE (i.e. ONLY ONE) per grid in THIS case! |
36 | echo "WARNING setting the Location to $LOCATION, this may not be what you want." | 35 | echo "WARNING setting the Location to ${LOCATION}, this may not be what you want." |
37 | fi | 36 | fi |
38 | 37 | ||
39 | if [ "x$IP" = "x" ] | 38 | if [ "x${IP}" = "x" ] |
40 | then | 39 | then |
41 | # 0.0.0.0 will work for a single sim per physical machine, otherwise we need the real internal IP. | ||
42 | IP="0.0.0.0" | 40 | IP="0.0.0.0" |
43 | echo "WARNING setting the InternalAddress to $IP, this may not be what you want." | 41 | echo "WARNING setting the InternalAddress to ${IP}, this may not be what you want." |
44 | # echo " 0.0.0.0 will work for a single sim per physical machine, otherwise we need the real internal IP." | 42 | # echo " 0.0.0.0 will work for a single sim per physical machine, otherwise we need the real internal IP." |
45 | # According to the OpenSim docs, 0.0.0.0 means to listen on all NICs the machine has, which should work fine. | 43 | # According to the OpenSim docs, 0.0.0.0 means to listen on all NICs the machine has, which should work fine. |
46 | fi | 44 | fi |
47 | 45 | ||
48 | if [ "x$URL" = "x" ] | 46 | if [ "x${URL}" = "x" ] |
49 | then | 47 | then |
50 | # Here we make use of an external IP finding service. Careful, it may move. | 48 | # Here we make use of an external IP finding service. Careful, it may move. |
51 | # URL=$(wget -q http://automation.whatismyip.com/n09230945.asp -O -) # URL is best (without the HTTP://), but IP (e.g. 88.109.81.55) works too. | 49 | # URL=$(wget -q http://automation.whatismyip.com/n09230945.asp -O -) # URL is best (without the HTTP://), but IP (e.g. 88.109.81.55) works too. |
52 | URL="SYSTEMIP" | 50 | URL="SYSTEMIP" |
53 | echo "WARNING setting the ExternalHostName to $URL, this may not be what you want." | 51 | echo "WARNING setting the ExternalHostName to ${URL}, this may not be what you want." |
54 | fi | 52 | fi |
55 | 53 | ||
56 | if [ "x$SIZE" = "x" ] | 54 | if [ "x${SIZE}" = "x" ] |
57 | then | 55 | then |
58 | SIZE="256" | 56 | SIZE="256" |
59 | fi | 57 | fi |
@@ -68,29 +66,30 @@ fi | |||
68 | PORT=$(( 9005 + (10#$k * 5) )) # 9002 is used for HTTP/UDP so START with port 9003! CAUTION Diva/D2 starts at port 9000. | 66 | PORT=$(( 9005 + (10#$k * 5) )) # 9002 is used for HTTP/UDP so START with port 9003! CAUTION Diva/D2 starts at port 9000. |
69 | UUID=$(uuidgen) | 67 | UUID=$(uuidgen) |
70 | 68 | ||
71 | echo "Creating sim$NUM on port $PORT @ $LOCATION - $NAME." | 69 | echo "Creating sim${NUM} on port ${PORT} @ ${LOCATION} - ${NAME}." |
72 | 70 | ||
73 | cp -r sim_skeleton sim$NUM | 71 | cp -r sim_skeleton sim${NUM} |
74 | 72 | ||
75 | cd sim$NUM | 73 | cd sim${NUM} |
76 | mv My_sim.xml ${sim}.xml | 74 | mv My_sim.xml ${sim}.xml |
77 | sed -i "s@SIM_NAME@$NAME@g" ${sim}.xml | 75 | sed -i "s@SIM_NAME@${NAME}@g" ${sim}.xml |
78 | sed -i "s@SIM_UUID@$UUID@g" ${sim}.xml | 76 | sed -i "s@SIM_UUID@${UUID}@g" ${sim}.xml |
79 | sed -i "s@SIM_POS@$LOCATION@g" ${sim}.xml | 77 | sed -i "s@SIM_POS@${LOCATION}@g" ${sim}.xml |
80 | sed -i "s@SIM_IP@$IP@g" ${sim}.xml | 78 | sed -i "s@SIM_IP@${IP}@g" ${sim}.xml |
81 | sed -i "s@SIM_INT_PORT@$(( $PORT + 1 ))@g" ${sim}.xml | 79 | sed -i "s@SIM_INT_PORT@$(( ${PORT} + 1 ))@g" ${sim}.xml |
82 | sed -i "s@SIM_URL@$URL@g" ${sim}.xml | 80 | sed -i "s@SIM_URL@${URL}@g" ${sim}.xml |
83 | sed -i "s@SIM_SIZE@$SIZE@g" ${sim}.xml | 81 | sed -i "s@SIM_SIZE@${SIZE}@g" ${sim}.xml |
84 | 82 | ||
85 | ln -s ../../current/scripts/common.sh common.sh | 83 | ln -s ../../current/scripts/common.sh common.sh |
86 | ln -s ../../current/scripts/start-sim start-sim | 84 | ln -s ../../current/scripts/start-sim start-sim |
87 | cp -P start-sim backup-sim | 85 | cp -P start-sim backup-sim |
88 | cp -P start-sim stop-sim | 86 | cp -P start-sim stop-sim |
89 | 87 | ||
90 | sed -i "s@SIM_NUMBER@$NUM@g" ThisSim.ini | 88 | sed -i "s@SIM_NUMBER@${NUM}@g" ThisSim.ini |
91 | sed -i "s@SIM_PORT@$PORT@g" ThisSim.ini | 89 | sed -i "s@SIM_PORT@${PORT}@g" ThisSim.ini |
92 | 90 | ||
93 | sed -i "s@SIM_NUMBER@$NUM@g" opensim-monit.conf | 91 | sed -i "s@OS_PATH@${OS_PATH}@g" opensim-monit.conf |
92 | sed -i "s@SIM_NUMBER@${NUM}@g" opensim-monit.conf | ||
94 | 93 | ||
95 | sudo chown -R opensim:opensim .. | 94 | sudo chown -R ${OS_USER}:${OS_USER} .. |
96 | sudo chmod -R g+w .. | 95 | sudo chmod -R g+w .. |
diff --git a/scripts/install/go_live.sh b/scripts/install/go_live.sh index 21d7072..c5ce90e 100755 --- a/scripts/install/go_live.sh +++ b/scripts/install/go_live.sh | |||
@@ -1,6 +1,6 @@ | |||
1 | #!/bin/bash | 1 | #!/bin/bash |
2 | 2 | ||
3 | OSPATH="/opt/opensim" | 3 | source common.sh |
4 | 4 | ||
5 | for i in $(seq 99) | 5 | for i in $(seq 99) |
6 | do | 6 | do |
diff --git a/scripts/install/opensim-monit.conf b/scripts/install/opensim-monit.conf index 7785056..409b69e 100644 --- a/scripts/install/opensim-monit.conf +++ b/scripts/install/opensim-monit.conf | |||
@@ -9,23 +9,16 @@ | |||
9 | # on ubuntu/debian, this is overridden by the CHECK_INTERVALS var in | 9 | # on ubuntu/debian, this is overridden by the CHECK_INTERVALS var in |
10 | # /etc/default/monit . the below assumes you've set it to 30 seconds. | 10 | # /etc/default/monit . the below assumes you've set it to 30 seconds. |
11 | # | 11 | # |
12 | # if process dies, will restart sim within 30 seconds. if process | ||
13 | # dies 5 times in as many tries, will stop trying and send email | ||
14 | # alert. | ||
15 | # | ||
16 | # if SimFPS drops to 0 for 2 minutes, restart. | ||
17 | # | ||
18 | # if process CPU usage stays above 300% for 2 minutes, restart. | ||
19 | # | ||
20 | # see ../README for configuration instructions. | 12 | # see ../README for configuration instructions. |
21 | # | 13 | # |
22 | # Hmmmm, seems that monit changing to a user and running bash -l is different from sudo changing to a user and running bash -l. | 14 | # Hmmmm, seems that monit changing to a user and running bash -l is different from sudo changing to a user and running bash -l. |
23 | # | 15 | # |
24 | check process sim01 with pidfile /var/run/opensim/sim01.pid | 16 | check process simSIM_NUMBER with pidfile /OS_PATH/caches/simSIM_NUMBER.pid |
25 | start program = "/usr/bin/sudo -Hu opensim /bin/bash -lc 'cd /opt/opensim/config/sim01 && /opt/opensim/config/sim01/start-sim -q'" | 17 | start program = "/usr/bin/sudo -Hu opensim /bin/bash -lc 'cd /OS_PATH/config/simSIM_NUMBER && /OS_PATH/config/simSIM_NUMBER/start-sim -q'" |
26 | as uid root and gid root | 18 | as uid root and gid root |
27 | stop program = "/usr/bin/sudo -Hu opensim /bin/bash -lc 'cd /opt/opensim/config/sim01 && /opt/opensim/config/sim01/stop-sim'" with timeout 600 seconds | 19 | stop program = "/usr/bin/sudo -Hu opensim /bin/bash -lc 'cd /OS_PATH/config/simSIM_NUMBER && /OS_PATH/config/simSIM_NUMBER/stop-sim'" with timeout 600 seconds |
28 | if cpu usage > 50% for 4 cycles then restart | 20 | if cpu usage > 50% for 4 cycles then restart |
21 | if MEMORY usage > 10% for 4 cycles then restart | ||
29 | # if 5 restarts within 5 cycles then timeout | 22 | # if 5 restarts within 5 cycles then timeout |
30 | # if failed url http://127.0.0.1:9005/jsonSimStats/ | 23 | # if failed url http://127.0.0.1:9005/jsonSimStats/ |
31 | # and content != '"SimFPS":0.0,' for 4 cycles | 24 | # and content != '"SimFPS":0.0,' for 4 cycles |
@@ -33,4 +26,4 @@ check process sim01 with pidfile /var/run/opensim/sim01.pid | |||
33 | # if failed url http://127.0.0.1:9008/jsonSimStats/ | 26 | # if failed url http://127.0.0.1:9008/jsonSimStats/ |
34 | # and content == '"SimFPS":' for 4 cycles | 27 | # and content == '"SimFPS":' for 4 cycles |
35 | # then restart | 28 | # then restart |
36 | 29 | depends on ROBUST | |
diff --git a/scripts/install/secure.sh b/scripts/install/secure.sh new file mode 100755 index 0000000..48255b6 --- /dev/null +++ b/scripts/install/secure.sh | |||
@@ -0,0 +1,20 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | source ../common.sh | ||
4 | |||
5 | echo "Securing OpenSim." | ||
6 | sudo chmod 600 ${OS_PATH}/config/*.ini | ||
7 | sudo chown -R ${OS_USER}:${OS_USER} ${OS_PATH} | ||
8 | sudo chmod -R 775 ${OS_PATH} | ||
9 | sudo chmod -R a-x ${OS_PATH} | ||
10 | sudo chmod -R a+X ${OS_PATH} | ||
11 | sudo chmod -R g+w ${OS_PATH} | ||
12 | sudo chmod -R a+x ${OS_PATH}/current/*.sh | ||
13 | sudo chmod -R a+x ${OS_PATH}/current/scripts/*.sh | ||
14 | sudo chmod -R a+x ${OS_PATH}/current/scripts/install/*.sh | ||
15 | sudo chmod a+x ${OS_PATH}/current/scripts/show-console | ||
16 | sudo chmod a+x ${OS_PATH}/current/scripts/start-sim | ||
17 | |||
18 | sudo chmod ug+rwx ${OS_PATH}/config | ||
19 | sudo chmod g+s ${OS_PATH}/config | ||
20 | sudo chmod 600 ${OS_PATH}/config/*.ini | ||