cURLでOpenStackを操作する。
DevStack環境を構築した後、cURLで、OpenStackを操作してみた。これにより、OpenStackでの基本的な認証フローがわかるようになる。
- keystoneに接続してtokenを取得する。下が出力例
curl -X POST http://aaa.bbb.ccc.ddd:5000/v2.0/tokens -H "Content-Type: application/json" -d '{"auth": {"tenantName": "'"$OS_TENANT_NAME"'", "passwordCredentials": {"username": "'"$OS_USERNAME"'", "password": "'"$OS_PASSWORD"'"}}}' | python -m json.tool
{ "access": { "metadata": { "is_admin": 0, "roles": [ "d2aa6ac03dc44b4da92da3a25ee21ada", "a1fcc636dc7d413594437d56bd8e4b64" ] }, "serviceCatalog": [ { "endpoints": [ { "adminURL": "http://aaa.bbb.ccc.ddd:8774/v2.1", "id": "7cc7f5caf1464bbd894a74dd147cb6bd", "internalURL": "http://aaa.bbb.ccc.ddd:8774/v2.1", "publicURL": "http://aaa.bbb.ccc.ddd:8774/v2.1", "region": "RegionOne" } ], "endpoints_links": [], "name": "nova", "type": "compute" }, { "endpoints": [ { "adminURL": "http://aaa.bbb.ccc.ddd:9696/", "id": "06b46999a2214a60914857a695ec4a3d", "internalURL": "http://aaa.bbb.ccc.ddd:9696/", "publicURL": "http://aaa.bbb.ccc.ddd:9696/", "region": "RegionOne" } ], "endpoints_links": [], "name": "neutron", "type": "network" }, { "endpoints": [ { "adminURL": "http://aaa.bbb.ccc.ddd:8776/v2/5325bbb937ef4a09b32c7ceff026dd73", "id": "74bdd8f0771b456d96fd263db3764502", "internalURL": "http://aaa.bbb.ccc.ddd:8776/v2/5325bbb937ef4a09b32c7ceff026dd73", "publicURL": "http://aaa.bbb.ccc.ddd:8776/v2/5325bbb937ef4a09b32c7ceff026dd73", "region": "RegionOne" } ], "endpoints_links": [], "name": "cinderv2", "type": "volumev2" }, { "endpoints": [ { "adminURL": "http://aaa.bbb.ccc.ddd:8776/v3/5325bbb937ef4a09b32c7ceff026dd73", "id": "2232d773967e445f8377ed57ead23380", "internalURL": "http://aaa.bbb.ccc.ddd:8776/v3/5325bbb937ef4a09b32c7ceff026dd73", "publicURL": "http://aaa.bbb.ccc.ddd:8776/v3/5325bbb937ef4a09b32c7ceff026dd73", "region": "RegionOne" } ], "endpoints_links": [], "name": "cinderv3", "type": "volumev3" }, { "endpoints": [ { "adminURL": "http://aaa.bbb.ccc.ddd:9292", "id": "6557190c32444bcc9aa76eb71a07d126", "internalURL": "http://aaa.bbb.ccc.ddd:9292", "publicURL": "http://aaa.bbb.ccc.ddd:9292", "region": "RegionOne" } ], "endpoints_links": [], "name": "glance", "type": "image" }, { "endpoints": [ { "adminURL": "http://aaa.bbb.ccc.ddd:8774/v2/5325bbb937ef4a09b32c7ceff026dd73", "id": "5f4e3d9941334da5abb377af6ac35f20", "internalURL": "http://aaa.bbb.ccc.ddd:8774/v2/5325bbb937ef4a09b32c7ceff026dd73", "publicURL": "http://aaa.bbb.ccc.ddd:8774/v2/5325bbb937ef4a09b32c7ceff026dd73", "region": "RegionOne" } ], "endpoints_links": [], "name": "nova_legacy", "type": "compute_legacy" }, { "endpoints": [ { "adminURL": "http://aaa.bbb.ccc.ddd:8776/v1/5325bbb937ef4a09b32c7ceff026dd73", "id": "8265590f8397471382d02521c77a4a35", "internalURL": "http://aaa.bbb.ccc.ddd:8776/v1/5325bbb937ef4a09b32c7ceff026dd73", "publicURL": "http://aaa.bbb.ccc.ddd:8776/v1/5325bbb937ef4a09b32c7ceff026dd73", "region": "RegionOne" } ], "endpoints_links": [], "name": "cinder", "type": "volume" }, { "endpoints": [ { "adminURL": "http://aaa.bbb.ccc.ddd:35357", "id": "338035a23b7044c8bde3a09add9069f6", "internalURL": "http://aaa.bbb.ccc.ddd:5000", "publicURL": "http://aaa.bbb.ccc.ddd:5000", "region": "RegionOne" } ], "endpoints_links": [], "name": "keystone", "type": "identity" } ], "token": { "audit_ids": [ "fIqRTCsTRnq4ls4Fk9ci7Q" ], "expires": "2016-04-22T18:32:15Z", "id": "9e46d8b2d6da46eb87e573ee9590ee73", "issued_at": "2016-04-22T17:32:15.470575Z", "tenant": { "description": "", "enabled": true, "id": "5325bbb937ef4a09b32c7ceff026dd73", "name": "demo" } }, "user": { "id": "0b1660f5c772423db35c31432e7c3a46", "name": "demo", "roles": [ { "name": "Member" }, { "name": "anotherrole" } ], "roles_links": [], "username": "demo" } } }
- cinderに接続する。
curl -s -H "Accept: application/xml" -H "X-Auth-Token:2bb531a2c14c4da4a9ff81c8fd2f4bd3" http://aaa.bbb.ccc.ddd:8776/v2/e3d7ae2ff008492894e653798c688472/cgsnapshots