Hauptinhalt

Installation des Base-Systems und OpenSim am Beispiel V-Server Jiffybox

Auf https://admin.jiffybox.de/index.phpin das Admin Interface für Jiffybox einloggen.

Eine neue Jiffybox erstellen

Neu erstellte Box starten:

IP Adresse ermitteln (Dies ist die letzte der beiden angezeigten Adressen)

Nun in einer Shell (z.B. Putty für Windows oder Terminal bei OS-X) folgenden Befehl eintippen: ssh Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!(die gezeigte IP Adresse muss natürlich durch Eure ersetzt werden).

Nun befindet man sich am Prompt seiner installierten Linux Distribution. Dies funktioniert bis hierhin für alle auswählbaren Distributionen gleich. Die nächsten Schritte Sind Distributionsspezifisch. Da ich oben Debian Wheezy 64 Bit ausgewählt habe, sind nachfolgende Befehle auch nur für diese Distribution anzuwenden. Diese funktionieren allerdings auch bei Ubuntu – nur kann es sein, dass Ubuntu andere Programmversionen bereitstellt. Dies ist zum Beispiel im Falle Mono wichtig. Ubuntu 12.04 hat hier die identische (und zu empfehlende) Version wie Debian. Ubuntu 14.04 installiert eine neuere Version, die aber nicht zu empfehlen ist.

Linux Distribution erfragen

root@j119129:~# lsb_release -a
No LSB modules are available.
Distributor ID:      Debian
Description:  Debian GNU/Linux 7.7 (wheezy)
Release:      7.7
Codename:     wheezy

 

Update der Pakete
root@j119129:~# apt-get update

 

User erstellen (statt opensim kann natürlich jeder andere User-Name verwendet werden)

root@j119129:~# adduser opensim
Adding user `opensim' ...
Adding new group `opensim' (1000) ...
Adding new user `opensim' (1000) with group `opensim' ...
Creating home directory `/home/opensim' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for opensim
Enter the new value, or press ENTER for the default
      Full Name []: OpenSim User
      Room Number []:
      Work Phone []:
      Home Phone []:
      Other []:
Is the information correct? [Y/n] Y

 

Sudo für neuen User ermöglichen

root@j119129:~# adduser opensim sudo
Adding user `opensim' to group `sudo' ...
Adding user opensim to group sudo

Aus System ausloggen. Nun mit ssh opensim@IP-Adresse als opensim user einloggen. Alle Befehle, die root Rechte benötigen, ab jetzt mit vorangestelltem sudo absetzen.

 

MySql installieren

opensim@j119129:~# sudoapt-get install mysql-server mysql-client

Check, ob MySql läuft

opensim@j119129:~# ps aux | grep 'mysql'

root     18755  0.0  0.0   4188   732 ?        S    09:45   0:00 /bin/sh /usr/bin/mysqld_safe
mysql    19085  0.3  2.0 355008 42844 ?        Sl   09:45   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
root     19086  0.0  0.0   7932   700 ?        S    09:45   0:00 logger -t mysqld -p daemon.error
root     19287  0.0  0.0  10176   884 pts/2    S+   09:46   0:00 grep mysql

Mono installieren

opensim@j119129:~# sudoapt-get install mono-complete

Monoversion überprüfen

opensim@j119129:~# mono -V

Mono JIT compiler version 2.10.8.1 (Debian 2.10.8.1-8)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
      TLS:           __thread
      SIGSEGV:       altstack
      Notifications: epoll
      Architecture:  amd64
      Disabled:      none
      Misc:          softdebug
      LLVM:          supported, not enabled.
      GC:            Included Boehm (with typed GC and Parallel Mark)

 

Screen, unzip und htop installieren

opensim@j119129:~$ sudo apt-get install screen unzip htop

OpenSim installieren und MySql DB und User erstellen

OpenSim Verzeichnis erstellen

opensim@j119129:~$ mkdir opensim

 

In Verzeichnis gehen, OpenSim Metroversion downloaden und entpacken

opensim@j119129:~$ cd opensim

opensim@j119129:~/opensim$ wget http://hypergrid.org/download/os-dl-linux.php --content-disposition

opensim@j119129:~/opensim$ unzip metropolis-os_0803_PLUS_Release_LINUX.zip (Achtung nach einem neuen Release stimmt dieser Name nicht mehr. Mit dem folgenden Befehl den richtigen Namen erfragen und diese Datei dann entpacken!)

 

Verzeichnisinhalt auflisten

