、キーストーンの説明:
-
ユーザーとその権限を管理します
-
エンドポイントのOpenStackのサービスメンテナンス
-
認証(認証)および許可(認証)
ユーザー
adminとデモに加えて、OpenStackのも新星、噴石、一見、中性子サービスは、対応するユーザーを作成します。管理者は、ユーザーを管理することができます。
資格情報(資格)
Authentication(身份认证)
Token
-
Token 用做访问 Service 的 Credential
-
Service 会通过 Keystone 验证 Token 的有效性
-
Token 的有效期默认是 24 小时
Project
-
资源的所有权是属于 Project 的,而不是 User。
-
在 OpenStack 的界面和文档中,Tenant / Project / Account 这几个术语是通用的,但长期看会倾向使用 Project
-
每个 User(包括 admin)必须挂在 Project 里才能访问该 Project 的资源。 一个User可以属于多个 Project。
-
admin 相当于 root 用户,具有最高权限
Service
Endpoint
# source devstack/openrc admin admin# openstack catalog list
Role
-
Keystone定义Role
-
可以为 User 分配一个或多个 Role,Horizon 的菜单为:Identity->Project->ManageMembers
-
Service 决定每个 Role 能做什么事情 Service 通过各自的 policy.json 文件对 Role 进行访问控制。 下面是 Nova 服务 /etc/nova/policy.json 中的示例:
一个是管理员admin
一个是租户_member_
二、Keystone基本架构:
三、通过例子认识Keystone:
我们通过“查询可用 image”这个实际操作让大家对这些概念建立更加感性的认识。User admin 要查看 Project 中的 image
keystone环境部署
机器:3台
1:controller:3块网卡(集群网,租户网,外网)
2:compute:2块网卡(集群网,租户网)
3:storage:1块网卡(集群网)
1)设置主机名,彼此域名解析,无密钥登陆
vim /etc/hosts 192.168.253.135 controller 192.168.253.194 compute 192.168.253.15 storage ssh-keygen ssh-copy-id
2)点进openstack packages
在controller节点上:
安装openstack客户端软件包
yum -y install python-openstackclient
安装openstack-selinux软件包
yum -y install openstack-selinux
3)点进SQL database
安装数据库
yum -y install mariadb mariadb-server python2-pymysql
并创建openstack的配置文件(注意连接数)
vim /etc/my.cnf.d/openstack.cnf
[mysqld] bind-address = 192.168.253.135(主节点集群ip) default-storage-engine = innodb innodb_file_per_table = on max_connections = 4096 collation-server = utf8_general_ci character-set-server = utf8
重启自启mariadb.server
yum -y install mariadb.service
初始化mysql
mysql_secure_installation
4)点进Message queue
安装rabbitmq并启动自启,创建openstack的用户
yum -y install rabbitmq-server rabbitmqctl add_user openstack admin(密码) #添加openstack用户 rabbitmqctl set_permissions openstack ".*" ".*" ".*" #给予所有虚拟机的所有交换机的所有消息队列的权限 rabbitmqctl set_user_tags mama administrator #设为管理员
systemctl restart rabbitmq-server.service
systemctl enable rabbitmq-server.service #开机自启
5)点进Memcached
安装memcache
yum -y install memcached python-memcached
修改配置文件写入主机名
vim /etc/sysconfig/memecached
[root@controller ~]# cat /etc/sysconfig/memcached PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS="-l 127.0.0.1,::1,controller"
重启自启memcached.service
systenctl restart memcached.service
systemctl enable memcached.service
6)点击identity service——install and configure
登陆数据库,创建keystone的用户和数据库以及密码
create database keystone; grant all on keystone.* to keystone@'localhost' identified by 'keystone_dbpass'; grant all on keystone.* to keystone@'%' identified by 'keystone_dbpass';
安装keystone服务,清空配置文件并导入
yum -y install openstack-keystone httpd mod_wsgi
Vim /etc/keystone/keystone.conf
数据库的参数 [database] connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone Token的参数 [token] provider = fernet
导入keystone数据库中的表
su -s /bin/sh -c "keystone-manage db_sync" keystone
创建keystone用户和keystone组
# 创建keystone用户与组
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
# 身份信息认证 keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
创建admin用户的密码,并宣告keystone服务端点(密码,三个服务端点)
keystone-manage bootstrap --bootstrap-password admin \ --bootstrap-admin-url http://controller:35357/v3/ \ --bootstrap-internal-url http://controller:5000/v3/ \ --bootstrap-public-url http://controller:5000/v3/ \ --bootstrap-region-id RegionOne
修改apache服务的配置文件
ServerName controller
创建keystone服务调用httpd的模块配置文件的软连接
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
启动httpd(注意apache端口不要被占用)
systemctl restart httpd
编辑环境变量的配置文件
vim openrc
export OS_USERNAME=admin export OS_PASSWORD=admin export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_AUTH_URL=http://controller:35357/v3 export OS_IDENTITY_API_VERSION=3
7)Create a domain, projects, users, and roles
宣告环境变量
source openrc
创建service 、 demo 的项目
在domain区域内创建一个名为server的服务项目
openstack project create --domain default \ --description "Service Project" service openstack project create --domain default \ --description "Demo Project" demo
创建demo的用户
openstack user create --domain default \ --password-prompt demo
创建user的角色
openstack role create user
2.18、把demo用户设置为user角色
openstack role add --project demo --user demo user
查看项目 user 角色等
openstack project list
openstack user list
openstack role list
openstack endpoint list
openstack catalog list