2013/12/13

devstack finished time on MacBook at Okinawa Tokyu biz-fort Hotel

DevStackが終わったので、追試としては記載します。

時間かかかりました。

ホテルの回線とDevStackのgit cloneを正直ナメテいました。

>>> snip <<<


This is your host ip: 192.168.27.100
stack.sh completed in 6288 seconds.
[default] Running provisioner: shell...
[default] Running: inline script
[default] Running provisioner: ansible...

PLAY [workaround for https://bugs.launchpad.net/devstack/+bug/1243075] ********

TASK: [add missing line to horizon.conf] **************************************
changed: [default] => {"changed": true, "msg": "line added"}

NOTIFIED: [restart apache] ****************************************************
changed: [default] => {"changed": true, "name": "apache2", "state": "started"}

PLAY RECAP ********************************************************************
default : ok=2 changed=2 unreachable=0 failed=0


ConoHa-MacBook-Pro:devstack-vm chroum$
ConoHa-MacBook-Pro:devstack-vm chroum$ date
2013年 12月13日 金曜日 00時46分02秒 JST
ConoHa-MacBook-Pro:devstack-vm chroum$
こんな感じで、20時からはじめてご覧の通りです。

ConoHa-MacBook-Pro:devstack-vm chroum$ vagrant  ssh
Welcome to Ubuntu 13.10 (GNU/Linux 3.11.0-14-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

 System information disabled due to load higher than 1.0

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

Last login: Thu Dec 12 15:45:28 2013 from 10.0.2.2
vagrant@vagrant-ubuntu-saucy-64:~$


vagrant@vagrant-ubuntu-saucy-64:~$ ls /opt/
stack
vagrant@vagrant-ubuntu-saucy-64:~$ ls /opt/stack/
cinder   keystone  noVNC           python-cinderclient    python-neutronclient    requirements
data     logs      oslo.config     python-glanceclient    python-novaclient       status
glance   neutron   oslo.messaging  python-heatclient      python-openstackclient  swift
horizon  nova      pbr             python-keystoneclient  python-swiftclient
vagrant@vagrant-ubuntu-saucy-64:~$


実行コマンド類は、/usr/local/bin 以下にインストールされます。

vagrant@vagrant-ubuntu-saucy-64:~$ ls -l /usr/local/bin/ | head
total 568
-rwxr-xr-x 1 root root  301 Dec 12 14:59 alembic
-rwxr-xr-x 1 root root  160 Dec 12 15:41 ceilometer
-rwxr-xr-x 1 root root  156 Dec 12 14:35 cinder
-rwxr-xr-x 1 root root  296 Dec 12 14:53 cinder-all
-rwxr-xr-x 1 root root  296 Dec 12 14:53 cinder-api
-rwxr-xr-x 1 root root  302 Dec 12 14:53 cinder-backup
-rwxr-xr-x 1 root root  328 Dec 12 14:53 cinder-clear-rabbit-queues
-rwxr-xr-x 1 root root  302 Dec 12 14:53 cinder-manage
-rwxr-xr-x 1 root root  306 Dec 12 14:53 cinder-rootwrap
vagrant@vagrant-ubuntu-saucy-64:~$

この状態では、vmは起動していません

vagrant@vagrant-ubuntu-saucy-64:~$ sudo virsh list --all
 Id    Name                           State
----------------------------------------------------

vagrant@vagrant-ubuntu-saucy-64:~$

dfでみると、/vagrant
vagrant@vagrant-ubuntu-saucy-64:~$ sudo cat /etc/mtab | grep vagrant
/vagrant /vagrant vboxsf uid=1000,gid=1000,rw 0 0
vagrant@vagrant-ubuntu-saucy-64:~$

ここがvboxfsでguest mountされている(Vagrantfileをおいているdirがマウントされる)みたいなんだけど、HostのMacBook ProをVirtualBoxインストール後、再起動していないのでうまくいかないみたい。

もういちど、Vagrantのディレクトリに出ます。
ここに、boot-cirros.pyという python APIをつかったcirros imageでの起動例があります。その中に、auth API endpointがありますので、それに使われている 192.168.27.100 に対してping疎通確認します。

ConoHa-MacBook-Pro:devstack-vm chroum$ ping 192.168.27.100
PING 192.168.27.100 (192.168.27.100): 56 data bytes
64 bytes from 192.168.27.100: icmp_seq=0 ttl=64 time=0.450 ms
64 bytes from 192.168.27.100: icmp_seq=1 ttl=64 time=0.310 ms
^C
--- 192.168.27.100 ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.310/0.380/0.450/0.070 ms
ConoHa-MacBook-Pro:devstack-vm chroum$

これにより、シナリオ通りに起動していることがわかります。

keystoneはこちら

auth URL
http://192.168.27.100:35357/v2.0

本来なら、auth URLから 開発検証環境 devstackにnova cliやopenstack cliでコマンドをたたくのですが、付属しているpython のAPI Exampleにて、作業させてみます。
以下、boot-cirros.pyでcirros imageのbootを確認できます
python-*client がひつようなので、Mac OS Xでたたきたい場合には、neutron, novaのpython-***client をMac OS Xにインストールするひつようがありますね。

vagrant@vagrant-ubuntu-saucy-64:~$ exit
logout
Connection to 127.0.0.1 closed.

ConoHa-MacBook-Pro:devstack-vm chroum$ ls -l
total 136
-rw-r--r--  1 chroum  staff     55 12 12 21:38 Makefile
-rw-r--r--  1 chroum  staff   7928 12 12 21:38 README.md
-rw-r--r--  1 chroum  staff   1384 12 12 21:38 Vagrantfile
-rw-r--r--  1 chroum  staff    164 12 12 21:38 admin.openrc
-rw-r--r--  1 chroum  staff    107 12 12 21:38 ansible_hosts
-rwxr-xr-x  1 chroum  staff   2863 12 12 21:38 boot-cirros.py
-rw-r--r--  1 chroum  staff    163 12 12 21:38 demo.openrc
-rw-r--r--  1 chroum  staff   1145 12 12 21:38 devstack.yaml
drwxr-xr-x  3 chroum  staff    102 12 12 21:38 files
-rw-r--r--  1 chroum  staff    510 12 12 21:38 horizon-workaround.yaml
-rw-r--r--  1 chroum  staff   1675 12 12 21:38 id_vagrant
drwxr-xr-x  3 chroum  staff    102 12 12 21:38 templates
-rw-r--r--  1 chroum  staff  18133 12 12 21:38 topology.png
-rw-r--r--  1 chroum  staff     81 12 13 00:45 vagrant_ansible_inventory_default
ConoHa-MacBook-Pro:devstack-vm chroum$ cat boot-cirros.py
#!/usr/bin/env python -u
'''

This script does the following

1. Connect the router to the public network
2. Add a public key
3. Boot a cirros instance
4. Attach a floating IP


'''
from __future__ import print_function

import datetime
import os.path
import socket
import sys
import time

from novaclient.v1_1 import client as novaclient
from neutronclient.v2_0 import client as neutronclient


auth_url = "http://192.168.27.100:35357/v2.0"
username = "demo"
password = "password"
tenant_name = "demo"

neutron = neutronclient.Client(auth_url=auth_url,
                                    username=username,
                                    password=password,
                                    tenant_name=tenant_name)

nova = novaclient.Client(auth_url=auth_url,
                         username=username,
                         api_key=password,
                         project_id=tenant_name)


if not nova.keypairs.findall(name="mykey"):
    print("Creating keypair: mykey...")
    with open(os.path.expanduser('~/.ssh/id_rsa.pub')) as fpubkey:
        nova.keypairs.create(name="mykey", public_key=fpubkey.read())
print("done")

print("Booting cirros instance...", end='')
image = nova.images.find(name="cirros-0.3.1-x86_64-uec")
flavor = nova.flavors.find(name="m1.tiny")
instance = nova.servers.create(name="cirros", image=image, flavor=flavor,
                              key_name="mykey")

# Poll at 5 second intervals, until the status is no longer 'BUILD'
status = instance.status
while status == 'BUILD':
    time.sleep(5)
    # Retrieve the instance again so the status field updates
    instance = nova.servers.get(instance.id)
    status = instance.status
print("done")


print("Creating floating ip...", end='')
# Get external network
ext_net, = [x for x in neutron.list_networks()['networks']
                    if x['router:external']]

# Get the port corresponding to the instance
port, = [x for x in neutron.list_ports()['ports']
                 if x['device_id'] == instance.id]

# Create the floating ip
args = dict(floating_network_id=ext_net['id'],
            port_id=port['id'])
ip_obj = neutron.create_floatingip(body={'floatingip': args})
print("done")

ip = ip_obj['floatingip']['floating_ip_address']
print("IP:{}".format(ip))

print("Waiting for ssh to be ready on cirros instance...", end='')
start = datetime.datetime.now()
timeout = 120
end = start + datetime.timedelta(seconds=timeout)
port = 22
connect_timeout = 5
# From utilities/wait_for of ansible
while datetime.datetime.now() < end:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.settimeout(connect_timeout)
    try:
        s.connect((ip, port))
        s.shutdown(socket.SHUT_RDWR)
        s.close()
        print()
        break
    except:
        time.sleep(1)
        pass
else:
    print("ssh server never came up!")
    sys.exit(1)


dashboardは以下でアクセスできます
http://192.168.27.100/
dashboardで操作した画面はこちら
スクリーンショット 2013 12 13 02 53 13
login後の状態
スクリーンショット 2013 12 13 02 53 32
適度にネットワークとか作ってvmインスタンスを起動したところ
スクリーンショット 2013 12 13 03 04 04

*) 停止(vagrant)
ConoHa-MacBook-Pro:devstack-vm chroum$ vagrant halt
[default] Attempting graceful shutdown of VM...
ConoHa-MacBook-Pro:devstack-vm chroum$ vagrant status
Current machine states:
default poweroff (virtualbox)

*) snapshot取得
devstackの設定を変えるときには、vmのシャットダウンがいる、必要.。
The VM is powered off. To restart the VM, simply run `vagrant up`
ConoHa-MacBook-Pro:devstack-vm chroum$
ConoHa-MacBook-Pro:devstack-vm chroum$ vagrant snapshot take demo01-at-okinawa-by-ad-cal-2013
Taking snapshot demo01-at-okinawa-by-ad-cal-2013
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
ConoHa-MacBook-Pro:devstack-vm chroum$ vagrant snapshot list
Listing snapshots for 'default':
Name: demo01-at-okinawa-by-ad-cal-2013 (UUID: 9321711d-08eb-4556-b462-fea2291de8ff) *
ConoHa-MacBook-Pro:devstack-vm chroum$
*) 再度(2回目)起動する
プロビジョニングは強制オプションをつけない限り、2回目は実行されません。

