FC2ブログ

みさぐり奇譚②

 19, 2019 20:24
20190819.png

前回のOpenSim.ini設定ミスを修正してみさぐり(あ、GardenOasisグリッドだったw)が無事立ち上がりました。
期待に胸をふくらませ、さあログインです!

ビューアーへの新しいグリッドの登録はJOGサイトでもわかりやすい説明があるし、今まで全く悩むことなくきたんですが、
今回はなぜか自分のグリッドが設定できません。

立ち上がっているのにログインできないとは、これいかに?


OpenSim.ini以外に設定するものは、「StandaloneCommon.ini」です。

[Hypergrid]
; Uncomment the variables in this section only if you are in
; Hypergrid configuration. Otherwise, ignore.

;# {HomeURI} {Hypergrid} {The Home URL of this world} {}
;; If this is a standalone world, this is the address of this instance.
;; If this is a grided simulator, this is the address of the external robust server that
;; runs the UserAgentsService.
;; For example http://myworld.com:9000 or http://myworld.com:8002
;; This is a default that can be overwritten in some sections.
; HomeURI = "${Const|BaseURL}:${Const|PublicPort}"→頭の ; を外す

;# {GatekeeperURI} {Hypergrid} {The URL of the gatekeeper of this world} {}
;; If this is a standalone world, this is the address of this instance.
;; If this is a grided simulator, this is the address of the external robust server
;; that runs the Gatekeeper service.
;; For example http://myworld.com:9000 or http://myworld.com:8002
;; This is a default that can be overwritten in some sections.
; GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}"→頭の ; を外す

覚え書きでは、頭の ; を外すことと、


[GridService]
;; For in-memory region storage (default)
StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
;;--- For MySql region storage (alternative)
;StorageProvider = "OpenSim.Data.MySQL.dll:MySqlRegionData"

;; Directory for map tile images of remote regions
; MapTileDirectory = "./maptiles"

