OpenSim Nuove istruzioni per “esperti”: come configurare una grid (0.7.1.1)…

Abbiamo pubblicato ad inizio anno alcune guide per consentire a persone anche relativamente digiune di programmazione di configurare/installare 1/4 sim ed eventualmente collegarle al mondo esterno o ad altre grid. Queste guide erano caratterizzate dall’essere abbastanza veloci e consentire la creazione di una regione in pochi minuti.

Perchè creare una grid invece di Sim Isolate?

Per coloro di voi un pochino più coraggiosi, spieghiamo ora come installare una intera Grid, cosa che può essere necessaria ed utile se volete utilizzare OpenSim in una struttura commerciale o in una scuola o istituto, o in una Università dove sia necessario configurare più di 1-4 regioni. E dove magari è necessario evitare che intrusi possano entrare, oppure ancora se voleste proprio dare vita ad una struttura di hosting di sim indipendenti (pare che sia uno sport abbastanza diffuso negli ultimi tempi, anche se a me sembra che non ne valga la pena 🙂 ).

Uno dei motivi seri per cui si costruisce una grid anzichè un insieme di sim standalone è il fatto di poter suddividere il carico su più computer distinti. Se ad esempio voleste creare una struttura con 50 sim, sarebbe un po’ un suicidio crearle e caricarle su un’unica macchina, molto meglio suddividere il carico su un gruppo di computer che cooperano in modo da avere ad esempio una macchina “Robust” che mantiene l’infrastruttura della grid (Inventory, Identity, ecc), e distribuire le sim ad esempio mettendone due per macchina. (D’altronde la stessa Linden Lab di solito ospita su una macchina fisica UNA SOLA sim, ad eccezione delle HomeStead che vengono ospitate non più di 4 per macchina fisica). Rispetto ad una architettura HG (Hypergrid) abbiamo anche il vantaggio che possiamo tenere sotto controllo l’identità di chi si registra ed usa le nostre sim, e di poter appoggiare un sito web per la gestione delle identità.

La grid di solito riesce anche a garantire quei servizi professionali che oramai sono essenziali in un mondo virtuale che voglia poter essere utilizzato seriamente, come ad esempio il servizio di gestione dei gruppi, un modulo “Money” per gestire acquisti interni, e soprattutto il modulo “Voce”.

Struttura di questi Tutorial.

Per rendere meno ostico l’argomento separeremo i vari argomenti in diversi articoli, di cui questo è il primo:

  • Prima parte: la grid base (questo articolo)
  • Seconda parte: installiamo interfaccia web e i gruppi/profili
  • Terza parte: installiamo il voice (freeswitch)
Queste operazioni non sono banalissime (ma neanche impossibili), se si seguono le guide “giuste”. Quindi seguitemi con calma ed attenzione.

Ingredienti di base Hardware:

