CentOS【Wakame vdcのテスト環境を構築する】
現在通っている産業技術大学院大学(AIIT)のクラウドインフラ構築特論という授業でWakame vdcを仮想環境上にインストールする課題があったのだけど、自分のローカル環境にインストールするのに結構ハマって苦労したので、インストール方法の記録を残したいと思います。
環境は以下のとおり。
・ホストOS:MacBookAir OSX yosemite
・VirtualBox:4.3.20
・ゲストOS:CentOS 6.5
※ホストは64ビットOSである必要があります。
※CentOS 6.6以降は現時点では対応していないようですのでインストールガイドに則り6.5で入れます。
やりたいことは以下の通り。
①VirtualBox上にインストールしたゲストOS上にWakameの動作をテストするための環境を構築したい。
②ホストがノートPCで、様々なLANにつなぐことが想定されるので、ゲストのIPアドレスを固定化したい。BridgeではなくNATとホストオンリーネットワークの2アダプタ構成としたい。
③ホストからsshでwakameで立ち上げたインスタンスにログインしたい。
④ゲストOSは、コンソールだけだとネットワーク設定をミスして繋がんなくなったりした時にコマンドのコピペなどができなくて不便なのでデスクトップ版を入れたい。
基本的にはインストールガイド(下記リンク)の通りに行うのですが、そこに書かれていない設定などもいくつかあります。
install guide · axsh/wakame-vdc Wiki · GitHub
ハマりポイントがいくつもあったので、そこらへんは丁寧に書いていこうと思います。
まずVirtualBoxの設定から。この辺はインストールガイドになかったので丁寧に。
新規でイメージを作成します。名前は適当に、タイプはLinuxを選びバージョンはRed Hat(64bit)
次にメモリを割り当てます。3ギガぐらいあれば理想ですが、2ギガで作りました。
ハードドライブは追加で「続ける」
ファイルタイプはVDIで「続ける」
可変サイズで「続ける」
デモなので20ギガぐらいで「作成」
これで仮想の箱(インスタンス)ができました。
次に箱のネットワーク設定です。
環境設定からホストオンリーネットワークの設定をします。
ネットワークから「ホストオンリーネットワーク」を選び右側の+のボタンをクリックし、ネットワークを追加します。私の場合はすでに作ってあるホストオンリーネットワークがいくつかあったので、vboxnet2というのができました。
右側のドライバーのようなボタンをクリックし、アダプターのIPを以下のように設定します。192.168.58.1のゲートウェイのIPは非常に重要です。
DHCP設定は特に何もしません。
続いて箱のネットワーク設定をします。
アダプター1を以下のようにします。先ほど作成したホストオンリーネットワーク「vboxnet2」をプルダウンから間違えないよう選択します。
最終的にはこのvboxnet2のネットワークにインスタンスごとにローカルアドレスを割り振る形になります。
またプロミスキャスモードを「すべて許可」にします。
次にゲストOSがWANに出ていくためのNATを設定します。
アダプター2を有効にし、NATを選びます。
これでようやくCentOSのインストールです。
ストレージのCD/DVDドライブにCentOS 6.5のCentOS-6.5-x86_64-bin-DVD1.isoをセットして起動します。
ディスクのチェックはSkipしましたが、時間があればOKで
MacBookAirでインストールするとなぜかハードウェアが未対応的なエラーが出ますがOKで
言語は日本語
キーボードも日本語
基本ストレージを選択
データを破棄を選択
ホスト名は適当に
タイムゾーンはアジア/東京
パスワードは忘れないやつ
すべての領域を使用するで
変更をディスクに書き込む
Minimal Desktopを選択し他は何も選ばず「次」
インストールが開始されます。
しばらく待って下記画面が出たら再起動
再起動後は下記画面になります。次へ
同意して次
ユーザーは適当に
NTPはまだネットワークが繋がっていないので特に使わず次
Kdumpを無効にして「はい」
再起動
ようやくこれでCentOSが使えるようになりました。
インストール後のCentOS側の設定
インストール直後はネットワークは繋がっていない状態だと思います。最初の方で重要なネットワーク周りの設定をやっていきます。
端末を立ち上げます。
まずvisudoで一般ユーザからsudoできるようにします。
suコマンドでスーパーユーザになり、visudoコマンドで
$ su
# visudo
akutsu ALL=(ALL) ALL
を追加
次にSelinuxを無効にします。スーパーユーザのまま
# vi /etc/selinux/config
でdisabledに。
ここで再起動します。
# shutdown -r now
wakameのinstall guideにはwakameをインストール後にネットワークを設定していますが、まずインターネットに繋がないといけないので先にネットワークの設定をしてしまいます。
スーパーユーザになり
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
をし、eth0を編集します。
ifcfg-eth0の設定は以下のようになります。
※HWADDRとUUIDはデフォルトで入っている内容のまま変更しないで、それ以外の内容を変更します。
次にifcfg-br0を追加します。
# vi /etc/sysconfig/network-scripts/ifcfg-br0
※ゲートウェイの設定はここで書いてはいけません。ゲートウェイはインターネットに出るため、NAT側(dhcp)で自動で設定されます。
次にeth1の設定をします。eth1はNATのアダプタです。onbootをyesに変えるだけです。
これで
# service network restart
をし、ネットワークを再起動します。
下記のようにすべてOKになると外につながると思います。
あとはinstall guideの設定をひたすらやっていきます。
$ sudo curl -o /etc/yum.repos.d/wakame-vdc.repo -R https://raw.githubusercontent.com/axsh/wakame-vdc/master/rpmbuild/wakame-vdc.repo $ sudo curl -o /etc/yum.repos.d/openvz.repo -R https://raw.githubusercontent.com/axsh/wakame-vdc/master/rpmbuild/openvz.repo wakame-vdc/master/rpmbuild/openvz.repo $ sudo yum install -y epel-release $ sudo yum install -y wakame-vdc-dcmgr-vmapp-config $ sudo yum install -y wakame-vdc-hva-openvz-vmapp-config $ sudo yum install -y wakame-vdc-webui-vmapp-config
ここまで終わったら再起動します。
$ sudo shutdown -r now
再起動後、新たにネットワークのインタフェース「venet0」が追加されています。
しかし、ここで
$ sudo service network restart
をするとこのvenet0だけこけます。
なのでvenet0を編集します。
$ sudo vi /etc/sysconfig/network-scripts/ifcfg-venet0
で以下のようにNM_CONTROLLED=noを追記
これで
$ sudo service network restart
をするときちんとOKが表示されるようになると思います。
install guideではこの後ネットワーク周りの設定を行っていますが、今回の記事では先にネットワーク周りは設定済みなのでそこは飛ばして、install guideのManual Configurationから続けていきます。
$ sudo cp /opt/axsh/wakame-vdc/dcmgr/config/dcmgr.conf.example /etc/wakame-vdc/dcmgr.conf $ sudo cp /opt/axsh/wakame-vdc/dcmgr/config/hva.conf.example /etc/wakame-vdc/hva.conf $ sudo cp /opt/axsh/wakame-vdc/frontend/dcmgr_gui/config/database.yml.example /etc/wakame-vdc/dcmgr_gui/database.yml $ sudo cp /opt/axsh/wakame-vdc/frontend/dcmgr_gui/config/dcmgr_gui.yml.example /etc/wakame-vdc/dcmgr_gui/dcmgr_gui.yml $ sudo cp /opt/axsh/wakame-vdc/frontend/dcmgr_gui/config/instance_spec.yml.example /etc/wakame-vdc/dcmgr_gui/instance_spec.yml $ sudo cp /opt/axsh/wakame-vdc/frontend/dcmgr_gui/config/load_balancer_spec.yml.example /etc/wakame-vdc/dcmgr_gui/load_balancer_spec.yml $ sudo service mysqld start $ mysqladmin -uroot create wakame_dcmgr $ cd /opt/axsh/wakame-vdc/dcmgr $ /opt/axsh/wakame-vdc/ruby/bin/rake db:up
ここまでやったら1つファイルの中身を編集します。(install guide通りです)
$ sudo vi /etc/default/vdc-hva
でNODE_ID=demo1の前のコメントアウト(#)を外します。
引き続きinstall guideの設定に戻り、残りをやっていきます。
$ /opt/axsh/wakame-vdc/dcmgr/bin/vdc-manage host add hva.demo1 \ --uuid hn-demo1 \ --display-name "demo HVA 1" \ --cpu-cores 100 \ --memory-size 10240 \ --hypervisor openvz \ --arch x86_64 \ --disk-space 102400 \ --force $ sudo mkdir -p /var/lib/wakame-vdc/images $ cd /var/lib/wakame-vdc/images $ sudo curl -O http://dlc.wakame.axsh.jp.s3.amazonaws.com/demo/vmimage/ubuntu-lucid-kvm-md-32.raw.gz $ /opt/axsh/wakame-vdc/dcmgr/bin/vdc-manage
ここまでやるとwakameのvdc-manageプロンプトが立ち上がります。
引き続き以下の内容を入力していきます。
backupstorage add \ --uuid bkst-local \ --display-name "local storage" \ --base-uri "file:///var/lib/wakame-vdc/images/" \ --storage-type local \ --description "storage on the local filesystem" backupobject add \ --uuid bo-lucid5d \ --display-name "Ubuntu 10.04 (Lucid Lynx) root partition" \ --storage-id bkst-local \ --object-key ubuntu-lucid-kvm-md-32.raw.gz \ --size 149084 \ --allocation-size 359940 \ --container-format gz \ --checksum 1f841b195e0fdfd4342709f77325ce29 image add local bo-lucid5d \ --account-id a-shpoolxx \ --uuid wmi-lucid5d \ --root-device uuid:148bc5df-3fc5-4e93-8a16-7328907cb1c0 \ --display-name "Ubuntu 10.04 (Lucid Lynx)"
以下はinstall guideの内容から今回の環境に合わせて変更してあります。
network add \ --uuid nw-demo1 \ --ipv4-network 192.168.58.0 \ --prefix 24 \ --ipv4-gw 192.168.58.1 \ --dns 8.8.8.8 \ --account-id a-shpoolxx \ --display-name "demo network"
その次の設定も今回の内容に合わせて変更してください。インスタンスに割り当てられるホストのipは適当に10~199までとし、自身のbr0のip:100はreserveで使われないようにします。
network dhcp addrange nw-demo1 192.168.58.10 192.168.58.199
network reserve nw-demo1 --ipv4 192.168.58.100
あとはもうinstall guide通り
macrange add 525400 1 ffffff --uuid mr-demomacs network dc add public --uuid dcn-public --description "the network instances are started in" network dc add-network-mode public securitygroup network forward nw-demo1 public exit $ mysqladmin -uroot create wakame_dcmgr_gui $ cd /opt/axsh/wakame-vdc/frontend/dcmgr_gui/ $ /opt/axsh/wakame-vdc/ruby/bin/rake db:init $ /opt/axsh/wakame-vdc/frontend/dcmgr_gui/bin/gui-manage
ここでもgui-manageプロンプトが立ち上がります。
account add --name default --uuid a-shpoolxx user add --name "demo user" --uuid u-demo --password demo --login-id demo user associate u-demo --account-ids a-shpoolxx exit $ sudo service rabbitmq-server start $ sudo service mysqld start $ sudo start vdc-dcmgr $ sudo start vdc-collector $ sudo start vdc-hva $ sudo start vdc-webui
これでサーバが立ち上がったのであとはインスタンス起動
ホストのMacからインスタンスの立ち上げとインスタンスへのssh
ホストのWebブラウザから192.168.58.100:9000にアクセスします。
ユーザーとパスワードは両方ともdemoで
まずセキュリティグループの設定です。
「NETWORK & SECURITY」の「Security Groups」で「Create Security Groups」をクリックします。
sshが通るよう22ポートを開けます。
次にkey pairsの画面に行きsshキーを取得します。
「Create Key Pairs」をクリックします。
適当に名前を入れてCreateをクリック
ダウンロードしたキーペアを保存します。
次にMachine Imagesの画面に行って
Ubuntu 10.04を選んで「Launch Instance」をクリック
Instance Nameを適当に入れ、Security Groupsを「>」をクリックして右のフィールドへ移動、Vifで「[nw-demo1]demo network」を選択し、「Launch」をクリック。
そしてInstanceの画面にいき、Stateがinitializingからrunningに変わるのを待ちます。
あとはsshをしてみるのみです。
そのまえに、macだとkeyファイルのパーミッションが400とかじゃないとアラートが出るので、ターミナルを開いてパーミッションを変更します。
~$ chmod 400 Downloads/ssh-wx6or7aj.pem ~$ ssh -i Downloads/ssh-wx6or7aj.pem -l ubuntu 192.168.58.10
これでやっとログインできました。
今回はここまでです。これでホストがたとえインターネットに接続されていなくても、wakame環境をいじり倒すことができるようになります。
どうでしたでしょうか。何か不備があればご指摘ください。
非常に長い手順を踏みますが、慣れてしまえば1時間ぐらいあればできると思います。まあ、あまりこの手順になれることもないと思いますが……。
自分は恥ずかしい話、ホストOSやvirtualBoxのネットワーク設定を色々変えて20回以上インストールに失敗したので最後の方は手順を暗記し相当速くなりました。
まあこれも勉強ですね。
今回はこれで終了です。