環境変数の定義(コマンドプロンプトを起動したら1回は実行する)
env.bat
set OS_AUTH_URL=https://icos-sea.openstack.blueboxgrid.com:5001/v2.0
set OS_TENANT_ID=162342da7f4b42adb7adfcb47e3746fd
set OS_USERNAME=matsuos
set OS_PASSWORD=XXXXXXXX
set OS_VERSION=2
環境変数を構造体に渡すためのサブルーチン(これは直接実行しない、呼び出される)
credentials.py
#!/usr/bin/env python
import os
def get_nova_creds():
d = {}
d['version'] = os.environ['OS_VERSION']
d['username'] = os.environ['OS_USERNAME']
d['api_key'] = os.environ['OS_PASSWORD']
d['auth_url'] = os.environ['OS_AUTH_URL']
d['tenant_id'] = os.environ['OS_TENANT_ID']
return d
インスタンスを作成するPythonコード(これを実行する)
create_environment.py
import os
import time
import novaclient.client as nvclient
from credentials import get_nova_creds
creds = get_nova_creds()
nova = nvclient.Client(**creds)
image = nova.images.find(name="ubuntu-14.04") ・・・実際のイメージ名に合わせる
flavor = nova.flavors.find(name="m1.tiny") ・・・実際のフレーバ名に合わせる
net = nova.networks.find(label="internal") ・・・実際のネットワーク名に合わせる
nics = [{'net-id': net.id}]
instance = nova.servers.create(
name="matsuos-2", ・・・作成したいインスタンス名
image=image,
flavor=flavor,
nics=nics)
# 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 "status: %s" % status
実行結果は次のような感じになります。
ダッシュボードを確認すると確かにmatsuos-2という名前のインスタンスが作成されている。
0 件のコメント:
コメントを投稿