ConoHa-MacBook-Pro:devstack-vm chroum$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Clearing any previously set forwarded ports...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Running 'pre-boot' VM customizations...
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...
[default] Machine booted and ready!
[default] The guest additions on this VM do not match the installed version of
VirtualBox! In most cases this is fine, but in rare cases it can
cause things such as shared folders to not work properly. If you see
shared folder errors, please update the guest additions within the
virtual machine and reload your VM.
Guest Additions Version: 4.2.16
VirtualBox Version: 4.3
[default] Configuring and enabling network interfaces...
[default] Mounting shared folders...
[default] -- /vagrant
[default] VM already provisioned. Run `vagrant provision` or use `--provision` to force it
ConoHa-MacBook-Pro:devstack-vm chroum$
 と、ここまでです。


2013/12/12

OpenStackerがMacBookを買ったらまずセットアップする環境構築 / OpenStack Advent Calendar 2013

どうも、@naoto_gohkoです。


しばらく、blog書いてなかったのですけど、OpenStack Advent Calendar 2013 JPにエントリーしてしまったので、沖縄で今、懇親会の後に書いています。
Linkなどは書かないものもありますので、ご了承ください。
(ぐぐるとわかりますけど)
https://github.com/irixjp/opstjp-ac/wiki/OpenStack-Advent-Calendar-2013-JP


Okinawa Open Days 2013 については、会長(@irix_jp)さんが明日書くようなので、それをお楽しみに。


さて、沖縄までまっさら(OSの初期電源投入しただけ)のMacBook Proを持ち込んでかいています。
発表に使ったMacBook Airとはべつにもってきていたりします。
重かったですが、200gしか重量が違わないそうなので、今後こっちを使っていくために環境構築したいと思います。
BbNVYefCIAAXPjb jpg large
こんな感じ。
薄さもそんなかわらないですね。いがいと。
まず、なにを設定したかというと、iCloud, AppStoreの設定ですね。
Xcodeがないといろいろ開発環境の構築ができないので。
スクリーンショット 2013 12 11 23 19 14
これで、keychainは認証がほかのiPhoneまたはMacBook Airで実施します。
すると、iCloudの設定が同期します。

それと、せっかく高解像度のMacBook Proなので、ディスプレイの設定を「スペースを拡大」に設定します。

さすがに字がちっさいですけど、図を書いたりするので、広いのが良いです。
スクリーンショット 2013 12 11 23 24 39
Appleメニューから、「App Store」を起動して、アプリケーションを最新にします。
2013のMac OS X Merverikプリインストールのモデルから、Keynote 2013を含むiWorksがデフォルトでインストールされます。