opensim@j119129:~/opensim$ls -al

total 28400
drwxr-xr-x  3 opensim opensim     4096 Jan  6 10:35 .
drwxr-xr-x  3 opensim opensim     4096 Jan  6 10:33 ..
drwxr-xr-x 14 opensim opensim    12288 Nov 15 23:54 bin
-rw-r--r--  1 opensim opensim     1513 Jun 23  2014 Liesmich.txt
-rw-r--r--  1 opensim opensim 29052125 Jan  6 10:34 metropolis-os_0803_PLUS_Release_LINUX.zip
-rw-r--r--  1 opensim opensim      674 Jun 23  2014 ReadMe.txt

 

OpenSim Datenbank und User erstellen

opensim@j119129:~/opensim/bin$ mysql -u root –p

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 43
Server version: 5.5.40-0+wheezy1 (Debian)
<< -- >>
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database opensim_regionen;

Query OK, 1 row affected (0.00 sec)

mysql> create user opensim@localhost;

Query OK, 0 rows affected (0.00 sec)

mysql> set password for opensim@localhost = password('GEHEIM');

Query OK, 0 rows affected (0.00 sec)

mysql> grant all on opensim_regionen.* to opensim@localhost;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

 

OpenSim anpassen

In das Konfigurationsverzeichnis springen

opensim@j119129:~/opensim$ cd bin/config-include

Datenbankkonfiguration in die Datei GridCommon.ini übernehmen

opensim@j119129:~/opensim/bin/config-include$ nano GridCommon.ini

den Eintrag Include-Storage = "config-include/storage/SQLiteStandalone.ini"; mit einem führenden Semikolon auskommentieren.

Nun mit dem Curser zum Eintrag

;    StorageProvider = "OpenSim.Data.MySQL.dll"
;    ConnectionString = "Data Source=localhost;Database=opensim;User ID=****;Password=*****;Old Guids=true;"

 

springen, die führenden Semikolon entfernen und Datenbank, User sowie Passwort mit den eben vergebenen Daten austauschen.

Folgender Eintrag sollte nun dort stehen:

StorageProvider = "OpenSim.Data.MySQL.dll"

ConnectionString = "Data Source=localhost;Database=opensim_regionen;User ID=opensim;Password=GEHEIM;Old Guids=true;"

Mit ctrl-X den editor beenden. Mit Y den File speichern.

Die Serversicherheit wird hier nicht behandelt. Es sei bemerkt, dass ssh abgesichert werden sollte (kein Login mit root und am besten nur Logins mit Key statt Passwort erlauben. Ebenfalls ist ein Wechseln des Standardports sinnvoll).

Darüberhinaus sollte eine Firewall installiert und aktiviert sein. Mit Linux ist normalerweise IP-Tables installiert. Im Netz findet man umfangreiche Dokumentation, wie man mit IP-Tables seinen Server absichert.

OpenSim enthält tausende Möglichkeiten, wie es eingestellt werden kann. Mit der hier gezeigten Anleitung ist es möglich, OpenSim auf einem frischen Server mit dem Standardport und den Standardeinstellungen zu starten.

Dazu im bin Verzeichnis folgenden Befehl ausführen:

screen -S OpenSim -d -m -l mono OpenSim.exe -hypergrid=true

Hierzu ist vorher noch die Datei Regions.ini im Verzeichnis bin/Regions anzupassen. Hilfe dazu findet Ihr hier: http://hypergrid.org/metropolis/wiki/de/index.php?title=OpenSimKonfiguration

 

 

Wie im Artikel '3DGrid verändert sich' schon beschrieben, fahre ich alle ROBUST Services herunter. Dies ist nunmehr geschehen. Um sich im neuen Grid anzumelden, bitte den Link 'Avatar Registrieren' benutzen. Nach erfolgreicher Registrierung bekommt man eine E-Mail, in der noch einmal die Daten (Name, Vorname, etc.) aufgelistet sind.

Damit man sich im Grid anmelden kann, benötigt man einen Viewer. Diesen sollte man aufgrund der Empfehlung der MetroGrid Admins auswählen. Infos und Downloads sind hier zu finden. Wir empfehlen den Phoenix Viewer, weil er zum einen die neuen VarRegions unterstützt, aber auch Mash Uploads, etc.

Damit man sich mit dem MetroGrid verbinden kann, muss man im Viewer die LoginAdresse http://hypergrid.org:8002 eingeben.

