RDBOX-HQをWindowsのVirtualBoxでセットアップしてみました
はじめに
RDBOXは、Linuxベースで構築することを前提としています
『自分が使っている Windows マシンで使えたらよいのに...』って思ったことはありませんか?
今回、Windows マシンで構築してみました
【ご注意】今回の記事では、Windows マシンに以下のアプリを導入します
- VirtualBox
- vagrant
- Git for Windows
では、参考にしてください
実行環境
今回使用した環境です
Windows
項目 | 内容 | 備考 |
---|---|---|
エディション | Windows 10 Pro | 64bit版 |
バージョン | 1809 | Windows Update で最新に更新済み |
機器
項目 | 内容 | 備考 |
---|---|---|
プロセッサ | Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz 3.41GHz | |
実装RAM | 16.0 GB(15.9 GB 使用可能) | |
システムの種類 | 64 ビット オペレーティング システム、x64 ベース プロセッサ | |
製造元 | HP Inc. | |
仮想化支援 | IntelVT を有効化 | AMD の CPU を使用する場合は AMDV を有効化 ※VirtualBoxで64bit OS を動かす際に必要 |
ネットワーク
項目 | 内容 | 備考 |
---|---|---|
DHCPサーバ | 利用可能 | |
Internet接続 | あり | |
Proxyサーバ | なし |
使用する Windows アプリの導入
-
注意(ご了承ください)
- 本記事に出てくるバージョン番号等は、記事作成当時(2019年11月下旬)のものです
- アプリのバージョン違いによる画面や動作に違いがある可能性があります
-
VirtualBox をインストール
- ダウンロード
- https://www.virtualbox.org/wiki/Downloads
- [Windows hosts] をクリック
- [All supported platforms] をクリック
- 取得ファイル名を確認
- VirtualBox-6.0.14-133895-Win.exe
- Oracle_VM_VirtualBox_Extension_Pack-6.0.14.vbox-extpack
- インストーラを起動してインストール(詳細省略、他の人の記事見てください)
- 忘れずに機能拡張(extpack)をインストール
-
vagrant をインストール
- ダウンロード
- https://www.vagrantup.com/downloads.html
- Windows 用 [64-bit] をクリック
- 取得ファイル名を確認
- vagrant_2.2.6_x86_64 .msi
- インストーラを起動してインストール(詳細省略、他の人の記事見てください)
-
Git for Windows をインストール
- ダウンロード
- https://gitforwindows.org/
- [Download] をクリック
- 取得ファイル名を確認
- Git-2.24.0.2-64-bit.exe
- インストーラを起動してインストール(詳細省略、他の人の記事見てください)
-
【重要】Git Bash は必ずインストールしてください
上記アプリインストール後は、念のため Windows を再起動してから、以降の処理を行ってください
今回構築する環境
- RDBOX-HQ(仮想マシン3台)
- VPN Server
- Kubernetes master
- Kubernetes node 01
- RDBOX 環境 setup(仮想マシン1台)
- RDBOX master(Raspberry PI 1台)
ssh 鍵ペアの作成
- Git Bash を起動し、以下の条件で鍵ペアを作成
- 鍵の長さ(bit数)は 2048 ビット
- 鍵種別は 'RAS'
- パスフレーズは任意の文字列(忘れないように注意)
$ ssh-keygen.exe -b 2048 -t rsa -N 'YourPassphrase'
注意(ご了承ください)
- 本記事に出てくるバージョン番号等は、記事作成当時(2019年11月下旬)のものです
- アプリのバージョン違いによる画面や動作に違いがある可能性があります
VirtualBox をインストール
- ダウンロード
- https://www.virtualbox.org/wiki/Downloads
- [Windows hosts] をクリック
- [All supported platforms] をクリック
- 取得ファイル名を確認
- VirtualBox-6.0.14-133895-Win.exe
- Oracle_VM_VirtualBox_Extension_Pack-6.0.14.vbox-extpack
- インストーラを起動してインストール(詳細省略、他の人の記事見てください)
- 忘れずに機能拡張(extpack)をインストール
vagrant をインストール
- ダウンロード
- https://www.vagrantup.com/downloads.html
- Windows 用 [64-bit] をクリック
- 取得ファイル名を確認
- vagrant_2.2.6_x86_64 .msi
- インストーラを起動してインストール(詳細省略、他の人の記事見てください)
Git for Windows をインストール
- ダウンロード
- https://gitforwindows.org/
- [Download] をクリック
- 取得ファイル名を確認
- Git-2.24.0.2-64-bit.exe
- インストーラを起動してインストール(詳細省略、他の人の記事見てください)
- 【重要】Git Bash は必ずインストールしてください
上記アプリインストール後は、念のため Windows を再起動してから、以降の処理を行ってください
- RDBOX-HQ(仮想マシン3台)
- VPN Server
- Kubernetes master
- Kubernetes node 01
- RDBOX 環境 setup(仮想マシン1台)
- RDBOX master(Raspberry PI 1台)
ssh 鍵ペアの作成
- Git Bash を起動し、以下の条件で鍵ペアを作成
- 鍵の長さ(bit数)は 2048 ビット
- 鍵種別は 'RAS'
- パスフレーズは任意の文字列(忘れないように注意)
$ ssh-keygen.exe -b 2048 -t rsa -N 'YourPassphrase'
- 鍵の長さ(bit数)は 2048 ビット
- 鍵種別は 'RAS'
- パスフレーズは任意の文字列(忘れないように注意)
$ ssh-keygen.exe -b 2048 -t rsa -N 'YourPassphrase'
- 以下のようなファイルが作成される
$ ls ${HOME}/.ssh/id_rsa*
/c/Users/YourName/.ssh/id_rsa
/c/Users/YourName/.ssh/id_rsa.pub
GitHub から clone
- Git Bash を起動する
- 以降は、Git Bash プロンプトからの入力がほとんどになります
- VirtualBox のコマンド(VBoxManage.exe)を起動できることを確認
- 以下の例では、バージョン番号が表示されたのでOK
- もし [command not found] と表示された場合、タイプミス、もしくは、VirtualBox のインストールに失敗していると思われます
$ VBoxManage.exe --version
6.0.14r133895
- GitHub より RDBOX を clone する
- 今回は、${HOME}/git ディレクトリ以下に clone します
$ mkdir ${HOME}/git
$ cd ${HOME}/git
$ git clone https://github.com/rdbox-intec/rdbox.git
仮想マシン(VPNServer / Kubernetes master)を構築
- conf/rdbox-hq-vb.params 準備
$ cd ${HOME}/git/rdbox/tutorials/setup-rdbox-hq-vb
$ cd conf
$ cp rdbox-hq-vb.params.sample rdbox-hq-vb.params
$ # ↑ 今回はファイル修正せず、デフォルト設定を使用します
$ vi rdbox-hq-vb.params ← 設定変更が必要な方は、このタイミングで修正してください
- VPNServer / Kubernetes(master) 用仮想マシンの構築
$ cd ../build-initVM
$ bash createVagrantfileOfInitVM.sh
$ bash setupInitVM.sh
$ bash setupInitVM.sh rdbox-master ← [ご注意] Windows 環境だと rdbox-master 作成を指示する必要がある
- この時点で、以下のような2台の仮想マシンが作成されている
- rdbox-vpn
- rdbox-master
- 以降は、Git Bash プロンプトからの入力がほとんどになります
- 以下の例では、バージョン番号が表示されたのでOK
- もし [command not found] と表示された場合、タイプミス、もしくは、VirtualBox のインストールに失敗していると思われます
$ VBoxManage.exe --version
6.0.14r133895
- 今回は、${HOME}/git ディレクトリ以下に clone します
$ mkdir ${HOME}/git
$ cd ${HOME}/git
$ git clone https://github.com/rdbox-intec/rdbox.git
- conf/rdbox-hq-vb.params 準備
$ cd ${HOME}/git/rdbox/tutorials/setup-rdbox-hq-vb
$ cd conf
$ cp rdbox-hq-vb.params.sample rdbox-hq-vb.params
$ # ↑ 今回はファイル修正せず、デフォルト設定を使用します
$ vi rdbox-hq-vb.params ← 設定変更が必要な方は、このタイミングで修正してください
- VPNServer / Kubernetes(master) 用仮想マシンの構築
$ cd ../build-initVM
$ bash createVagrantfileOfInitVM.sh
$ bash setupInitVM.sh
$ bash setupInitVM.sh rdbox-master ← [ご注意] Windows 環境だと rdbox-master 作成を指示する必要がある
- この時点で、以下のような2台の仮想マシンが作成されている
- rdbox-vpn
- rdbox-master
仮想マシン(Kubernetes node)を構築
- Kubernetes(node) 用テンプレート(setup-rdbox-hq-vb/conf/Vagrantfile.in.worker)を修正
- rdbox-hq 構築用サーバから ansible で制御可能とするため public_network(DHCP) を追加
- 具体的な修正箇所は以下の内容(git diff)を参考
--- a/tutorials/setup-rdbox-hq-vb/conf/Vagrantfile.in.worker
+++ b/tutorials/setup-rdbox-hq-vb/conf/Vagrantfile.in.worker
@@ -23,6 +23,7 @@ Vagrant.configure(2) do |config|
end
worker.disksize.size = "WORKER_HDDGB"
worker.vm.hostname = "WORKER_HOSTNAME"
+ worker.vm.network "public_network", type: "dhcp"
worker.vm.network "private_network", ip: "WORKER_PRIVATE_IP", netmask: "PRIVATE_NETMASK", virtualbox__intnet: "rdbox-hq"
worker.vm.provision "shell", run: "always", inline: <<-ALWAYS_SHELL
rm -f /etc/apt/apt.conf.d/01proxy
- Kubernetes(node) 用仮想マシンの構築
$ cd ../build-workerVM
$ bash createVagrantfileOfWorkerVM.sh
$ bash addWorkerVM.sh
仮想マシン(setup-rdbox)を構築
- Kubernetes(node)用の設定ファイルを流用し rdbos-setup作業用の仮想マシンの構築
- 新規に Ubuntu をインストールしても良いが、手間を省くため Kubernetes(worker) の設定を流用する
- sed コマンドを用いVagrantfileを修正
- 'rdbox-worker-01' を 'rdbox-worker-90' に変更
- 'rdbox-k8s-worker-hq-01' を 'rdbox-setup' に変更
- addWorkerVM.sh スクリプトを起動し仮想マシンを作成
$ sed -i -e 's/rdbox-worker-01/rdbox-worker-90/' Vagrantfile
$ sed -i -e 's/rdbox-k8s-worker-hq-01/rdbox-setup/' Vagrantfile
$ bash addWorkerVM.sh
- 新たに2台の仮想マシン(合計4台)が作成されている
- rdbox-hq 構築用サーバから ansible で制御可能とするため public_network(DHCP) を追加
- 具体的な修正箇所は以下の内容(git diff)を参考
--- a/tutorials/setup-rdbox-hq-vb/conf/Vagrantfile.in.worker
+++ b/tutorials/setup-rdbox-hq-vb/conf/Vagrantfile.in.worker
@@ -23,6 +23,7 @@ Vagrant.configure(2) do |config|
end
worker.disksize.size = "WORKER_HDDGB"
worker.vm.hostname = "WORKER_HOSTNAME"
+ worker.vm.network "public_network", type: "dhcp"
worker.vm.network "private_network", ip: "WORKER_PRIVATE_IP", netmask: "PRIVATE_NETMASK", virtualbox__intnet: "rdbox-hq"
worker.vm.provision "shell", run: "always", inline: <<-ALWAYS_SHELL
rm -f /etc/apt/apt.conf.d/01proxy
$ cd ../build-workerVM
$ bash createVagrantfileOfWorkerVM.sh
$ bash addWorkerVM.sh
- Kubernetes(node)用の設定ファイルを流用し rdbos-setup作業用の仮想マシンの構築
- 新規に Ubuntu をインストールしても良いが、手間を省くため Kubernetes(worker) の設定を流用する
- sed コマンドを用いVagrantfileを修正
- 'rdbox-worker-01' を 'rdbox-worker-90' に変更
- 'rdbox-k8s-worker-hq-01' を 'rdbox-setup' に変更
- addWorkerVM.sh スクリプトを起動し仮想マシンを作成
$ sed -i -e 's/rdbox-worker-01/rdbox-worker-90/' Vagrantfile
$ sed -i -e 's/rdbox-k8s-worker-hq-01/rdbox-setup/' Vagrantfile
$ bash addWorkerVM.sh
- 新たに2台の仮想マシン(合計4台)が作成されている
仮想マシンの IP アドレスの確認
- VirtualBox 上の仮想マシンは DHCP を使い IP アドレスを取得しているため(IP アドレスが不明)
- 最初に、仮想マシンの ssh ポート(localhost)の確認する
- このポートを使い、仮想マシンに ssh 接続して IP アドレスを取得する
$ cd ../bin
$ bash getSshPorts.sh
build-initVM_rdbox-vpn_1574142163625_64069 2222
build-initVM_rdbox-master_1574142647190_89684 2200
build-workerVM_rdbox-worker-01_1574143450492_72936 2201
build-workerVM_rdbox-worker-90_1574145506545_54554 2202
- 上記コマンド実行結果より、以下のポート番号であることが確認できた
- このポートを使い、仮想マシンに ssh 接続して IP アドレスを取得する
$ cd ../bin
$ bash getSshPorts.sh
build-initVM_rdbox-vpn_1574142163625_64069 2222
build-initVM_rdbox-master_1574142647190_89684 2200
build-workerVM_rdbox-worker-01_1574143450492_72936 2201
build-workerVM_rdbox-worker-90_1574145506545_54554 2202
機器種別 | ポート番号 |
---|---|
VPN server | 2222 |
k8s master | 2200 |
k8s worker 01 | 2201 |
k8s worker 90 | 2202 |
- 各仮想マシンのIPアドレス取得と確認(IP アドレスは、あとの処理で使用するのでメモしてください)
$ CMD='ssh -p ${VMPORT} -i ${HOME}/.ssh/id_rsa ubuntu@localhost ifconfig | grep "inet " | grep -v 127 | grep -v 172 | awk '\''{print $2}'\'
$ IPADRS_vpn=`VMPORT=2222 bash -c "$CMD"`
$ IPADRS_k8sm=`VMPORT=2200 bash -c "$CMD"`
$ IPADRS_k8sn=`VMPORT=2201 bash -c "$CMD"`
$ IPADRS_setuphq=`VMPORT=2202 bash -c "$CMD"`
$
$ echo ${IPADRS_vpn}
$ echo ${IPADRS_k8sm}
$ echo ${IPADRS_k8sn}
$ echo ${IPADRS_setuphq}
RDBOX-HQ の構築準備
- 先ほどの手順で作成した仮想マシン rdbox-worker-90 を使用する
- VirtualBox マネージャーにて以下の手順で操作し、仮想マシン名称を変更
- 仮想マシン k8s worker 99 を停止
- プロパティから名称を setup-rdbox に変更
- 仮想マシン setup-rdbox を起動
- 仮想マシン k8s worker 99 を停止
- プロパティから名称を setup-rdbox に変更
- 仮想マシン setup-rdbox を起動
- Git Bash で ssh コマンドを使い、仮想マシン setup-rdbox にログイン(以降の処理は、このマシン上で実行する)
$ ssh -i ${HOME}/.ssh/id_rsa ubuntu@${IPADRS_setuphq}
- GitHub より RDBOX を clone する
- 今回も同様に、${HOME}/git ディレクトリ以下に clone します
$ mkdir ${HOME}/git
$ cd ${HOME}/git
$ git clone https://github.com/rdbox-intec/rdbox.git
- Windows 用実行環境依存ファイルを修正
- win/getServerAddressPublic.sh は、各仮想マシンのIPアドレスが対応するように修正
$ cd rdbox/tutorials/setup-rdbox-hq/bin
$ cp -r example win
$ cp aws/getServerSshPort.sh win/
$ echo "echo KubeNode01" > win/getKubeNodeList.sh
$ vi win/getServerAddressPublic.sh
- 修正箇所は以下の IP アドレスの部分(前の処理で取得した IP アドレスに書き換える)
"${SERVER_TYPE_VPNSERVER}" ) echo "192.168.100.1" ;;
"${SERVER_TYPE_KUBEMASTER}" ) echo "192.168.100.2" ;;
"${SERVER_TYPE_KUBENODE}" ) echo "192.168.100.100" ;;
- VirtualBox 設定用ファイルを準備
- 今回は、デフォルト設定のまま修正せず使用する
$ cd ../conf
$ cp rdbox-hq-vb.params.sample rdbox-hq-vb.params
- 設定ファイル確認スクリプトファイルを修正
$ cd ../build
$ vi check_build_rdbox_hq.sh
- 具体的な修正箇所は以下の内容(git diff)を参考
--- a/tutorials/setup-rdbox-hq/build/check_build_rdbox_hq.sh
+++ b/tutorials/setup-rdbox-hq/build/check_build_rdbox_hq.sh
@@ -40,6 +40,9 @@ if [ "${RDBOX_HQ_BUILD_PF}" = "vb" ] ; then
elif [ "${RDBOX_HQ_BUILD_PF}" = "aws" ] ; then
echo "passed."
echo "[INFO] This is 'AWS' setup mode."
+elif [ "${RDBOX_HQ_BUILD_PF}" = "win" ] ; then
+ echo "passed."
+ echo "[INFO] This is 'Windows(vb)' setup mode."
else
echo "[ERROR] You must set 'RDBOX_HQ_BUILD_PF' value."
echo "[ERROR] e.g. 'vb' or 'aws'"
RDBOX-HQ 構築編 step1
構築準備を行った後は、基本的に『RDBOX-HQ 構築編 step1』に書かれた通りの手順です
前の処理で作成した win ディレクトリのスクリプトを使用するように設定する
$ cd ../conf
$ cp bashrc.rdbox-hq.example ${HOME}/.bashrc.rdbox-hq
$ sed -i -e 's/#RDBOX_HQ_BUILD_PF="example"/RDBOX_HQ_BUILD_PF="win"/' ${HOME}/.bashrc.rdbox-hq
$ sed -i -e 's/== "vb"/== "win"/' ${HOME}/.bashrc.rdbox-hq
- 以降は、手順の「RDBOX-HQ 構築編 step1」からあとを実行します。
- 【注意】修正済みの ${HOME}/.bashrc.rdbox-hq を conf/bashrc.rdbox-hq.example で上書きしない
$ cd ../build
$ ./build_env_keep_latest.sh
$ ./build_softethervpn.sh
$ ./build_vpnserver.sh
$ ./build_kube_master.sh
- Kubernetes master 構築直後
構築準備を行った後は、基本的に『RDBOX-HQ 構築編 step1』に書かれた通りの手順です
前の処理で作成した win ディレクトリのスクリプトを使用するように設定する
$ cd ../conf
$ cp bashrc.rdbox-hq.example ${HOME}/.bashrc.rdbox-hq
$ sed -i -e 's/#RDBOX_HQ_BUILD_PF="example"/RDBOX_HQ_BUILD_PF="win"/' ${HOME}/.bashrc.rdbox-hq
$ sed -i -e 's/== "vb"/== "win"/' ${HOME}/.bashrc.rdbox-hq
- 【注意】修正済みの ${HOME}/.bashrc.rdbox-hq を conf/bashrc.rdbox-hq.example で上書きしない
$ cd ../build
$ ./build_env_keep_latest.sh
$ ./build_softethervpn.sh
$ ./build_vpnserver.sh
$ ./build_kube_master.sh
- しばらく待ってからブラウザで Kubernetes dashboard アドレスを表示
- RDBOX 構築用に k8s join token を生成
$ ./print_kube_join_command.sh
kubeadm join 192.168.179.2:6443 --token auf4l1.tk9jtql8ctgfeej6 --discovery-token-ca-cert-hash sha256:cd80f7663b85015b70d6c817b30145c5492b1040547529b315ee30cb63e444a5
RDBOX の構築
-
『RDBOX/ロボット構築編 RDBOX用SDカードの作成』を実施
- 手順詳細は省略しますが、前の処理で生成した k8s join token を使用します
しばらく待って Kubernetes dashboard で RDBOX master が参加したことを確認
『RDBOX/ロボット構築編 RDBOX用SDカードの作成』を実施
- 手順詳細は省略しますが、前の処理で生成した k8s join token を使用します
しばらく待って Kubernetes dashboard で RDBOX master が参加したことを確認
RDBOX-HQ 構築編 step2
- 以降の処理は、Git Bash で ssh コマンドを使い、仮想マシン setup-rdbox にログインしていることを想定しています(RDBOX-HQ 構築編 step1 の続き)
$ ssh -i ${HOME}/.ssh/id_rsa ubuntu@${IPADRS_setuphq}
- 『RDBOX-HQ 構築編 step2 各サーバの構築-step2』を実施
$ cd ${HOME}/git/rdbox/tutorials/setup-rdbox-hq
$ cd build
$ ./build_kube_node.sh
- しばらく待って Kubernetes dashboard で Kubernetes node01 が参加したことを確認
$ ssh -i ${HOME}/.ssh/id_rsa ubuntu@${IPADRS_setuphq}
$ cd ${HOME}/git/rdbox/tutorials/setup-rdbox-hq
$ cd build
$ ./build_kube_node.sh
- これで「RDBOX-HQをWindowsのVirtualBoxでセットアップ」を完了です
Author And Source
この問題について(RDBOX-HQをWindowsのVirtualBoxでセットアップしてみました), 我々は、より多くの情報をここで見つけました https://qiita.com/higuchi-toshio-intec/items/0667cb01db528ea30f86著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .