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で操作した画面はこちら
\"スクリーンショット
login後の状態
\"スクリーンショット
適度にネットワークとか作ってvmインスタンスを起動したところ
\"スクリーンショット

*) 停止(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$

と、ここまでです。

  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ツールバーへスキップ