Nach dem erstmaligen einloggen landet man normalerweise in Centerworld. Hier kann man über die Karte dann seine Region suchen, auf der man das von der Uni zugewiesene Projekt bauen wird. Bitte dort eine sogenannte 'Landmark' setzen, damit man zukünftig von jedem Ort des Grids wieder zu seiner Projektregion teleportieren kann.

Fragen sollten generell ins Forum gepostet werden. Auch dieses wird von den Metro Admins betrieben und ist auf URL http://forum.hypergrid.org zu erreichen. Die Gemeinschaft dort hilft immer gerne und zeitnah.

Spezielle Probleme auf unseren Regionen sollten immer über Ihre Projektleiter an mich adressiert werden. Ich kann dann entscheiden, ob ein Fehler durch den Benutzer erzeigt wird, an der Regionssoftware liegt oder sogar den Metro-Admins gemeldet werden muss, wenn es sich um ein Grid-Server Problem handelt.

Text has to go here

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#!/bin/bash
#
# for usage, run without arguments
#
# see ../README for setup instructions.
#
 
# Original code by Dave Coyle (http://coyled.com)
# Tweaks by Gwyneth Llewelyn (http://gwynethllewelyn.net/)
 
# Requires bash 4
 
# The original script assumed that you‘d be running one sim per instance,
#  and launch a different script per sim.
# These changes assume you have multiple instances with multiple sims,
#  and that instance names are launched all from the same place with
#  an unique identification for each
 
# List of valid instances. Make sure you add all of your instances here
declare -A instances
for index in <Region 1> <Region 2> <Region x>
do
        instances[$index]=1
done
 
show_help() {
    echo "Input: opensim {start|stop|open|restart|console} "
    echo -n "    for following Regions: "
    echo ${!instances[*]}
}
 
# Change <opensim_user> with your valid opensim user
check_user() {
    if [ $USER != '<opensim_user>' ]; then
        echo "Only <opensim_user> is allowed to use the script"
        exit 1
    fi
}
 
setup() {
    if [ ! $1 ]; then
        show_help
        exit 1
    else
        SIM=$1
    fi
 
# Change the directories inline with your installation directories
# The pid_dir must be set to the value, you used in OpenSim.exe.config
# within your regions path
if [[ ${instances[$SIM]} ]]; then
        MONO="mono"
        OPENSIM_DIR="/put/your/opensim_dir/here"
        PID="$OPENSIM_DIR/put/your/pid_dir/here${SIM}/${SIM}.pid"
        SCREEN="screen"
        GRID_DIR="./<grid_dir>"
        # set GRID_DIR to the subdirectory where your individual
        #  instance configuration is
    else
        echo "Region ${SIM} is unknown. Exit."
        exit 1;
    fi
}
 
do_start() {
    if [ ! $1 ]; then
        show_help
        exit 1
    else
        SIM=$1
    fi
 
    setup $SIM
    check_user
 
    cd ${OPENSIM_DIR}/bin && $SCREEN -S $SIM -d -m -l $MONO OpenSim.exe -hypergrid=true -inidirectory="$GRID_DIR/$SIM" -logconfig="$GRID_DIR/$SIM/OpenSim.exe.config"
}
 
do_kill() {
    if [ ! $1 ]; then
        show_help
        exit 1
    else
        SIM=$1
    fi
 
    setup $SIM
    check_user
 
    if [ -f $PID ]; then
        kill -9 `cat $PID`
    else
        echo "Region ${SIM} PID not found."
        exit 1
    fi
}
 
do_console() {
    if [ ! $1 ]; then
        show_help
        exit 1
    fi
 
    setup $1
 
    cd ${OPENSIM_DIR}/bin && $SCREEN -S $SIM -d -m -l $MONO OpenSim.exe -hypergrid=true -inidirectory="$GRID_DIR/$SIM" -logconfig="$GRID_DIR/$SIM/OpenSim.exe.config"
}
 
do_open() {
if [ ! $1 ]; then
        show_help
        exit 1
    else
        SIM=$1
    fi
 
    setup $SIM
    check_user
 
    if [ -f $PID ]; then
        screen -r $SIM
    else
        echo "Region ${SIM} PID not found."
        exit 1
    fi
}
 
case "$1" in
    start)
        do_start $2
        ;;
    stop)
        do_kill $2
        ;;
    open)
    do_open $2
;;
    kill)
        do_kill $2
        ;;
    restart)
        do_kill $2
        do_start $2
        ;;
    console)
        do_console $2
        ;;
    *)
        show_help
        exit
        ;;
    esac