2.1.実行環境の全体像 |
---|
2022-04-09 |
|
一般的にFiwareを動かす場合、右図のようにLinuxというOS上で動かします。その際に、cUrlやBashなどの一般的なツールは既にインストールされており、はFiwareに命令を発行するなどの目的で利用できます。Mongo-DBはFiwareのデータを蓄積してくれる、データベースと呼ばれるミドルウェアです。 | |
しかし、本書の読者にはLinuxに詳しくない方もいらっしゃるでしょうし、Linuxを動かすサーバを用意するのも大変です。そこで本書では、本図のようにWindows環境でLinuxを動かし、その上にDocker、更にDockerの上でFiwareの核であるOrionと呼ばれるContext Broker(注)と、Entityを格納するデータベースであるMongo-DBを動かします。Context Brokerの機能については、おいおい説明します。また、Docker上のOrionなどに命令を発行するために、Windows上でcUrlというコマンド(プログラム)を動かします。 | |
注: プログラム間のEntityのやりとりを仲介するので、Entity Brokerと言った方が実情とあっていると思いますが、なぜかContext Brokerと呼びます。一般にはデータ仲介機能や単にBrokerと呼ばれることの方が多いです。 |
2.2.環境要件の確認 |
---|
2022-04-09 | ||
Windowsの環境をチェックします。以下の条件に当てはまる背祖であることが必要です。とは言っても、筆者は8年前に買った薄型のノートPCでも動きましたので、大抵は動くのかもしれません。
|
||
|
||
|
||
2022-04-09 |
||
ますば、WSL (Windows Subsystem for Linux) 2 backendをインストールします 。WSLは、仮想化技術を使って、Windowsとは別にLinuxを動かすものです。WSLを紹介するサイトによっては、手作業で仮想環境を設定する必要があるとの記載がありますが、筆者の経験ではWSLのインストール時に仮想環境も有効化される様で、特にコマンドを打たなくてもインストールだけでWSLが動きました。WSLが動くとUbuntuというLinuxが起動されます。 | ||
インストールはコマンドプロンプトかPowerShellで実施します。コマンドプロンプトの場合、まずコマンドプロンプトを起動する際にadministratorモードで起動します。右上の例のように、コマンドプロンプトは[スタート]->[Windowsシステムツール]で見つかりますが、コマンドプロンプトのアイコン上で右クリックし[その他]->[管理者として実行]で起動すればadministratorモードになります。 | ||
そこで、右図の様に"wsl --install"と打てはインストールが始まります。 (2023-10-20編集注: 本原稿執筆後に幾つかのアップデートが公開されている様で、アップデートを適用しないでインストールしようとするとエラーが発生するようです。その様な表示が出た場合は、アップデートを適用してから、再度手順を試行してみてください。また、以前はUbuntuが既定値でインストールされましたが、途中でどのOSを選ぶか選択する画面になる様になったようです。Ubuntuを選んで進めて下さい) |
||
Windowsを再起動すると、Ubuntuが自動的に立ち上がり、インストールが継続されます。 最後にLinuxのユーザ名とパスワードの指定を求められます。小文字だけの様なので、小文字で適当な文字列を打ち込むとユーザ名になります。筆者の場合は"harry"としましたので、この後に出てくる事例ではコマンドプロンプトにharryが出てきます。 余談ですが、WSLのファイルをWindowsから参照するときは、エクスプローラーで、"\\wsl$"というフォルダを参照します。フォルダのパスを書く場所に\\wsl$と打ち込んでEnterキーを押すと、下図の様にWSLのルートディレクトリが参照できます。 |
||
また、WSLではWindowsとUbuntuは、仮想ネットワークでつながれています。windowsとUbuntuは、別々のIPアドレスを持っています。Ubuntuから見たWindowsのIPアドレスはUbuntuで以下のコマンドを打つことによりわかります。 | ||
cat /etc/resolv.conf | ||
harry@MSI:~$ cat /etc/resolv.conf # This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf: # [network] # generateResolvConf = false nameserver 172.18.80.1 harry@MSI:~$ |
||
この様に、nameserverの右側(下線部)がWindowsのIPアドレスです。この例では、172.27.144.1です。 また、Ubuntu側のIPアドレスは、以下のコマンドでわかります。 |
||
ip addr | ||
harry@MSI:~$ ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: bond0: <BROADCAST,MULTICAST,MASTER> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 1e:c9:76:d4:09:47 brd ff:ff:ff:ff:ff:ff 3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 62:34:a4:ff:9b:34 brd ff:ff:ff:ff:ff:ff 4: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000 link/ipip 0.0.0.0 brd 0.0.0.0 5: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000 link/sit 0.0.0.0 brd 0.0.0.0 6: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:15:5d:bb:72:01 brd ff:ff:ff:ff:ff:ff inet 172.18.88.46/20 brd 172.18.95.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::215:5dff:febb:7201/64 scope link valid_lft forever preferred_lft forever harry@MSI:~$ |
||
"eth0"の中の"inet"の行の一つ目のIPアドレス(下線部)がUbuntuのIPアドレスです。この例では、172.18.88.46です。但し、windowsからubuntu側のプログラムをアクセスする際には、IPアドレスを気にする必要はなく、"localhost"と記述すると、Windowsが自動的に処理して、Ubuntu上のアプリケーションにもアクセスしてくれます。したがって、あたかも同じOS上で動いているかのようにアクセスする事が出来ます。この処理はwindows側からUbuntu側にアクセスする際にだけ適用され、逆にUbuntu側からWindows側をアクセスする際には適用されませんので、Ubuntuからアクセスする際には、IPアドレスを明記する必要があります。尚、これらのIPアドレスはPCを再起動すると変わってしまいます。 |