• A22. openstack架构实战-openstack的api


    使用openstack的api之前必须获取openstack的token:

    id就是openstack的token:

    方法一:

    [root@controller01 ~]# openstack token issue

    [root@controller01 ~]# token=`openstack token issue | awk "NR==5"'{print $4}'`
    [root@controller01 ~]# echo "$token"
    gAAAAABe3uPnlxcX1u14e0fSZVwCL-JKg3pgv3ezsoeoapZRCLZwzVJ0cNo-xqK6TAturyknfMgj0IvQnuS91UvxNfKoc0YGGCaLTWi-2__XEKyT0kqZ3cLDtuO7Ni0ylvrIF2UT-qsBBnxf_GhkdaYxbSoqhcSv7e7jJGRorSn2IJu08hEpOzc

    方法二:

    curl -i -X POST -H 'Content-Type: application/json'
    -d '{
    "auth": {
    "identity": {
    "methods": ["password"],
    "password": {
    "user": {
    "domain": {
    "name": "default"
    },
    "name": "admin",
    "password": "huayun"
    }
    }
    },
    "scope": {
    "project": {
    "domain": {
    "name": "default"
    },
    "name": "admin"
    }

    }
    }
    }' http://10.100.201.201:5000/v3/auth/tokens

    有关详细的api请查看:https://docs.openstack.org/api-ref/

    使用token查看镜像列表:

    curl -H "X-Auth-Token:$token" -H 'Content-Type: application/json' http://10.100.214.202:9292/v2/images

    {
    "images": [{
    "status": "active",
    "name": "centos7",
    "tags": [],
    "container_format": "bare",
    "created_at": "2020-06-08T06:50:00Z",
    "size": 935067648,
    "disk_format": "qcow2",
    "updated_at": "2020-06-08T06:50:13Z",
    "visibility": "public",
    "self": "/v2/images/c01b3549-5b8a-48b0-b53b-973f63095f94",
    "min_disk": 0,
    "protected": false,
    "id": "c01b3549-5b8a-48b0-b53b-973f63095f94",
    "file": "/v2/images/c01b3549-5b8a-48b0-b53b-973f63095f94/file",
    "checksum": "e9d374643c670a70bb495aab87df61ec",
    "owner": "f4228d6dfa07453c84996e5f2be19ca2",
    "virtual_size": null,
    "min_ram": 0,
    "schema": "/v2/schemas/image"
    }, {
    "status": "active",
    "name": "cirros",
    "tags": [],
    "container_format": "bare",
    "created_at": "2020-05-24T07:26:06Z",
    "size": 12716032,
    "disk_format": "qcow2",
    "updated_at": "2020-05-24T07:26:06Z",
    "visibility": "public",
    "self": "/v2/images/423fe51f-6c08-4ba5-9248-fb107788b555",
    "min_disk": 0,
    "protected": false,
    "id": "423fe51f-6c08-4ba5-9248-fb107788b555",
    "file": "/v2/images/423fe51f-6c08-4ba5-9248-fb107788b555/file",
    "checksum": "443b7623e27ecf03dc9e01ee93f67afe",
    "owner": "f4228d6dfa07453c84996e5f2be19ca2",
    "virtual_size": null,
    "min_ram": 0,
    "schema": "/v2/schemas/image"
    }],
    "schema": "/v2/schemas/images",
    "first": "/v2/images"
    }

    使用token删除镜像:

    [root@controller01 ~]# curl -X DELETE -H "X-Auth-Token:$token" -H 'Content-Type: application/json' http://10.100.214.202:9292/v2/images/c01b3549-5b8a-48b0-b53b-973f63095f94

    [root@controller01 ~]# openstack image list
    +--------------------------------------+--------+--------+
    | ID | Name | Status |
    +--------------------------------------+--------+--------+
    | 423fe51f-6c08-4ba5-9248-fb107788b555 | cirros | active |
    +--------------------------------------+--------+--------+

    使用token删除一个实例:

    curl -X DELETE -H "X-Auth-Token:$token" -H 'Content-Type: application/json' http://10.100.201.201/8774/v2.1/${项目id}/servers/${实例id}

    创建实例:

    curl -X POST  -H "X-Auth-Token:$token" -H  'Content-Type: application/json'

    -d '{

        "server" : {
            "adminPass": "MySecretPass",
            "accessIPv4": "1.2.3.4",
            "accessIPv6": "80fe::",
            "name" : "new-server-test",
            "imageRef" : "70a599e0-31e7-49b7-b260-868f441e862b",
            "flavorRef" : "6",
            "OS-DCF:diskConfig": "AUTO",
            "metadata" : {
                "My Server Name" : "Apache1"
            },
            "security_groups": [
                {
                    "name": "default"
                }
            ],
            "user_data" : "IyEvYmluL2Jhc2gKL2Jpbi9zdQplY2hvICJJIGFtIGluIHlvdSEiCg==",
            "networks": "auto",
            "host": "openstack-node-01",
            "hypervisor_hostname": "openstack-node-01"
        }
    }'  http://10.100.201.201/8774/v2.1/${项目id}/servers

    删除卷:

    curl -X DELETE -H "X-Auth-Token:$token" -H "Content-Type: application/json" http://10.100.201.201:8776/v2/${项目id}/volumes/${卷id}

  • 相关阅读:
    java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]
    JAVA日期处理(Timestamp)
    使用JS截取字符串函数详解
    jQuery获取select option
    JAVA获取oracle中sequences的最后一个值
    <s:iterator> 序号
    Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
    zjoi2018day1 游记
    hihocoder 后缀自动机五·重复旋律8 求循环同构串出现的次数
    hihocoder 1457 后缀自动机四·重复旋律7 求不同子串的和
  • 原文地址:https://www.cnblogs.com/zhaopei123/p/13071170.html
Copyright © 2020-2023  润新知