控制节点上搭建Q版keystone服务(step3)
keystone服务监听两个端口:5000和35357 一、安装和配置 1.安装keystone组件 yum install openstack-keystone httpd mod_wsgi -y 2.在mariadb数据库中为keytone组件创建一个数据库,数据库名为keystone,并为keystone组件创建账号并授予对keystone数据库的所有操作权限。 create database keystone; grant all privileges on keytone.* to ‘keystone‘@‘localhost‘ identified by ‘keystone‘; grant all privileges on keystone.* to ‘keystone‘@‘%‘ identified by ‘keystone‘; flush privileges; 3.设置keystone组件的配置文件,让keystone组件可以访问mariadb的keystone数据库 vim /etc/keystone/keystone.conf 在[database]下添加: 保存退出。 4.将keystone组件所需要的表导入到mariadb的keystone数据库中。 su -s /bin/sh -c "keystone-manage db_sync" keystone 执行完后,可以看下keystone数据库下有几张表,我的有44张表。 5.配置keystone组件使用fernet令牌,具体可参阅:https://blog.csdn.net/wllabs/article/details/79064094 vim /etc/keystone/keystone.conf 在[token]下添加: provider = fernet 保存退出。 初始化fernet令牌库,为keystone创建令牌: keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone 6.初始化admin用户(管理用户)与密码,3种API端点,服务实体、可用区等 keystone-manage bootstrap --bootstrap-password 123456 --bootstrap-admin-url http://controller1:35357/v3/ --bootstrap-internal-url http://controller1:5000/v3/ --bootstrap-public-url http://controller1:5000/v3/ --bootstrap-region-id RegionOne 备注: 未指定--bootstrap-username,会默认生成admin用户, 未指定--bootstrap-project-name,会默认生成admin项目, 未指定--bootstrap-role-name,会默认生成admin角色, 未指定--bootstrap-service-name,会默认生成keystone服务实体。 另外,这条初始化命令,还默认创建了一个default域。 7.配置http服务 当没有指定ServerName时,server会尝试对IP地址进行反向查询来判断主机名。假设在ServerName中没有指定port号,server会监听全部port。为了加强可靠性和可预測性,应该使用ServerName显示的指定一个主机名和port号。 vim /etc/httpd/conf/httpd.conf 添加: ServerName controller1:80 保存退出。 8.配置启动http时,同时也启动keystone ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/ 9.启动http,并设置开机自启。 systemctl enable httpd.service && systemctl start httpd.service 二、 10.配置admin环境客户端脚本并启动脚本 vim admin-openrc 添加: export OS_PROJECT_DOMAIN_NAME=Default 保存退出。 source admin-openrc 或者 . admin-openrc 11.虽然初始化keystone时,已经默认创建了域、项目、用户、角色等,但并没有很好的演示出如何去创建它们的,下面就来演示一下: 创建服务实体keystone(这个不要去执行,因为在初始化时已经创建): openstack service create --name keystone --description "OpenStack Identity" identity 创建API端点(这个不要去执行,因为在初始化时已经创建): openstack endpoint create --region RegionOne identity public http://controller1:5000/v3 openstack endpoint create --region RegionOne identity internal http://controller1:5000/v3 openstack endpoint create --region RegionOne identity admin http://controller1:35357/v3 创建default域:(这个不要去执行,因为在初始化时已经创建) openstack domain create --description "Default Domain" default 在default域中创建service项目:(这个可以执行,因为初始化时只创建了admin项目) openstack project create --domain default --description "Service Project" service 在default域中创建demo项目:(这个可以执行) openstack project create --domain default --description "demo Project" demo 在default域中创建demo用户:(这个可以执行,因为初始化时只创建了admin用户) openstack user create --domain default --password-prompt demo??? #demo用户密码会在命令回车执行时要求客官输入的,我输入的是demo 创建user角色:(这个可以执行,因为初始化时只创建了admin角色) openstack role create user 将user角色关联到demo项目和demo用户上: openstack role add --project demo --user demo user 12.验证创建的用户 这一步和第10步是同样的道理,都可以进行验证。 使用admin用户请求token身份令牌: unset OS_AUTH_URL OS_PASSWORD?? #首先要重置第10步引入的环境变量 openstack --os-auth-url http://controller1:35357/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name admin --os-username admin --os-identity-api-version 3? token issue 使用demo用户请求token身份令牌: openstack --os-auth-url http://controller1:5000/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name demo --os-username demo token issue demo用户也可以使用客户端脚本: vim demo-openrc 添加: export OS_PROJECT_DOMAIN_NAME=Default 保存退出。 使用. demo-openrc或者source demo-openrc进行导入这些变量。 执行openstack token issue获取token身份令牌。 ? 这一篇的初版结束,还有待细化和补充,感谢各位客官。下次再见。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |