centos yum 安装和配置 Keystone — openstack-on-centos documentation

安装和配置 Keystone¶

安装¶

安装 openstack-keystone¶

yum install openstack-utils openstack-keystone python-keystoneclient</p><p>

初始化数据库¶

修改 /etc/keystone/keystone.confsql->connection 项为

mysql://keystone:keystone@127.0.0.1:3306/keystone</p><p>

Note

因为mysql版本的问题,127.0.0.1 不可写为 localhost,且端口号不可忽略,否则连接不上数据库。所有mysql连接的配置都需注意。

原因:

  • 当主机名为 localhost 时,mysql驱动会使用 unix_socks 进行连接,

    此时需要在 uri 后添加 socks 文件的路径参数才能使用

  • 在mysql旧版本中,若不指定版本号,则默认为 0

在mysql中建立keystone数据库和用户,并赋予权限。

openstack-db --init --service keystone</p><p>

如上命令会根据配置文件中的 connection 项,创建 keystone 数据库和 keystone 用户,密码为 keystone

设置 admin_token¶

openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token &lt;admin_token&gt;</p><p>

admin_token 为一密钥,用于操作keystone时的认证。

同步数据库¶

keystone-manage db_sync</p><p>

此命令在keystone数据库中创建相应数据表。

启动 keystone 服务¶

service openstack-keystone start # 启动 keystone 服务</p><p>chkconfig openstack-keystone on  # 设置开机启动服务</p><p>

配置服务¶

创建用户、租户和角色¶

创建租户

keystone --token &lt;admin_token&gt; --endpoint http://127.0.0.1:35357/v2.0 \</p><p>    tenant-create --name demo</p><p>

创建用户并与租户绑定

keystone --token &lt;admin_token&gt; --endpoint http://127.0.0.1:35357/v2.0 \</p><p>    user-create --tenant-id &lt;上一步中返回的tenant-id&gt; --name admin --pass admin</p><p>

创建管理员角色(根据keystone默认的 policy.json)

keystone --token &lt;admin_token&gt; --endpoint http://127.0.0.1:35357/v2.0 \</p><p>    role-create --name admin</p><p>

赋予demo中的admin用户管理员权限

keystone --token &lt;admin_token&gt; --endpoint http://127.0.0.1:35357/v2.0 \</p><p>    user-role-add --tenant-id &lt;tenant-id&gt; --user-id &lt;user-id&gt; --role-id &lt;role-id&gt;</p><p>

创建服务¶

修改 /etc/keystone/keystone.conf 中,catalog->driver 项为 keystone.catalog.backends.sql.Catalog,即设置服务目录采用数据库存储。

定义 Identity 服务

keystone --token &lt;admin-token&gt; --endpoint http://127.0.0.1:35357/v2.0 \</p><p>    service-create --name=keystone --type=identity</p><p>keystone --token &lt;admin-token&gt; --endpoint http://127.0.0.1:35357/v2.0 \</p><p>    endpoint-create \</p><p>    --region scut \</p><p>    --service-id=&lt;上一步返回的service-id&gt; \</p><p>    --publicurl=http://192.168.1.1:5000/v2.0 \</p><p>    --internalurl=http://192.168.1.1:5000/v2.0 \</p><p>    --adminurl=http://192.168.1.1:35357/v2.0</p><p>

定义 Compute 服务

keystone --token &lt;admin-token&gt; --endpoint http://127.0.0.1:35357/v2.0 \</p><p>    service-create --name=nova --type=compute</p><p>keystone --token &lt;admin-token&gt; --endpoint http://127.0.0.1:35357/v2.0 \</p><p>    endpoint-create \</p><p>    --region scut \</p><p>    --service-id=&lt;上一步返回的service-id&gt; \</p><p>    --publicurl='http://192.168.1.1:8774/v2/%(tenant_id)s' \</p><p>    --internalurl='http://192.168.1.1:8774/v2/%(tenant_id)s' \</p><p>    --adminurl='http://192.168.1.1:8774/v2/%(tenant_id)s'</p><p>