Se vogliamo usare la grid al nostro interno abbiamo bisogno di una macchina Linux (le istruzioni sono state certificate per Ubuntu 11.04).
Se non vogliamo comprare e gestire uno o più computer fisici  l’ideale è di “affittare” un server dedicato che oltretutto risolve in modo limpido i problemi di FireWall e di Routing. Esistono dei provider che consentono di affittare un server dedicato virtuale per circa 10 € al mese (Io ho provato http://www.sisvps.com/ bronze plane che fornisce 512 Megabyte di ram) oppure sui 25 € al mese presso http://www.ovh.it/vps/. Se avete qualche finanziamento potete prendere anche soluzioni con server dedicati “veri” che però costano decisamente di più, ma garantiscono maggiore sicurezza e velocità (ad esempio http://www.kimsufi.it/). In ogni caso il parametro più delicato è sicuramente la quantità di RAM, ricordate che con meno di 512 Megabytes non riuscite a fare nulla! Quindi non prendete l’entry level con 256 M su cui oramai non gira nemmeno un piccolo server php con database mysql (!).

Installiamo il S.O. e gli strumenti prerequisiti (MYSQL, APACHE, MONO)

Il mio suggerimento è di usare come Sistema Operativo Ubuntu 11.04, dove è facile installare i vari pacchetti.
Ecco la sequenza da adottare con ubuntu. (se per caso siete già utente root non c’è bisogno di dare il sudo).
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mono-complete
sudo apt-get install mysql-server
sudo apt-get install phpmyadmin

Le prime due servono per avere il repository dei programmi di apt-get allineato, la 3a installa mono che è il motore che ci serve. Le altre due installano il gestore del database e l’interfaccia web (comprensiva di php, apache).

Durante l’installazione di mysql-server vi viene chiesta la “pwd” di root del database. Ricordatevi di trascriverla da qualche parte.

Durante l’installazione di phpmyadmin vi viene chiesto di installare apache2 (mettete con la barra spaziatrice il baffo sulla prima opzione e poi tab invio per confermare), poi vi viene chiesta la pwd di root che avete dato a mysql-server e infine una nuova pwd di amministrazione di phpmyadmin (io metto admin/admin). Per le altre eventuali richieste accettate il default.

Quando avete terminato andate sul vostro server con phpmyadmin (http://<vostroip>/phpmyadmin), specificate root e pwd di root già definite. Andate su privileges e create un utente opensim accessibile localmente con pwd opensim (o altra) e specificate di creare un database con lo stesso nome dove l’utente ha tutti i privilegi.

Installazione e configurazione di Robust

A questo punto quello che vi rimane da fare è di scaricare la versione binaria di OpenSim da qui: http://opensimulator.org/wiki/Download, attualmente la 0.7.1.1, la scaricate con wget o dal browser e la scompattate.

Poi dovete andare nella cartella bin da un terminale e copiate Robust.ini.example in Robust.ini e cambiate le impostazioni del db ed eventualmente la presentazione della vostra grid.

[DatabaseService]
    StorageProvider = "OpenSim.Data.MySQL.dll"
    ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=opensim;Old Guids=true;"
[GridInfoService]
    ; These settings are used to return information on a get_grid_info call.
    ; Client launcher scripts and third-party clients make use of this to
    ; autoconfigure the client and to provide a nice user experience. If you
    ; want to facilitate that, you should configure the settings here according
    ; to your grid or standalone setup.
    ;
    ; See http://opensimulator.org/wiki/GridInfo

    ; login uri: for grid this is the login server URI
    login = http://127.0.0.1:9000/

    ; long grid name: the long name of your grid
    gridname = "the lost continent of hippo"

    ; short grid name: the short name of your grid
    gridnick = "hippogrid"

    ; login page: optional: if it exists it will be used to tell the client to use
    ;                       this as splash page
    ;welcome = http://127.0.0.1/welcome

    ; helper uri: optional: if it exists if will be used to tell the client to use
    ;                       this for all economy related things
    ;economy = http://127.0.0.1:9000/

    ; web page of grid: optional: page providing further information about your grid
    ;about = http://127.0.0.1/about/

    ; account creation: optional: page providing further information about obtaining
    ;                             a user account on your grid
    ;register = http://127.0.0.1/register

    ; help: optional: page providing further assistance for users of your grid
    ;help = http://127.0.0.1/help

    ; password help: optional: page providing password assistance for users of your grid
    ;password = http://127.0.0.1/password

A questo punto basta che lanciate “mono Robust.exe” e verifichiate che non ci siano errori…

Ricordatevi di creare un utente con “create user” e registratevi i suoi dati che serviranno quando aggiungerete la PRIMA SIM.

Lanciamo la nostra prima sim associata alla grid

Da un altro terminale andate sempre nella cartella bin e modificate il file OpenSim.ini e cambiate l’architettura:

[Architecture]

    ; Include-Architecture = "config-include/Standalone.ini"
    ; Include-Architecture = "config-include/StandaloneHypergrid.ini"
    Include-Architecture = "config-include/Grid.ini"
    ; Include-Architecture = "config-include/GridHypergrid.ini"
    ; Include-Architecture = "config-include/SimianGrid.ini"
    ; Include-Architecture = "config-include/HyperSimianGrid.ini"

Deve rimanere senza il ; solo il pezzo che indica Grid.ini.

Dopo di che andate su config-include/GridCommon.ini (ricopiatelo da GridCommon.ini.example se manca) cambiando tutti i riferimenti dove leggete :8003 in modo che si legga chiaramente l’IP di dove avete messo Robust. Attenzione che vi sono tanti di questi quindi cercate 8003 senza dimenticarvene nessuno.

[AssetService]

    DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
    AssetLoaderArgs = "assets/AssetSets.xml"

    ;
    ; change this to your grid-wide asset server
    ;
    AssetServerURI = "http://78.47.22.111:8003"

A questo punto basta che lanciate questa prima sim con “mono OpenSim.exe”. La prima volta che la lanciate vi chiede un insieme di domande a cui dovrete rispondere. Le uniche cose importanti sono:

  • Il nome della regione che create
  • L’IP esterno della regione che dovrà coincidere con quello dove sta la sim
  • L’estate manager user che deve coincidere per la prima sim con quello fornito a robust
Una volta salito, bast che vi colleghiate con Imprudence creando una nuova grid con la seguente loginuri: http://<<gridIP>&gt;:8002/
L’intero processo una volta che lo sapete fare partendo da Linux vergine richiede non più di mezz’ora andando anche tranquilli….
Arrivederci al prossimo tutorial Parte II in cui vedremo come configurare l’interfaccia web e i gruppi. Se avete dei problemi contattatemi qui nei commenti, inworld come Salahzar Stenvaag o via email salahzar@gmail.com…
Disclaimer: Questo articolo è ovviamente una introduzione funzionante. Maggiori informazioni si trovano nel sito ufficiale di opensim in inglese (http://opensimulator.org/wiki/Configuration e pagine connesse).
Buona fortuna 🙂

2 comments

Leave a reply to OpenSim: Installiamo una grid. Parte III: la voce… « VIRTUAL WORLDS MAGAZINE Cancel reply