ただし、注意しないといけないのは、keynote 2013は書類の形式がそれまでの形式とかわって、zipでのpackがかかっていないようになっています。Dropbox, Windowsなどとやり取りする場合、Folderにみえてしまうので、dropboxにuploadする場合には、zip圧縮する方がよいですね(iWork 2013)。iWork 2013などかなりサイズがデカイので、updateが時間がかなりかかります。

じぶんが、個別にApp Storeでインストールするソフトは、
  • TextWrangler
  • Xcode
  • Twitter
  • Microsoft Remote Desktop
  • Simple Note
  • LINE
ですかね。
Vagrantをインストールする前に、Xcodeまではかならずインストールを完了してください。

ほかに、個別にインストールするのはConoHaやOnamae.com VPS KVMの検証で各種ブラウザは入れます。
  • Firefox
  • Google chrome
あと、その他は
  • Google 日本語入力(なんかKeynote固まるので自粛中)
  • LibreOffice 4.1.3
  • iTerm2  http://www.iterm2.com
  • Homebrew  
  • VirtualBox + Extension
  • Vagrant

iterm2
スクリーンショット 2013 12 12 8 02 03

Homebrew (Xcode install済みで入れる)
スクリーンショット 2013 12 12 8 28 38
Homebrewはrubyのone linerでインストールします。
Mac OS X Merverikはruby 2.0.0p247とかのかなり新しめのrubyが入っていますけど、問題ないです。
2nd-ConoHa-MacBook-Pro:~ chroum$ git --version
git version 1.8.3.4 (Apple Git-47)
2nd-ConoHa-MacBook-Pro:~ chroum$ which git
/usr/bin/git

2nd-ConoHa-MacBook-Pro:~ chroum$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
2nd-ConoHa-MacBook-Pro:~ chroum$ which ruby
/usr/bin/ruby
管理者権限が必要なので、sudoパスワードを聞かれます。
2nd-ConoHa-MacBook-Pro:~ chroum$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
enter password


0) 作業の前にvagrant plugin install

Vagrant, VirtualBoxまではインストールが終わっているものとします。
snapshotを使えるようにして、スクリプトをカスタマイズしているときにまちがっても
やり直せるようにします。
2nd-ConoHa-MacBook-Pro:devstack-vm chroum$ vagrant plugin install vagrant-vbox-snapshot
Installing the 'vagrant-vbox-snapshot' plugin. This can take a few minutes...
Installed the plugin 'vagrant-vbox-snapshot (0.0.4)'!
2nd-ConoHa-MacBook-Pro:devstack-vm chroum$
これは、Virtualbox providerの場合のsnapshotをとれるようにするpluginです。
ほかの仮想化(libvirt, kvm, OpenStack)providerの場合には別の方法がひつようですね。

# ansible を install 
自分の構成設定はansibleが最近多いので、入れます。
devstackでansible deployする場合には、実際には中のOSでansibleされますので、host OSではansibleは必要ありません。
ConoHaはssh keyをOpenStackのinjectionでvmに設定してくれるのでとくに、手元で操作できる方が良いので入れちゃいます。
2nd-ConoHa-MacBook-Pro:DevStack chroum$ brew install ansible


1) stableソースコードを読むため環境のつくる