定义 Volume 服务

keystone --token &lt;admin-token&gt; --endpoint http://127.0.0.1:35357/v2.0 \</p><p>    service-create --name=volume --type=volume</p><p>keystone --token &lt;admin-token&gt; --endpoint http://127.0.0.1:35357/v2.0 \</p><p>    endpoint-create \</p><p>    --region scut \</p><p>    --service-id=&lt;上一步返回的service-id&gt; \</p><p>    --publicurl='http://192.168.1.1:8776/v1/%(tenant_id)s' \</p><p>    --internalurl='http://192.168.1.1:8776/v1/%(tenant_id)s' \</p><p>    --adminurl='http://192.168.1.1:8776/v1/%(tenant_id)s'</p><p>

定义 Image 服务

keystone --token &lt;admin-token&gt; --endpoint http://127.0.0.1:35357/v2.0 \</p><p>    service-create --name=glance --type=image</p><p>keystone --token &lt;admin-token&gt; --endpoint http://127.0.0.1:35357/v2.0 \</p><p>    endpoint-create \</p><p>    --region scut \</p><p>    --service-id=&lt;上一步返回的service-id&gt; \</p><p>    --publicurl='http://192.168.1.1:9292' \</p><p>    --internalurl='http://192.168.1.1:9292' \</p><p>    --adminurl='http://192.168.1.1:9292'</p><p>

定义 EC2 兼容服务

keystone --token &lt;admin-token&gt; --endpoint http://127.0.0.1:35357/v2.0 \</p><p>    service-create --name=ec2 --type=ec2</p><p>keystone --token &lt;admin-token&gt; --endpoint http://127.0.0.1:35357/v2.0 \</p><p>    endpoint-create \</p><p>    --region scut \</p><p>    --service-id=&lt;上一步返回的service-id&gt; \</p><p>    --publicurl='http://192.168.1.1:8773/services/Cloud' \</p><p>    --internalurl='http://192.168.1.1:8773/services/Cloud' \</p><p>    --adminurl='http://192.168.1.1:8773/services/Admin'</p><p>

定义 Object Storage 服务

keystone --token &lt;admin-token&gt; --endpoint http://127.0.0.1:35357/v2.0 \</p><p>    service-create --name=swift --type=object-store</p><p>keystone --token &lt;admin-token&gt; --endpoint http://127.0.0.1:35357/v2.0 \</p><p>    endpoint-create \</p><p>    --region scut \</p><p>    --service-id=&lt;上一步返回的service-id&gt; \</p><p>    --publicurl='http://192.168.1.1:8888/v1/AUTH_%(tenant_id)s' \</p><p>    --internalurl='http://192.168.1.1:8888/v1/AUTH_%(tenant_id)s' \</p><p>    --adminurl='http://192.168.1.1:8888/v1'</p><p>

验证 Identify 服务安装¶

验证 keystone 是否正确运行以及用户是否正确建立。

keystone --os-username=admin --os-password=admin \</p><p>    --os-auth-url=http://127.0.0.1:35357/v2.0 token-get</p><p>

验证用户在指定的 tenant 上是否有明确定义的角色。

keystone --os-username=admin --os-password=admin \</p><p>    --os-tenant-name=demo --os-auth-url=http://127.0.0.1:35357/v2.0 token-get</p><p>

此命令根据 username, password, tenant-name 换取访问 token

可以将以上参数设置为环境变量,不用每次输入

export OS_USERNAME=admin</p><p>export OS_PASSWORD=admin</p><p>export OS_TENANT_NAME=demo</p><p>export OS_AUTH_URL=http://127.0.0.1:35357/v2.0 # 管理员命令必须通过 35357 端口执行</p><p>

此时可直接运行

keystone token-get</p><p>

最后,验证admin账户有权限执行管理命令

keystone user-list   # 列举所有用户

来源URL:http://openstack-on-centos6.readthedocs.org/en/latest/keystone.html