;; Next, we can specify properties of regions, including default and fallback regions
;; The syntax is: Region_ = ""
;; where can be DefaultRegion, FallbackRegion, NoDirectLogin, Persistent, LockedOut
;;
;; DefaultRegion If a local login cannot be placed in the required region (e.g. home region does not exist, avatar is not allowed entry, etc.)
;; then this region becomes the destination. Only the first online default region will be used. If no DefaultHGRegion
;; is specified then this will also be used as the region for hypergrid connections that require it (commonly because they have not specified
;; an explicit region.
;;
;; DefaultHGRegion If an avatar connecting via the hypergrid does not specify a region, then they are placed here. Only the first online
;; region will be used.
;;
;; FallbackRegion If the DefaultRegion is not available for a local login, then any FallbackRegions are tried instead. These are tried in the
;; order specified. This only applies to local logins at this time, not Hypergrid connections.
;;
;; NoDirectLogin A hypergrid user cannot directly connect to this region. This does not apply to local logins.
;;
;; Persistent When the simulator is shutdown, the region is signalled as offline but left registered on the grid.
;;
;; For example:
Region_Welcome_Area = "DefaultRegion, FallbackRegion"→外からのお客さんが最初に降り立つSIM名を指定

Region_GardenOasis = "DefaultRegion, FallbackRegion" と書き換える、としか書いてありません。

でも、それ以外に絶対必用な設定があったんですよ。


[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 = ${Const|BaseURL}:${Const|PublicPort}/

; long grid name: the long name of your grid
gridname = "the lost continent of hippo"→"the lost continent of hippo"を"GardenOasis"に書き換え

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

; login page: optional: if it exists it will be used to tell the client to use
; this as splash page. May also be served from an external web server, e.g. for
; information on a standalone
;welcome = ${Const|BaseURL}/welcome→ビューアーのログイン画面で表示する画像のURL(もちろん頭の ; を外すww)

; helper uri: optional: if it exists it will be used to tell the client to use
; this for all economy related things
;economy = ${Const|BaseURL}/economy

; web page of grid: optional: page providing further information about your grid
;about = ${Const|BaseURL}/about

; account creation: optional: page providing further information about obtaining
; a user account on your grid
;register = ${Const|BaseURL}/register

; help: optional: page providing further assistance for users of your grid
;help = ${Const|BaseURL}/help

; password help: optional: page providing password assistance for users of your grid
;password = ${Const|BaseURL}/password

; HG address of the gatekeeper, if you have one
; this is the entry point for all the regions of the world
; gatekeeper = ${Const|BaseURL}:${Const|PublicPort}/

; HG user domain, if you have one
; this is the entry point for all user-related HG services
; uas = ${Const|BaseURL}:${Const|PublicPort}/→ 頭についている ; を外す


この設定をやらないと自分のグリッドは見つかりません。
しかし、これ以前ちゃんとやってるはずなんですよ。覚え書きに漏れていたんですね。

次にやるときのために、もう一度言います(自分に)
まず、shinobarさんのブログ「パピーでOpenSIM」をよぉく読め!
スポンサーサイト

みさぐり奇譚①

 18, 2019 15:35
20190817.png

ほとんど放置だったJOGに接続していたリージョンを整理するタイミングでVPSを初期化して再構築しました。
もう何度目かになるこの作業ですが、毎回どこかでつまずいている私。特に今回はひどかった。

前回の覚え書きどおりにやってるのになぜか立ち上がらない。
もちろん、うっかりミスが原因なんですが、あまりにもそれが多すぎる!
そこからの説明?!ってぐらいに手とり足とり懇切丁寧な覚え書きだというのに。

次につまずいたときのために恥を忍んで書き残します。


前回、OpenSimのポート設定を8000番台にしていたら、8000番台はweb関係で使われることがあるから
「セオリー通り9000番台がいいよ」とアドバイスされました。
で、今回は9000番から順番にリージョンに割り振っていったんですが、なぜか立ち上がらない。
そういうときは、まずは「OpenSim.ini」ですね。よくやることは、頭についている ; を外してないとか。

OpenSim.iniでポートの設定するところは、

[Const]
; For a grid these will usually be the externally accessible IP/DNS
; name and use default public port 8002 and default private port 8003
; For a standalone this will usually be the externally accessible IP/DNS
; name and use default public port 9000. The private port is not used
; in the configuration for a standalone.

;# {BaseHostname} {} {BaseHostname} {"example.com" "127.0.0.1"} "127.0.0.1"
BaseHostname = "127.0.0.1"←ココがドメイン(またはIPアドレス)

;# {BaseURL} {} {BaseURL} {"http://${Const|BaseHostname}} "http://${Const|BaseHostname}"
BaseURL = http://${Const|BaseHostname}

;# {PublicPort} {} {PublicPort} {8002 9000} "8002"
PublicPort = "8002"←ココがポート

;# {PrivatePort} {} {PrivatePort} {8003} "8003"
; port to access private grid services.
; grids that run all their regions should deny access to this port
; from outside their networks, using firewalls
PrivatePort = "8003"←んじゃ、ココは?

[Const]でのポートの設定っぽいところは2カ所ですが、ご丁寧にPrivatePortまで9000にしてました。
これって、ハイパーグリッド接続のときのポートだそうです。
まあ、これが立ち上がらない原因ではなかったのですが、次回でもココどうするの?!って悩みそうなので
書き残します。


[Network]
;# {ConsoleUser} {} {User name for console account} {}
;; Configure the remote console user here. This will not actually be used
;; unless you use -console=rest at startup.
; ConsoleUser = "Test"
;# {ConsolePass} {} {Password for console account} {}
; ConsolePass = "secret"
;# {console_port} {} {Port for console connections} {} 0
; console_port = 0

;# {http_listener_port} {} {TCP Port for this simulator to listen on? (This must be unique to the simulator!)} {} 9000
;; Simulator HTTP port. This is not the region port, but the port the
;; entire simulator listens on. This port uses the TCP protocol, while
;; the region ports use UDP.
; http_listener_port = 9000←このポートは[Const]と同じポート

忘れそうなのが「 ; http_listener_port = 9000」の頭についてる 「 ; 」
ハイ、そうです。コレ外してください。


[Architecture]
;# {Include-Architecture} {} {Choose one of the following architectures} {config-include/Standalone.ini config-include/StandaloneHypergrid.ini config-include/Grid.ini config-include/GridHypergrid.ini config-include/SimianGrid.ini config-include/HyperSimianGrid.ini} config-include/Standalone.ini
;; Uncomment one of the following includes as required. For instance, to create a standalone OpenSim,
;; uncomment Include-Architecture = "config-include/Standalone.ini"
;;
;; Then you will need to copy and edit the corresponding *Common.example file in config-include/
;; that the referenced .ini file goes on to include.
;;
;; For instance, if you chose "config-include/Standalone.ini" then you will need to copy
;; "config-include/StandaloneCommon.ini.example" to "config-include/StandaloneCommon.ini" before
;; editing it to set the database and backend services that OpenSim will use.
;;
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"

覚え書きでは、
[Architecture] 
Include-Architecture = "config-include/StandaloneHypergrid.ini" ← 頭についている ; を外す
と書いています。
エエ、ちゃんとそのとおりに ; を外しましたとも。

でも、よーく見ると、その上の
Include-Architecture = "config-include/Standalone.ini"
ここの頭に 「 ; 」 を付けてやらんとならんのですよ。

以上、OpenSim.iniでの設定ミスでした。
もちろん、これダブルのミスだったので一つ解決しても立ち上がらずに、ものすご~く悩みましたとさ。

ちなみに、これまだ続きます。

GardenOasis grid 覚書(2018.4.14)

 12, 2018 23:23
Ubuntu 16.04.2 LTS
Mono JIT compiler version 4.2.1 (Debian 4.2.1.102+dfsg2-7ubuntu4)


今回も諸先輩方の教えを請うて、ようやく成功しました。
スキルなしに教えられたことをそのまんまやってるだけなので、作業のすべてを覚書として残します。
今更そこからかいっ?!ってツッコミ入りそう(笑)

万一これを見てやってみようかなって思われた方は、shinobarさんのブログをどうぞ。
ここでは省略しているもっと細かいところの設定などわかりやすく説明されています。
shinobarさん、いつもいつもありがとうございます。




※下準備(ファイアーウォール設定)

$sudo iptables -L(ポートの状態を確認)
$sudo ufw allow 8000 ← OpenSimで使う任意のポート
$sudo ufw allow 8001 ← SIMの数だけポートを開放する

GardenOasis gridは、JOGと同じVPSで動かしています。
そのため、デフォルトの9000番台のポートをJOGで使っているため、新たに作ったGardenOasis gridは8000番台のポートを使っています。

あとで考えたら、スタンドアロン・ハイパーグリッドを卒業して完全なハイパーグリッドモードに進化するときに
8000番はマズかったかなーって思ってます。(ROBUSTサーバは8000番台を使用するので)



①新しいグリッドのOpenSimを展開するためのフォルダを作る。


②OpenSimのダウンロードサイトから最新版のバイナリパッケージ(zipの方)を①で作ったフォルダにダウンロードする。

 右クリックで「リンクのURLをコピー(A)」を選び、①フォルダ内にダウンロード($ wget リンクのURL)
 ダウンロードされたファイルを、unzipで展開($ unzip ファイル名)


③OpenSim.ini(bin/OpenSim.ini)の編集

[Const]
BaseHostname = "gardenoasis.server-on.net" ←ドメインがない場合は、IPアドレス
BaseURL = http://${Const|BaseHostname}
PublicPort = "8000" ← 任意のポート(デフォルトでは9000)

[Architecture] 
Include-Architecture = "config-include/StandaloneHypergrid.ini" ← 頭についている ; を外す

[Network]
  http_listener_port = 8000 ← [Const]で指定したPublicPorと同じポート


④StandaloneCommon.ini(bin/config-include/StandaloneCommon.ini )の編集

[Hypergrid] デフォルトでは以下の2つの行の頭についている ; を外す

  HomeURI = "${Const|BaseURL}:${Const|PublicPort}" 
  GatekeeperURI = "${Const|BaseURL}:${Const|PublicPort}" 

[GridService] 赤字の部分を自分のSIM名に書き換える

Region_Welcome_Area = "DefaultRegion, FallbackRegion" 
       ↓
Region_GardenOasis = "DefaultRegion, FallbackRegion" ← 外からのお客さんが最初に降り立つSIM名を指定

⑤Regions.ini(bin/Regions/Regions.ini )の設定

最初のOpenSim起動のときに質問されてファイルができる。SIM増設のときは同じ記述で追加編集。

[GardenOasis] ← SIM名
RegionUUID = ae88c29e-5f09-4076-8800-・・・・・ ←起動のときに自動で割当
Location = 1000,1000
SizeX = 256
SizeY = 256
SizeZ = 256
InternalAddress = 0.0.0.0 ←ここはデフォルトのまま
InternalPort = 8000 ← 1つ目のSIMは、[Const]で指定したPublicPorと同じポート
ExternalHostName = gardenoasis.server-on.net ←ドメインがない場合は、IPアドレス

⑥名前をつけた新規スクリーンでOpenSimを起動する
  $ screen -S gog ← 新規スクリーン名




これは、ホントの備忘録

 20, 2017 17:39
古いVPSは契約終了のため初期化しちゃってたんで、また真っさらからの設定になりました。
全部師匠のブログに書いてあることなんですが、screenを使うようになったところが変わったので自分用のメモです。
諸先輩方、間違ったところがあったらご指摘ください。



1.一般ユーザーをつくる

#adduser ××××(××××というユーザーを作る)



2.sudo権限の設定

一般ユーザに対してsudo コマンドが使用できるように設定する
このファイルは vi で編集しない!

#visudo

以下のファイル内容の最終行を修正する

root ALL=(ALL:ALL) ALL     部分を 
%×××× ALL=(ALL:ALL) ALL  に修正(××××という一般ユーザーにsudo権限を与えた)

「a」で入力モードに入ってからバックスペースで消し修正入力したあと、「Esc」でコマンドモードに戻り
「:」「wq」で修正完了。間違ったら「q!」



3.ポート番号を任意の数字に変更し、rootでログインできないようにする

#cd /etc/ssh/(ディレクトリの移動)
#ls (中身を確認し、sshd_config があることを確認する)
#vi sshd_config(sshd_config を編集する)

 「Port」 を任意の数字に
 「PermitRootLongin」を no に修正する

#/etc/init.d/ssh restart(書き換えた内容を有効にする)



4.ファイアーウォール設定(安全のためにターミナルを同時に二つ立ち上げておく)

$apt-get update
$apt-get upgrade
$apt-get dist-upgrade
(これをやらないとapt-getできない)

$sudo iptables -L(ポートの状態を確認)
$sudo apt-get install ufw(ufwのインストール)
$sudo ufw default deny(すべてのポートを閉じる宣言)
$sudo ufw allow ****←ターミナルでログインするときのポート番号

同じように、9000からSIMの数だけポートを開放する

$sudo ufw enable(ファイヤーウォールを有効にする)

Command may disrupt existing ssh connections. Proceed with operation (y|n)?と聞いてくるのでyでEnter


**ここまでは、セキュリティ設定**



5.monoをインストールする

$sudo apt-get install mono-complete



6.OpenSimをバックグラウンドで動かすためにscreenをつかう

$sudo apt-get install screen(screenのインストール)



7.OSgridの公式サイトより最新のバイナリと「てでぐり」の設定ファイルをダウンロードする

$pwd(自分が現在どこにいるかを知る)
/home/ユーザーにいることを確認してから、

$sudo wget OSgridバイナリのURL
$sudo wget てでぐり設定ファイルURL
$sudo apt-get install unzip
$sudo unzip OSGのバイナリ名
$sudo unzip てでぐり設定ファイル名(解凍の際に先方設定のパスワードが必要だった)



8.てでぐり設定ファイルを所定のディレクトリにコピーする

$sudo cp -f OpenSim.ini /home/ユーザー/bin/ (-fは警告なしの上書きコピー)
$sudo cp -f GridCommon.ini /home/ユーザー/bin/config-include/



9.screenを起動させてからOpenSimを起動する

$screen

OpenSimのbinディレクトリに移動

$mono OpenSim.exe

立ち上がったことを確認してから

generate map

Ctrl+A 続けて D

$exit

スプリクトもいろいろ

 28, 2017 22:09
MFShop.png

OpenSimのバージョンが変わるとさまざまなバグが出現します。
ある関数が使えなくなり、昨日まで動いていたスクリプトが突然動かなくなったり
テレポート障害が起こったり、その時々によってさまざまな現象が起こります。

スクリプトのコンパイルで簡単解決することもあれば、どうにもならずにOpenSimの
バージョンをダウングレードしたりJOGの住人たちは知恵を出し合って対処しています。

今、起こっている不具合はオブジェクトのパーミッション関係です。
フルパーミッションのオブジェクトでありながら右クリックコピーができなかったり
するのです。

M&Fcreationsのコンセプトは、
「なんでも右クリックコピーでお持ち帰りできます!」
なので致命的です。

そんなとき、OpenSimのOSgrid版のバージョン0.9.1であれば、そういった不具合は
起こらないとの情報が入ってきました。
JOGのスクリプト屋さんShinobarさんは、OSgridで配布しているものをJOG用に設定
しなおして利用しているそうです。

うーむ、私にできるだろうか?
Windowsで生まれ育った私には、VPSのLinuxサーバーを操作するのは至難の業・・・・
と思っていたら簡単に設定のできるスクリプトを Shinobarさんが公開してくださいました。
ありがとうございます!

それが「OSG配布のOpenSimバイナリをJOGで使う方法」です。

あのー・・・
でもこれ、どうやって動かせばいいんでしょうか・・・。


スクリプトといえば、SLで配布している無料のものやwebで公開しているものを
JOGでオブジェクトにぶっ込んで動いたらラッキーってレベルの私なので、
サーバーで動かすスクリプトなんてわかる訳がない(笑)
これって使い方の説明もないし質問もないってことは、みんなこれで理解してるのね、
そうなのね。


困ったときはGoogle先生。

2017-06-27_2106のコピー


なるほど、これはシェルスクリプトというものなのですね。
①が現在動いているJOGのOpneSimで、そこから設定に必要なファイルを
OSGから持ってきた②にコピーするというものなんだ。
それで、①と②を自分とこのディレクトリ名と同じにしなきゃならないのか。
そして、拡張子が.shというファイルを作って実行させるわけですね。
なるほどぉ。


早速、このスプリクトをコピペして、osg.shという名前で保存します。
sh osg.sh で実行させて、
今度は②のディレクトリのOpenSimを立ち上げてみます。どきどき・・・・。

おおおーっ!OSGから持ってきた②のOpenSimが無事立ち上がりました!


あとで、Shinobarさんに伺うと、実行は「スクリプト名.sh」だけでも動くし、
スクリプトファイルはどこに作ってもいいそうです。めっちゃ悩んだのに(笑)

WHAT'S NEW?