stableのソースコードを手元でいつでもみれるようにします。
まず、brewでwget, curlを入れておきます。
2nd-ConoHa-MacBook-Pro:dev-nova chroum$ brew install wget
2nd-ConoHa-MacBook-Pro:dev-nova chroum$ brew install curl
Grizzly stable, Havana stableのソースコード取得します。
stableだと、zipでgithubから取得するのがgitのよけいな情報がないので、高速に取得できます。

githubはgitでアクセスするものと基本的には思っていますが、stableでまずは
電車内でノマドなリーディングする場合など、ローカルにあると重宝します。
Dropboxなんかにおいて、iPadで読むなんてもおしゃれじゃないですかね。
wgetこまんどかcurlコマンドかは趣味の範囲ですので、各自ユーザーに任せます。
mkdir ~/devel/OpenStack/dev-nova
cd ~/devel/OpenStack/dev-nova/
wget https://github.com/openstack/nova/archive/stable/grizzly.zip -O grizzly.zip
unzip grizzly.zip
wget https://github.com/openstack/nova/archive/stable/havana.zip -O havana.zip
unzip havana.zip
cd ../
こんなかんじですね。たいしたことないですけど

2) ふつうに、DevStack環境を作る
vagrantでdevstack環境を作っておきます。
devstackはgitでmaster branchからソースを持ってきますので、stableとは別にあった方が良いですね。
動作するdevstackなのか、動作しないdevstackなのかは、vagrantでdevstackを稼働させて判断します。
最新のtrunkコードの確認やDevStack動作確認について必要な方のためのQuick install
http://devstack.org/
以下のスライドを見つけました。lorinhさんのやつ
githubはこちら
この動作の流れは、
Ubuntu 13.10 + devstackの環境をつくってdevstack All-in-oneのインストールを
するものです。
MacBook Airで試したときにはかなり時間がかかりました。
全然Quickじゃないです。
ConoHa-MacBook-Pro:OpenStack chroum$ mkdir ~/devel/OpenStack/devstack-vm
ConoHa-MacBook-Pro:OpenStack chroum$ cd ~/devel/OpenStack/devstack-vm/
ConoHa-MacBook-Pro:devstack-vm chroum$ ls -l
total 8
-rw-r--r--  1 chroum  staff  13 12 12 21:37 01-git-clone-devstack-vag.sh
ConoHa-MacBook-Pro:devstack-vm chroum$ vim 01-git-clone-devstack-vag.sh
ConoHa-MacBook-Pro:devstack-vm chroum$ sh 01-git-clone-devstack-vag.sh
Cloning into 'devstack-vm'...
remote: Counting objects: 229, done.
remote: Compressing objects: 100% (96/96), done.
remote: Total 229 (delta 123), reused 220 (delta 118)
Receiving objects: 100% (229/229), 50.86 KiB | 0 bytes/s, done.
Resolving deltas: 100% (123/123), done.
Checking connectivity... done
ConoHa-MacBook-Pro:devstack-vm chroum$ cat 01-git-clone-devstack-vag.sh
#!/bin/bash
git clone https://github.com/lorin/devstack-vm
ConoHa-MacBook-Pro:devstack-vm chroum$
ConoHa-MacBook-Pro:devstack-vm chroum$ ls -l
total 8
-rw-r--r--   1 chroum  staff   62 12 12 21:38 01-git-clone-devstack-vag.sh
drwxr-xr-x  17 chroum  staff  578 12 12 21:38 devstack-vm
ConoHa-MacBook-Pro:devstack-vm chroum$ cd devstack-vm/
ConoHa-MacBook-Pro:devstack-vm chroum$ ls -l
total 128
-rw-r--r--  1 chroum  staff     55 12 12 21:38 Makefile
-rw-r--r--  1 chroum  staff   7928 12 12 21:38 README.md
-rw-r--r--  1 chroum  staff   1384 12 12 21:38 Vagrantfile
-rw-r--r--  1 chroum  staff    164 12 12 21:38 admin.openrc
-rw-r--r--  1 chroum  staff    107 12 12 21:38 ansible_hosts
-rwxr-xr-x  1 chroum  staff   2863 12 12 21:38 boot-cirros.py
-rw-r--r--  1 chroum  staff    163 12 12 21:38 demo.openrc
-rw-r--r--  1 chroum  staff   1145 12 12 21:38 devstack.yaml
drwxr-xr-x  3 chroum  staff    102 12 12 21:38 files
-rw-r--r--  1 chroum  staff    510 12 12 21:38 horizon-workaround.yaml
-rw-r--r--  1 chroum  staff   1675 12 12 21:38 id_vagrant
drwxr-xr-x  3 chroum  staff    102 12 12 21:38 templates
-rw-r--r--  1 chroum  staff  18133 12 12 21:38 topology.png
ConoHa-MacBook-Pro:devstack-vm chroum$
Memoryのサイズが4096になっています。
環境によっては足りないと思いますので、3072とか2048とか変更してください。
でも、4096以上あった方が良いです。いろいろ中で動くので。
ConoHa-MacBook-Pro:devstack-vm chroum$ vim Vagrantfile
devstackのall in oneは、ご使用の環境に応じて手加減してください。
vagrant upすると、まずはboxのダウンロードから始まります。
Ubuntu 13.10(saucy 64bit)のダウンロードで回線によっては結構かかります。
12/12現在、沖縄のホテルでは110k/sぐらいで1時間くらいかかりました。
ubuntuが公開しているvagrant Imageから落としてきます
URL: http://cloud-images.ubuntu.com/vagrant/saucy/current/saucy-server-cloudimg-amd64-vagrant-disk1.box
以下、vagrant up実行結果
ConoHa-MacBook-Pro:devstack-vm chroum$ pwd
/Users/chroum/devel/OpenStack/devstack-vm/devstack-vm
ConoHa-MacBook-Pro:devstack-vm chroum$ vagrant
ConoHa-MacBook-Pro:devstack-vm chroum$ vim Vagrantfile
ConoHa-MacBook-Pro:devstack-vm chroum$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Box 'saucy64' was not found. Fetching box from specified URL for
the provider 'virtualbox'. Note that if the URL does not have
a box for this provider, you should interrupt Vagrant now and add
the box yourself. Otherwise Vagrant will attempt to download the
full box prior to discovering this error.
Downloading box from URL: http://cloud-images.ubuntu.com/vagrant/saucy/current/saucy-server-cloudimg-amd64-vagrant-disk1.box
Extracting box...te: 92649/s, Estimated time remaining: 0:00:01)
Successfully added box 'saucy64' with provider 'virtualbox'!
[default] Importing base box 'saucy64'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Running 'pre-boot' VM customizations...
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...
[default] Machine booted and ready!
[default] The guest additions on this VM do not match the installed version of
VirtualBox! In most cases this is fine, but in rare cases it can
cause things such as shared folders to not work properly. If you see
shared folder errors, please update the guest additions within the
virtual machine and reload your VM.
Guest Additions Version: 4.2.16
VirtualBox Version: 4.3
[default] Configuring and enabling network interfaces...
[default] Mounting shared folders...
[default] -- /vagrant
[default] Running provisioner: ansible...
PLAY [default] ****************************************************************
GATHERING FACTS ***************************************************************
ok: [default]
TASK: [create keyring config directory] ***************************************
changed: [default] => {"changed": true, "gid": 1000, "group": "vagrant", "mode": "0775", "owner": "vagrant", "path": "/home/vagrant/.local/share/python_keyring", "size": 4096, "state": "directory", "uid": 1000}
>>> snip <<<
さらに以下、待つのみ
開始してから、3時間、終わらないですね。
box downloadで1時間、destack構築はその後です。

ざんねんながら、負けた感じです( ; _ ; )

(3) RDO havana 環境構築
ここについては、沖縄の発表の中でIIJ斉藤さんのチームから発表がありましたので、リンクURLを張っておきます。
ついでに、私の資料もはります。
https://www.slideshare.net/chroum/open-stack-basepublicservicebygmo20131212


Open stack base-public-service-by-gmo-2013-1212 from Naoto Gohko

とりあえず、まっさらの環境からVagrant upをできるまでの環境を作りました。
devstackは負けた感じですけど、RDOとかOpenCenterとかの環境もいろいろgithubにあがっていたりします。斉藤さんのIIJチームの資料の今後もちょっと楽しみです。

Vagrantはshell, chef, puppet, ansibleなどいろいろkickできるので、 手元でノマドするにはいい感じのツールです。私の場合、PC持ち歩かないときには、ConHaのVPS上でもやったりしています。