3 分钟快速搭建一个 KeyStone 测试环境

Feb 2, 2020 15:30 · 233 words · 1 minute read

请预先安装好 Docker!

1. 启动 mysql 容器作为 keystone 的数据库

$ mkdir /var/lib/mysql
$ docker run --name keystone-db --restart always \
    -v /var/lib/mysql:/var/lib/mysql \
    -p 3306:3306 \
    -e MYSQL_ROOT_PASSWORD=admin \
    -d mysql:5.7.14

测试 mysql 容器是否运行正常:

$ docker run --rm -it webuni/mycli:latest sh
(docker) /# mycli -h ${NODE_IP} -u root

2. 启动 keystone 容器

$ docker run --name keystone --restart always \
    -p 5000:5000 \
    -e DB_HOST=${NODE_IP} \
    -d opensourcemano/keystone:latest

测试 keystone 认证 API:

$ curl -X POST \
  http://localhost:5000/v3/auth/tokens \
  -H 'Content-Type: application/json' \
  -d '{
    "auth": {
        "identity": {
            "methods": [
                "password"
            ],
            "password": {
                "user": {
                    "name": "admin",
                    "password": "admin",
                    "domain": {
                        "name": "Default"
                    }
                }
            }
        },
        "scope": {
            "project": {
                "name": "admin",
                "domain": {
                    "name": "Default"
                }
            }
        }
    }
}'
{"token": {"is_domain": false, "methods": ["password"], "roles": [{"id": "927eccfcdbad44399b194649e0782c6d", "name": "admin"}], "expires_at": "2020-02-02T08:33:12.000000Z", "project": {"domain": {"id": "default", "name": "Default"}, "id": "141a17f0fe604ca78f6eccaa4b8ff302", "name": "admin"}, "catalog": [{"endpoints": [{"region_id": "RegionOne", "url": "http://keystone:5000/v3/", "region": "RegionOne", "interface": "public", "id": "6f8b84286565432399f4fa1419430421"}, {"region_id": "RegionOne", "url": "http://keystone:5000/v3/", "region": "RegionOne", "interface": "internal", "id": "b4bffbced60f44b4a82fc930862691e1"}, {"region_id": "RegionOne", "url": "http://keystone:5000/v3/", "region": "RegionOne", "interface": "admin", "id": "fd2067ca2beb4492b5797c7359e0e8c3"}], "type": "identity", "id": "3196339e72b94dfa919c343529135fe8", "name": "keystone"}], "user": {"password_expires_at": null, "domain": {"id": "default", "name": "Default"}, "id": "3687c6f1f4fc4d3a99a207750ed3fa75", "name": "admin"}, "audit_ids": ["qsy4J2tIR_Gw0DPRu8Kkqg"], "issued_at": "2020-02-02T07:33:12.000000Z"}}