そろそろ触ってみようかと思い、試してみました。 アンサーファイルの中身、ずいぶん増えたなあ。ダッシュボードのOpenStackのロゴ、新しくなりましたね。
なお、CentOS 7はVirtualBoxとVagrantを使ってデプロイする都合で、ちょっとだけ面倒なことをしています。
OpenStackのデプロイまでの流れ
0.CentOS 7のデプロイ、起動
デプロイするCentOS 7のVagrantイメージは公式のものをダウンロードし、登録しておきます。
vagrant up
もしくはvagrant up XX
などでCentOS 7を起動します。
$ vagrant up
1.CentOS7が起動したら、面倒なのでrootユーザーになる
$ sudo -i
2.リポジトリーを有効化
CentOSのOpenStackパッケージは「centos-release-openstack-XX」という名前のパッケージをインストールすると有効になります。現行の最新版はOcataです。
# yum install -y centos-release-openstack-ocata
ちなみに現時点ではインストールするパッケージを変更することで、Mitaka,Newtonをデプロイするのも成功しています。
- centos-release-openstack-mitaka
- centos-release-openstack-newton
3.すべてのパッケージをアップデート
# yum update -y
4.再起動する(推奨)
カーネルの更新があった場合は再起動が必要です。vagrant reload
コマンドで仮想マシンを再起動します。
# exit $ exit $ vagrant reload $ vagrant ssh
5.ifupコマンドでeth1をアクティブにする
VMにNICを追加するか、事前に二つ目を追加するようにVagrantfileに記述しておき、CentOS起動後に追加したデバイスをUpします。今後のVagrantのバージョンアップでこの処理が不要になるかも知れません。
# ifup eth1
6.eth1インターフェイスを確認
# ip a s eth1 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 192.168.0.213/24 brd 192.168.0.255 scope global eth1 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe10:63dc/64 scope link valid_lft forever preferred_lft forever
7.openstack-packstackパッケージのインストール
# yum install -y openstack-packstack
通常、1Nodeインストールする場合、この後packstack --allinone
コマンドを実行してall-in-oneインストール!
...するわけですが、そのまま実行すると想定したように構築できない(VirtualBoxはNATのIPアドレスには外から中へアクセスできない)ので、以下の方法で事前にデプロイする環境のBind IPアドレスを変更する。
8.アンサーファイルの作成
# packstack --gen-answer-file=answer.txt
もしくは--dry-runと--install-hostsをつけて実行する。install-hostsでbind-ip側のIPアドレスを指定すると、ステップ9が不要になります。
# packstack --install-hosts=192.168.0.213 --dry-run
9.IPアドレスが「10.0.2.15」と設定されている箇所をeth1のIPアドレスに変更
実行例
# sed -i 's/10.0.2.15/192.168.0.213/g' answer.txt
10.0.2.15はeth0が持つIPアドレス(NAT接続)。VirtualBoxのNAT接続は中から外の通信のみ可能なので、このインターフェイスを使うと構築したOpenStackにアクセスできない。これを回避するためにアクセスできるeth1の方に切り替える。
eth1は「Host Only Adapter」を割り当てると良い(ちなみに他のユーザーに公開したい場合はブリッジなどを使う)。
10.その他、設定したい箇所があれば編集する。 インストールしたい、したくないコンポーネントを設定...など。
11.インストール開始
# packstack --answer-file=answer.txt ... **** Installation completed successfully ****** Additional information: * Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components. * Warning: NetworkManager is active on 192.168.0.213. OpenStack networking currently does not work on systems that have the Network Manager service enabled. * File /root/keystonerc_admin has been created on OpenStack client host 192.168.0.213. To use the command line tools you need to source the file. * To access the OpenStack Dashboard browse to http://192.168.0.213/dashboard . Please, find your login credentials stored in the keystonerc_admin in your home directory. * The installation log file is available at: /var/tmp/packstack/20170319-123201-RWxEWA/openstack-setup.log * The generated manifests are available at: /var/tmp/packstack/20170319-123201-RWxEWA/manifests
OpenStackの利用
adminユーザーのログインパスワードはkeystonerc_adminに、demoユーザーのログインパスワードはkeystonerc_demoに書かれています。
セキュリティーグループでICMPとSSHを許可してインスタンスを起動。pingとsshによるログインができることを確認。
ちなみにkeystonerc_adminやkeystonerc_demoをsourceコマンドで読み込むと、コマンドによるOpenStackの操作も可能です。
なお、VirtualBoxではNested Virtualizationできないので、Nova ComputeをKVMモードで動かすことができません。QEMUモードで動かすので、ほとんどのOSは素早く起動しない点に注意しましょう。
KVMで動かしたい場合は、LinuxにVagrantとLinux KVMをインストールして、VagrantのLibvirtプラグイン(vagrant plugin install vagrant-libvirtでインストール可能)とVirtIO用のVagrant Box ImageでCentOS7を起動してその中で実行しましょう。同じように動作するはずです。ちなみにvagrant pluginがうまく通らない場合は公式のVagrantインストーラーでインストールしてから実行すると良い感じです。
OpenStack環境の停止と再開
デプロイしたOpenStackをインストールした環境はVagrantならそのままサスペンドができます。vagrant resume
コマンドを実行したら元通り。
1.環境の一時停止
$ vagrant suspend
2.環境の再開
$ vagrant resume
QEMUじゃなくてKVMモードでComputeをデプロイするには?
VagrantのLibvirtプラグインを使って、Linux KVMにデプロイするような設定をすればいける!