FIWARE を試してみる (ラズパイで)
まずは FIWARE Orion から。
このドキュメントを参考に進める
さっそくつまづく。
FIWARE Lab にアカウントが必要です。もし、アカウントがなければ、次のリンクで登録してください。
とあるがリンク切れ https://account.lab.fiware.org/sign_up
ちなみに nslookup などでもみつからない account.lab.fiware.org
これは、まぁ、おいとこう。
ググる
ここから登録へ進めてみる。
- [Create Account]
- Google Form で用意された簡単なアンケートに回答する
- メールが届く。そこにはメールそのまま返信することがアカウント確認になり、登録が進むとある
- 指示通りに返信しても、それに対してエラーメールが返される "Post by non-member to a members-only list"
何か間違えているかしら
- [Request Community Account]
- すこし項目が多いけれど入力して登録してみようかな。。。とすすめてみたけど途中に "Confirm that you created a main account for you project in FIWARE Lab." とあるから・・・
いったん help あてにメールで問い合わせてみる。
このサイトも表示されないし、lab まわりは今は動いていないのかしら?
Docker を普通に動かすもいいけど、ラズパイ4が転がってたからこれで試してみる。
SDカードは手元に16GBのしか見当たらなかった。心許ない気もするけれどいったんすすめる。
まずは OSのイメージををSDカードに
昔は黒い画面で mount したり dd コマンドで書き込んでいたのに、とても便利になりましたね。
※ 32bit にするか 64bit にするか秒悩んだ。とりあえず 64bit を試してうまくいかなかったら 32bit に。
※ 手元に Rapsberry pi 5 はまだ転がってない。いつか試そう。体感スピード早くなるはず。
いつもの初期設定
ほとんど上記の赤い画面の設定でできた。Wi-Fi のパスワードや初期ユーザーのパスワード設定、ssh ログインの公開鍵指定まで。便利だ。
Raspberry Pi に ssh でログインして・・・
# 最初のおまじない的な
$ sudo apt update
$ sudo apt upgrade
# タイムゾーンは、Raspberry Pi Imager で Asia/Tokyo に設定しちゃってたのかも JST になってた
$ date
Sat 20 Apr 07:59:05 JST 2024
# もし違う場合はこんな感じ
$ sudo timedatectl set-timezone Asia/Tokyo
すなおに docker いれる
準備作業。ページ中程をまんまコピーして実行。
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
いざインストール。
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
そしてとりあえずの docker 動作確認。
$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
478afc919002: Pull complete
Digest: sha256:a1893f68bcec8d0f6b09351b7522e4b546d38b0c9b948cb7e761bece66a5c437
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(arm64v8)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
動いた。
SDカードの空き容量をなんとなく確認&メモ
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.6G 0 1.6G 0% /dev
tmpfs 380M 1.3M 378M 1% /run
/dev/mmcblk0p2 15G 4.9G 8.5G 37% /
tmpfs 1.9G 148K 1.9G 1% /dev/shm
tmpfs 5.0M 16K 5.0M 1% /run/lock
/dev/mmcblk0p1 510M 76M 435M 15% /boot/firmware
tmpfs 380M 40K 380M 1% /run/user/1000
メモリも確認&メモ
$ free -m
total used free shared buff/cache available
Mem: 3792 408 1850 16 1624 3383
Swap: 99 0 99
状況によっては Swap 作った方がいいかもしれない。
Orion を docker で動かしてみる
このページに記載されているまんまに。
$ git clone https://github.com/telefonicaid/fiware-orion.git
$ cd fiware-orion/docker
$ docker build -t orion .
・
・
・
ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied
したけど、permission denied になった。
docker を root 権限もっていないユーザーが使いにくいままだとおもわれる。
面倒だから sudo してもいいのだけど、ま、ちゃんとしよう。
# docker group があるかどうか確認。あった。
$ cat /etc/group | grep docker
docker:x:991:
# 自分を追加
$ sudo usermod -aG docker [ユーザー名]
$ docker build -t orion .
・
・
・
ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Head "http://%2Fvar%2Frun%2Fdocker.sock/_ping": dial unix /var/run/docker.sock: connect: permission denied
失敗。権限をあてなおすために、ログアウトして再ログイン。
$ docker build -t orion .
・
・ ビルド作業なので数分時間はかかるよ。処理が進んで
・
[+] Building 901.7s (5/7)
=> [3/5] RUN apt-get -y update && apt-get -y upgrade && apt-get -y install curl cmake libs 877.6s
=> => # [ 75%] Building C object src/libmongoc/CMakeFiles/test-libmongoc-lib.dir/tests/test-mongoc-retryable-writes.c.o
=> => # [ 75%] Building C object src/libmongoc/CMakeFiles/test-libmongoc-lib.dir/tests/test-mongoc-rpc.c.o
=> => # [ 75%] Building C object src/libmongoc/CMakeFiles/test-libmongoc-lib.dir/tests/test-mongoc-sample-commands.c.o
=> => # [ 75%] Building C object src/libmongoc/CMakeFiles/test-libmongoc-lib.dir/tests/test-mongoc-scram.c.o
=> => # [ 76%] Building C object src/libmongoc/CMakeFiles/test-libmongoc-lib.dir/tests/test-mongoc-sdam-monitoring.c.o
=> => # [ 76%] Building C object src/libmongoc/CMakeFiles/test-libmongoc-lib.dir/tests/test-mongoc-sdam.c.o
なんか失敗したっぽい?
client_loop: send disconnect: Broken pipe
となって、接続も切れた。ラズパイを物理的に電源 OFF/ON して再起動。
retry 結果
$ cd fiware-orion/docker
$ docker build -t orion .
[+] Building 1537.2s (8/8) FINISHED
約25分くらいで完了した。さっき途中で止まったのは、机の上でラズパイの位置を置き換えたりして、なにか切断があったのかもしれない。深く追及しないことにする。
※ 追求と追及ってどっちがどっちかわからないときってありますよね。
さて動かそう
$ docker compose up -d
version
is obsolet って warning がでるけど、いったん無視する。
そして orion image を pull してる。。。もしかして build しなくてもよかったのかも? あとでまた考えよう。
$ ! orion The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
ってなったから、pull じゃなくて build で正解だったのかもだ。何の指定が足りない?
docker-compose.yml の image を変更。
version: "3"
services:
orion:
# image: fiware/orion
image: orion:latest
ports:
- "1026:1026"
depends_on:
- mongo
command: -dbURI mongodb://mongo
mongo:
image: mongo:6.0
command: --nojournal
再度実行
$ docker compose up -d
[+] Running 2/2
✔ Container docker-mongo-1 Started 0.0s
✔ Container docker-orion-1 Started
うごいたぽい
$ docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
docker-orion-1 orion:latest "/usr/bin/contextBro…" orion 2 minutes ago Up 2 seconds (health: starting) 0.0.0.0:1026->1026/tcp, :::1026->1026/tcp
一応動いた?
$ docker compose logs
エラーが見える。いきなりデーモンモードはやめよう。丁寧に起動しよう。
$ docker compose down
$ docker compose up
mongo-1 | WARNING: MongoDB requires ARMv8.2-A or higher, and your current system does not appear to implement any of the common features for that!
mongo-1 | applies to all versions ≥5.0, any of 4.4 ≥4.4.19
mongo-1 | see https://jira.mongodb.org/browse/SERVER-71772
mongo-1 | see https://jira.mongodb.org/browse/SERVER-55178
mongo-1 | see also https://en.wikichip.org/wiki/arm/armv8#ARMv8_Extensions_and_Processor_Features
mongo-1 | see also https://github.com/docker-library/mongo/issues/485#issuecomment-970864306
mongo がいやがってますな
このページを再度確認すると mongo は 4.4 になってた。
docker-compose.yml の image を変更。
version: "3"
services:
orion:
# image: fiware/orion
image: orion:latest
ports:
- "1026:1026"
depends_on:
- mongo
command: -dbURI mongodb://mongo
mongo:
image: mongo:4.4
command: --nojournal
$ docker compose up
mongo-1 | WARNING: MongoDB requires ARMv8.2-A or higher, and your current system does not appear to implement any of the common features for that!
mongo-1 | applies to all versions ≥5.0, any of 4.4 ≥4.4.19
mongo-1 | see https://jira.mongodb.org/browse/SERVER-71772
mongo-1 | see https://jira.mongodb.org/browse/SERVER-55178
mongo-1 | see also https://en.wikichip.org/wiki/arm/armv8#ARMv8_Extensions_and_Processor_Features
mongo-1 | see also https://github.com/docker-library/mongo/issues/485#issuecomment-970864306
うごかない。
Warning Message の指示どおりにいったん 4.4.18 を指定
version: "3"
services:
orion:
# image: fiware/orion
image: orion:latest
ports:
- "1026:1026"
depends_on:
- mongo
command: -dbURI mongodb://mongo
mongo:
image: mongo:4.4.18
command: --nojournal
$ docker compose up
うごいったっぽいぞ
docker を daemon mode ではないモードで実行しちゃったので、別で ssh をつないで
$ curl localhost:1026/version
{
"orion" : {
"version" : "3.12.0-next",
"uptime" : "0 d, 0 h, 1 m, 24 s",
"git_hash" : "afcea51e46c878cf72ee78eaf4bb462d881be18f",
"compile_time" : "Fri Apr 19 23:55:57 UTC 2024",
"compiled_by" : "root",
"compiled_in" : "buildkitsandbox",
"release_date" : "Fri Apr 19 23:55:57 UTC 2024",
"machine" : "aarch64",
"doc" : "https://fiware-orion.rtfd.io/",
"libversions": {
"boost": "1_74",
"libcurl": "libcurl/7.88.1 OpenSSL/3.0.11 zlib/1.2.13 brotli/1.0.9 zstd/1.5.4 libidn2/2.3.3 libpsl/0.21.2 (+libidn2/2.3.3) libssh2/1.10.0 nghttp2/1.52.0 librtmp/2.3 OpenLDAP/2.5.13",
"libmosquitto": "2.0.15",
"libmicrohttpd": "0.9.76",
"openssl": "3.0.11",
"rapidjson": "1.1.0",
"mongoc": "1.24.3",
"bson": "1.24.3"
}
}
}
とりあえず、うごいた。
docker compose up したのは ctrl + c などで停止して、あらためて
$ docker compose up -d
と -d オプションつきであらためて動かしておく。
ラズパイ再起動時の docker 永続化などは、あらためて設定すること。
なお、同じネットワーク内の PC / Mac のWebブラウザで
を開くと、上記と同じ json が返された。
もちろん host名などは初期設定によると思うけど、基本的にこれで確認できると思う。
ラズパイ側でへんにファイアウォール系が動いてなさげの簡易確認。
次は WireCloud いれようかなぁ。。。とぐぐると
なんと、こんな日本語のよきページが見つかる。昔に何度か参照させていただいてお世話になった気がしなくもない。
とりあえずラズパイでも一回試しなおそう。
さっきの docker compose でつくった環境はいったん消しちゃう
docker-compose.yml があるディレクトリへ移動
$ cd fiware-orion/docker
$ docker compose down
down は「全部消えてしまえ!」なので、普段使いでは注意すること。
試用をはじめたら、もし停止したい時は docker compose stop を使うか、docker volume の設定をきちんとしてデータを永続化するがおすすめ。たぶんあとで Volume は整理整頓する。
$ mkdir wirecloud
$ cd wirecloud
$ curl -sL https://letsfiware.jp/wirecloud | bash
それなりに時間がかかるので、待つ。 <=== イマココ
・
・
・
・
・
=> [build_stage 2/2] RUN apt update && apt install -y git curl zip unzip openjdk-8-jdk maven -y --no-install-recommends && apt -y clean && rm -rf /var/lib/apt/lists 1309.6s
=> => # [INFO]
=> => # [INFO] --------------< org.elasticsearch.module:lang-expression >--------------
=> => # [INFO] Building Module: Language: Expression 2.4.7-SNAPSHOT [8/45]
=> => # [INFO] --------------------------------[ jar ]---------------------------------
=> => # Downloading from elasticsearch-releases: http://maven.elasticsearch.org/releases/org/apache/lucene/lucene-expressions/5.5.4/lucene-expressions-5.5.4.pom
=> => # Downloading from oss-snapshots: https://oss.sonatype.org/content/repositories/snapshots/org/apache/lucene/lucene-expressions/5.5.4/lucene-expressions-5.5.4.pom
=> [stage-1 2/8] RUN apt update && apt install -y openjdk-8-jre gosu -y --no-install-recommends && apt -y clean && rm -rf /var/lib/apt/lists/* 195.5s
1309.6s はカウントアップされているから異常終了は指定なさげだけど、195.5s やその他については画面更新されなくなった。停止してるっぽいかもしれない。
この一連はさすがに Raspberry pi 4 には酷な作業だったのか。
もしくは熱暴走しちゃっているのか。
一応の冷却ファンはついてはいるのだけれど。あらためての調査ですかね。
それか Raspberry pi 5 をポチるのが正解だろうな。
性能がアップしてるからアレコレな build にも耐久力が高いはず。
お金で解決!?
やっぱり失敗に終わった。エラーをメモしておく。
2680.8 [INFO] ------------------------------------------------------------------------
2680.8 [INFO] BUILD FAILURE
2680.8 [INFO] ------------------------------------------------------------------------
2680.9 [INFO] Total time: 39:14 min
2680.9 [INFO] Finished at: 2024-04-20T01:15:44Z
2680.9 [INFO] ------------------------------------------------------------------------
2680.9 [ERROR] Failed to execute goal on project lang-expression: Could not resolve dependencies for project org.elasticsearch.module:lang-expression:jar:2.4.7-SNAPSHOT: Failed to collect dependencies at org.apache.lucene:lucene-expressions:jar:5.5.4: Failed to read artifact descriptor for org.apache.lucene:lucene-expressions:jar:5.5.4: Could not transfer artifact org.apache.lucene:lucene-expressions:pom:5.5.4 from/to elasticsearch-releases (http://maven.elasticsearch.org/releases): maven.elasticsearch.org: Name or service not known: Unknown host maven.elasticsearch.org: Name or service not known -> [Help 1]
・
・
中略
・
・
2681.0 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
2681.0 [ERROR]
2681.0 [ERROR] After correcting the problems, you can resume the build with the command
2681.0 [ERROR] mvn <goals> -rf :lang-expression
------
Dockerfile:4
--------------------
3 | SHELL ["/bin/bash", "-c"]
4 | >>> RUN apt update && \
5 | >>> apt install -y git curl zip unzip openjdk-8-jdk maven -y --no-install-recommends && \
6 | >>> apt -y clean && \
7 | >>> rm -rf /var/lib/apt/lists/* && \
8 | >>> if [ "$(uname -m)" = "x86_64" ]; then export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"; echo "${JAVA_HOME}"; else export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-arm64/"; echo "${JAVA_HOME}"; fi && \
9 | >>> curl -s https://get.sdkman.io | bash && \
10 | >>> source "/root/.sdkman/bin/sdkman-init.sh" && \
11 | >>> sdk install gradle 3.3 && \
12 | >>> git clone -b 2.4 --depth=1 https://github.com/elastic/elasticsearch.git && \
13 | >>> cd elasticsearch/ && \
14 | >>> mvn clean -e package -DskipTests
15 |
--------------------
ERROR: failed to solve: process "/bin/bash -c apt update && apt install -y git curl zip unzip openjdk-8-jdk maven -y --no-install-recommends && apt -y clean && rm -rf /var/lib/apt/lists/* && if [ \"$(uname -m)\" = \"x86_64\" ]; then export JAVA_HOME=\"/usr/lib/jvm/java-8-openjdk-amd64/\"; echo \"${JAVA_HOME}\"; else export JAVA_HOME=\"/usr/lib/jvm/java-8-openjdk-arm64/\"; echo \"${JAVA_HOME}\"; fi && curl -s https://get.sdkman.io | bash && source \"/root/.sdkman/bin/sdkman-init.sh\" && sdk install gradle 3.3 && git clone -b 2.4 --depth=1 https://github.com/elastic/elasticsearch.git && cd elasticsearch/ && mvn clean -e package -DskipTests" did not complete successfully: exit code: 1
Elastic Search 2.4 をビルドしようとして失敗している。
Elastic Search の現行バージョンは 7.17.20。。。ちょっと古すぎる?
依存関係を調べよう。
そして Elastic Search 自体は、基本的な部分の WireCloud を試すにあたっては不要かもしれない。
参照していたサイト情報が少し古かったかも。
こっちを試そう。Small Bang
$ curl -sL https://letsfiware.jp/fi-sb | bash
$ cd FIWARE-Small-Bang-0.4.0/
$ ./setup-fiware.sh
放ったらかしにして、お昼ご飯食べよう。
ご飯食べる前にあっさりと終わった。
$ ./setup-fiware.sh
WARN[0000] /home/xxxxxx/FIWARE-Small-Bang-0.4.0/docker-compose.yml: `version` is obsolete
[+] Running 5/5
✔ orion Pulled 26.1s
✔ ebc3dc5a2d72 Pull complete 10.0s
✔ 4f4fb700ef54 Pull complete 0.9s
✔ 7a63d84ea83d Pull complete 17.4s
✔ f5447bac8f97 Pull complete 2.7s
[+] Running 3/3
✔ Network fiware-small-bang-040_default Created 0.1s
✔ Container fiware-small-bang-040-mongo-1 Started 20.8s
✔ Container fiware-small-bang-040-orion-1 Started 0.4s
*** Setup has completed ***
Service URLs:
Orion: http://192.168.XXX.XXX:1026
Sanity check:
ngsi version --host orion.local
docs: https://fi-sb.letsfiware.jp/
Please see the .env file for details.
ですが
$ curl http://192.168.11.181:1026/version
curl: (7) Failed to connect to 192.168.11.181 port 1026 after 0 ms: Couldn't connect to server
だめっぽい
$ docker compose ps
WARN[0000] /home/xxxxxx/FIWARE-Small-Bang-0.4.0/docker-compose.yml: `version` is obsolete
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
fiware-small-bang-040-mongo-1 mongo:4.4 "docker-entrypoint.s…" mongo 17 minutes ago Restarting (132) 29 seconds ago
fiware-small-bang-040-orion-1 letsfiware/orion:3.10.1 "sh -c 'rm /tmp/cont…" orion 16 minutes ago Up About a minute (health: starting) 0.0.0.0:1026->1026/tcp, :::1026->1026/tcp
$ docker compose logs
WARN[0000] /home/xxxxxx/FIWARE-Small-Bang-0.4.0/docker-compose.yml: `version` is obsolete
orion-1 | rm: cannot remove '/tmp/contextBroker.pid': No such file or directory
orion-1 | time=2024-04-25T03:15:51.778Z | lvl=ERROR | corr=N/A | trans=N/A | from=N/A | srv=N/A | subsrv=N/A | comp=Orion | op=mongoConnectionPool.cpp[218]:mongoConnect | msg=Database Startup Error (cannot connect to mongo - doing 100 retries with a 1000 millisecond interval)
mongo-1 |
mongo-1 | WARNING: MongoDB requires ARMv8.2-A or higher, and your current system does not appear to implement any of the common features for that!
mongo-1 | applies to all versions ≥5.0, any of 4.4 ≥4.4.19
mongo-1 | see https://jira.mongodb.org/browse/SERVER-71772
orion-1 | time=2024-04-25T03:15:51.778Z | lvl=FATAL | corr=N/A | trans=N/A | from=N/A | srv=N/A | subsrv=N/A | comp=Orion | op=MongoGlobal.cpp[141]:mongoInit | msg=Fatal Error (MongoDB error)
mongo-1 | see https://jira.mongodb.org/browse/SERVER-55178
mongo-1 | see also https://en.wikichip.org/wiki/arm/armv8#ARMv8_Extensions_and_Processor_Features
mongo-1 | see also https://github.com/docker-library/mongo/issues/485#issuecomment-970864306
mongo-1 |
mongo-1 | /usr/local/bin/docker-entrypoint.sh: line 416: 27 Illegal instruction "${mongodHackedArgs[@]}" --fork
mongo-1 |
こまかく調査はやっぱりごはんを食べてから。
ふと見つけた。あとで読む。
NGSI とかきちんと定義されてそう。実験参加するのもよいかもしれない。
Raspberry Pi 4 は ARM Cortex-A72 で ARMv8-A
Raspberry Pi 5 は ARM Cortex-A76 で ARMv8.2-A 6
ARMv8-A だと Mongo 4.4 は動かないみたいだ。
※ きちんと調べてないけどすくなくとも Docker Image はシンプルな用意がなさそう
Raspberry Pi 5 買うのが簡単な解決っぽいけれど、どうしようかな。
良い方はいる。
どうしようかな。
さらに Raspberry Pi 用の Mongo の docker Image を公開してくれてる人もいた。
簡易テストだけだから、こっちを頼ろう。感謝。
だが 4.4 はみつからなかった。どうしようかな。
いったんとめて
$ docker down
これためしてみよう
$ wget https://github.com/themattman/mongodb-raspberrypi-docker/releases/download/r6.0.14-mongodb-raspberrypi-docker-unofficial/mongodb.ce.pi4.r6.0.14-mongodb-raspberrypi-docker-unofficial.tar.gz
$ docker load --input mongodb.ce.pi4.r6.0.14-mongodb-raspberrypi-docker-unofficial.tar.gz
.env のバージョンを書き換えてみた
$ cat .env
#
# .env file for FIWARE Small Bang
#
VERSION=0.4.0
IP_ADDRESS=192.168.11.181
CONFIG_DIR=./config
DATA_DIR=./data
# Orion
IMAGE_ORION=letsfiware/orion:3.10.1
# MongoDB
#IMAGE_MONGO=mongo:4.4
IMAGE_MONGO=mongodb-raspberrypi4-unofficial-r6.0.14
# Service resources
ORION=orion.local
docker 起動。
$ docker compose up -d
$ curl http://raspberrypi.local:1026/version
{
"orion" : {
"version" : "3.10.1",
"uptime" : "0 d, 0 h, 1 m, 53 s",
"git_hash" : "9a80e06abe7f690901cf1586377acec02d40e303",
"compile_time" : "Thu Aug 10 10:20:17 UTC 2023",
"compiled_by" : "root",
"compiled_in" : "buildkitsandbox",
"release_date" : "Thu Aug 10 10:20:17 UTC 2023",
"machine" : "aarch64",
"doc" : "https://fiware-orion.rtfd.io/en/3.10.1/",
"libversions": {
"boost": "1_74",
"libcurl": "libcurl/7.74.0 OpenSSL/1.1.1n zlib/1.2.12 brotli/1.0.9 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.3.0) libssh2/1.9.0 nghttp2/1.43.0 librtmp/2.3",
"libmosquitto": "2.0.15",
"libmicrohttpd": "0.9.76",
"openssl": "1.1",
"rapidjson": "1.1.0",
"mongoc": "1.23.1",
"bson": "1.23.1"
}
}
}
とりあえずは動いてるっぽいぞ。
あとで Raspberry Pi 5 はポチろう。MongoDB は 4.4 が安全な気がする。
WireCloud も動かしてみる。config.sh の WIRECLOUD を true に。
$ make clean
$ vi ./config.sh
#!/bin/bash
# Use Cygnus sink (true or false) Default: false
CYGNUS_MONGO=
CYGNUS_MYSQL=
CYGNUS_POSTGRES=
CYGNUS_ELASTICSEARCH=
# Set passowrd for database systems
MYSQL_ROOT_PASSWORD=
POSTGRES_PASSWORD=
ELASTICSEARCH_PASSWORD=
# Use STH-Comet (true or false) Default: false
COMET=
# Use Quantumleap (true or false) Default: false
QUANTUMLEAP=
# Use Perseo (true or false) Default: false
PERSEO=
# Use WireCloud (true or false) Default: false
WIRECLOUD=true
# Use IoT Agent for UltraLight 2.0 (true or false) Default: false
IOTAGENT_UL=
# Use IoT Agent for JSON (true or false) Default: false
IOTAGENT_JSON=
# Specify transport protocol for IoT Agent (HTTP and/or MQTT)
# Use HTTP (true or false) Default: true
IOTAGENT_HTTP=
# Use MQTT (true or false) Default: false
IOTAGENT_MQTT=
# Use node-red (true or false) Default: false
NODE_RED=
# Start containers (true or false) Default: true
START_CONTAINER=
$ ./setup-fiware-sh
また、しばらくまつ。
なんかちょっと時間かかりすぎてるな。。。また Elastic Search あたりで落ちそうな予感。。。
失敗だ。
ラズパイで FIWARE は実はこれが正解?
ところどころ MongoDB は 3.6 を指してたりする。ところどころ 4.4 もある。
あとで改めて、こっちの手順で試そう。
待ちながらいろいろ回遊。
GeoProperty のサンプルは、X と Y だけのものが多いのだけど、Z も許容されているらしい。
みんなだいすき EPSG:4326 + 標高 or 楕円体高 ってかんじかな。地球中心座標ではなさげかな。
標高か楕円体高は、また改めて調査。
In other words, all the types defined by GeoJSON except GeometryCollection. The second field of the value (coordinates) is always an array, but what's inside the array depends on the first field (type). For example, a "Point" is an array of two floats - longitude and latitude - in that order. I said two floats, but there can an optional third float in the array - the Z-value (altitude or elevation).
やっぱりつまづくなぁ。Raspberry Pi 4。
Raspberry Pi 5 をポチろうかとおもったけど、ファン付きのケースとかACアダプター5Aのとかあれこれ買い足すと 2万円くらいになっちゃうし、N100 搭載のミニPC買った方が安心か悩んでしまいますね。
16Gのメモリと 500GBのSSDがついて 23400円。タイムセールで、ほぼ 2万円のもちらほら。
※ G4, G5 に注意したり比較したりしながら
これとか、超かわいい。
27,000円くらい。だがこの1ヶ月で 2,000円くらい値上がりしてますね。円安 orz.
で、気分転換?に、Macbook Air のいつもつかっている Docker に環境作ってみたら、なんなく起動。
便利だなぁ。
$ curl -sL https://letsfiware.jp/fi-sb | bash
$ cd FIWARE-Small-Bang-0.4.0/
$ vi config.sh
WIRECLOUD=true # に設定
$ ./setup-fiware.sh
$ make createsuperuser # WireCloud の管理者をつくる
ユーザー名とパスワード設定
Mac の Chrome からコンテナへアクセス。デフォルトで 80 番ポートだったからあまり深く考えずに開いた。
右上のサインインから、管理者でログインもでけた。なんてことはなく簡単。