概要
FIWAREを体験することを目的に、PCの仮想環境(VirtualBox)上で動かします。
CentOSを使いたいところですが、CentOS8が2021年末にサポート終了となりましたので、今回はMIRACLE LINUX 8.4を仮想OSとして試します。
今回利用するDockerもRedHatでサポートされなくなりまして、こちらもPodmanに移行する?KubernetesとかOpenShiftだからDockerなんかもう使えない人達ってそんなに多いの??などなど、悩ましく感じております。。。
ご注意
この記事では、PCの仮想環境(VirtualBox)上でFIWAREを動かすという体験を目的としており、FIWAREの構築やサービス開発を目的とした解説ではありません。
より実践的に試されたい方は、MIRACLE LINUXを飛ばし、パブリッククラウドサービスのDocker環境でFIWAREを試してください。
作業環境
アプリケーション FIWARE |
---|
Docker docker-compose 環境 |
仮想マシン MIRACLE LINUX 8.4 |
仮想環境 VirtualBox |
OS Windows10 |
ノートPC |
FIWAREとは
FIWAREとはスマートなソリューションを構築するためのオープンソース・プラットフォームです。
特徴として、IoTなどのビッグデータをもとに様々なサービスを開発/提供するのに必要となる標準APIの実装や、関連するシステム構築などを容易に行うことができます。
活用例として、様々なインフラやサービスが多種多様なビッグデータを生成する都市規模のビッグデータにさえ対応可能な仕組みになっていることから、日本でもスマートシティへの取組で注目されています。
このような課題やニーズはデータを活用したサービス開発に共通したもので、実現するためのプラットフォームはFIWAREだけではなく、他にも多くの団体や企業が取組を行っています。
ただ、オープンソース・プラットフォームであり、docker上で比較的簡単に動作するため、このようなプラットフォームをPCで動かして体験してみるのはお手軽ではないかと考えました。
FIWARE Orion Context Broker
rion Context Brokerサポートページはこちら
https://fiware-orion.letsfiware.jp/
詳細はこちらの資料がお勧めです。
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 3.6.0対応)
FIWARE でスマートなソリューションを開発するのに、データ(≒コンテキスト情報)の扱いが重要になります。
FIWARE Orion Context BrokerはFIWAREの一部ですが、コンテキスト情報を扱うパブリッシュ/サブスクライブコンテキストブローカーGEを実装したものです。
FIWARE NGSI APIのインターフェイスを提供し、IoTセンサーや他システムとRestfulなAPIによってコンテキスト情報を収集したり連携したりする機能を実現します。
MIRACLE LINUX 8.4 も試します
CentOSの移行先OSを考えている最中のため、MIRACLE LINUXを久しぶりに使ってみます。
開発されているサイバートラスト株式会社様(日本企業)は CentOS 8 とバイナリ互換を維持した最新の Linux OS を 2021 年 10 月よりライセンスフリーで公開 されています。
MIRACLE LINUX 8.4はRed Hat Enterprise Linux 8.4がベースになっているとのことです。
私見としては、日本企業のOSサポートは環境移行プロジェクトでは魅力的ですし、日本企業の日本製Linuxが普及すると良いなーという想いもあります。
MIRACLE LINUX 8.4のダウンロード
MIRACLE LINUXから MIRACLELINUX-8.4-minimal-x86_64.iso (2022/04/27時点最新版)をダウンロードします。
VirtualBoxの仮想マシンへMIRACLE LINUX 8.4をインストール
仮想マシンの設定
作成した仮想マシン > 設定 > ストレージ で、ダウンロードした MIRACLELINUX-8.4-minimal-x86_64.iso を「ディスクファイルを追加」で光学ドライブへ追加します
属性 > 光学ドライブの右端、DVDアイコンを左クリックすると「ディスクファイルを追加」が出てきます
作成した仮想マシン > 設定 > ネットワーク > アダプター2 で 「ホストオンリーアダプター」を有効にします
ツール > ネットワーク > 作成 でアダプターを作成します
IPv4 アドレスとネットマスク(多分、環境によって異なる)がOSの設定で必要になりますので、メモしておいてください
例の場合、IPv4 アドレス 192.168.56.1 、サブネットマスク 255.255.255.0(/24) になります
仮想マシン へ MIRACLE LINUX 8.4 をインストール
仮想マシンを起動します
注意 MacのBOOTCAMPでVirtualBoxを使う場合、右Hostkeyが無くて困ります
キャプチャー解除ができないとVirtualBoxから抜けられなくなります
作成した仮想マシンが起動後 入力 > キーボード > キーボードの設定 で、「ホストキーの組合せ」の「ショートカット」を変更してください > Left Windows などに変更してください。
解像度が不足し、やりづらいですが、BOOTCAMP環境では解像度の変更が上手くいかず。
インストール後に対応することにして、インストール作業を進めていきます。
解像度の変更方法
最初の画面で、Tabキーを押した後に表示されるコマンドの後に"[半角スペース]inst.resolution=1360×768"など入力し、Enterキーを押します。
設定します(解像度の関係で、ユーザーの設定から下が表示されず)
ここをクリックして「rootパスワード」を表示し、設定します
ここまで設定すれば、右下の「インストールの開始」ボタンが押せるようになります
仮想マシンを停止します
shutdown -h now
仮想マシンのネットワーク設定(ホストオンリーアダプター)
仮想マシンを起動し、rootでログインします
NetworkManagert TUI を nmtui コマンドで起動、ネットワークの設定を行います
nmtui
以降、環境によって設定内容が異なる恐れがあります。
enp0s3 の設定例
インターフェース1、NATについての設定です。
設定の変更方法
選択したい項目を矢印キーやTabキーで選択、直接入力かEnterキーを押せば選択できます
チェック[X]を入力する場合は該当箇所を選択状態にしてからSpaceキーを押すと[X]と[ ]が交互に表示されます。
設定できれば OK でEnterキーを押してください(やり直したい場合は Cancel )
設定できれば OK でEnterキーを押すと、前の画面になります
enp0s8 の設定例
インターフェース2、ホストオンリーアダプターについての設定です。
enp0s8 の設定例
IPv4 CONFIGURATION のを選択し、Enterキーを押すと詳細項目が表示され、設定できるようになります
例の場合、ホストオンリーアダプタでメモしたIPv4 アドレス 192.168.56.1 、サブネットマスク 255.255.255.0(/24) でしたので、このネットワーク内のIPv4 アドレス 192.168.56.2 、サブネットマスク 255.255.255.0(/24) をenp0s8に設定しています。
設定できれば OK でEnterキーを押すと、前の画面になります
Back で戻り、 OK でnmtuiを終了します
DNSサーバ関連の対策として、GoogleのDNSサーバ IPアドレス 8.8.8.8 を追加。
/etc/resolv.conf の最後に nameserver 8.8.8.8 を追記します。
nano の操作: 保存 Ctrl+s 、nanoの終了 Ctrl+xです
nano /etc/resolv.conf
設定を反映するため NetworkManager を再起動します
systemctl restart NetworkManager
ping でインターネット接続ができることを確認します
止める方法 Ctrl + c
ping google.com
Docker環境の構築
Dockerをインストールしますが、通常の手順ではエラーになりました
現象:
systemctl start docker で起動すると「Failed to start docker.service: Unit not found.」エラーが出て起動できない。
現時点の方針:
docker の CentOS repository を追加する
今後の課題:
docker の repositoryでCentOS互換だと以下を追加します。。。
https://download.docker.com/linux/centos/docker-ce.repo
CentOSの移行先を検討していましたが、Dockerも含めて考えないといけないですかね。
yum に docker の repositoryを追加するため、yum-utilsをインストールします
yum install -y yum-utils
yum に docker の repositoryを追加
yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
docker-ce-stableが追加されていることを確認します
dnf repolist
インストールします
yum install -y docker-ce docker-ce-cli containerd.io
Dockerを起動
systemctl start docker
Dockerの自動起動を有効
systemctl enable docker
作業用のグループ fiware とユーザー fiw01 を作成します
sudo コマンドが使えるように wheel グループにも所属させます
groupadd fiware
useradd -g fiware fiw01
usermod -aG wheel fiw01
ユーザー fiw01 のパスワードを設定します
passwd fiw01
ユーザー fiw01 が Docker を利用できるようにします
設定したパスワードを忘れないでください
usermod -a -G docker fiw01
ユーザーを fiw01 へ切り替えるだけで良いのですが、確認のため再起動しておきます
shutdown -r now
ユーザー fiw01 でログインし、以降は fiw01 で作業します。
docker-composeのインストール
docker-compose をダウンロードします
sudo curl -L \
https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64 \
-o /usr/local/bin/docker-compose
ダウンロードしたファイルに実行権限を付与します
sudo chmod +x /usr/local/bin/docker-compose
確認します
docker-compose --version
Docker環境にFIWARE Orion Context Broker を導入
Orion Context Broker は Docker hub で公式の Orion docker コンテナを使用してインストールすることができます。
Docker で Orion Context Broker を使用する方法
github.com/telefonicaid/fiware-orion
FIWARE用のディレクトリを作成し移動
mkdir ~/fiware
cd ~/fiware
~/fiware/docker-compose.yml を作成
nano ~/fiware/docker-compose.yml
version: "3"
services:
orion:
image: fiware/orion
ports:
- "1026:1026"
depends_on:
- mongo
command: -dbhost mongo
mongo:
image: mongo:4.4
command: --nojournal
~/fiware で sudo docker-compose up を実行します
cd ~/fiware
sudo /usr/local/bin/docker-compose up
Docker Hub の公開リポジトリから Orion Context Broker と MongoDB のダウンロードが開始されます、終了後に自動的に起動します
Orion Context Broker と MongoDB が実行中の例
Orion Context Broker の動作試験
Orion Context Broker のバージョンを確認し、動作試験をします
OS Windows10 のWebブラウザを開き、仮想マシン MIRACLE LINUX 8.4 の enp0s8 のポート番号 1026 に対してAPIアクセスします。
具体的には enp0s8に設定したIPアドレスが192.168.56.2の場合、URLとして http://192.168.56.2:1026/version を入力しアクセスします。
すると Orion Context Broker のバージョンがAPIの応答として表示されます。
Orion Context Broker と MongoDB は Ctrl + c で停止できます。
仮想マシンの停止方法は以下になります。
sudo shutdown -h now