標籤(空格分隔):openstack系列python
- 一: keystone認證服務
- 二: keystone的部署
Keystone(OpenStack Identity Service)是 OpenStack 框架中負責管理身份驗證、服務規則和服務令牌功能的模塊。用戶訪問資源須要驗證用戶的身份與權限,服務執行操做也須要進行權限檢測,這些都須要經過 Keystone 來處理。Keystone相似一個服務總線, 或者說是整個Openstack框架的註冊表, 其餘服務經過keystone來註冊其服務的Endpoint(服務訪問的URL),任何服務之間相互的調用, 須要通過Keystone的身份驗證, 來得到目標服務的Endpoint來找到目標服務。 1)用戶與認證:用戶權限與用戶行爲跟蹤 User 用戶 Tenant 租戶 Token 令牌 Role 角色 2)服務目錄:提供一個服務目錄,包括全部服務項與相關API的端點 Service 服務 Endpoint 端點
mysql -uroot -pflyfish225 CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'keystone'; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'keystone'; flush privileges; show databases; select user,host from mysql.user;
yum install openstack-keystone httpd mod_wsgi -y yum install openstack-keystone python-keystoneclient openstack-utils -y
openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:keystone@controller/keystone openstack-config --set /etc/keystone/keystone.conf token provider fernet grep '^[a-z]' /etc/keystone/keystone.conf
su -s /bin/sh -c "keystone-manage db_sync" keystone mysql -uroot -pflyfish225 use keystone; show tables;
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
keystone-manage bootstrap --bootstrap-password admin \ --bootstrap-admin-url http://controller:5000/v3/ \ --bootstrap-internal-url http://controller:5000/v3/ \ --bootstrap-public-url http://controller:5000/v3/ \ --bootstrap-region-id RegionOne
vim /etc/httpd/conf/httpd.conf --- ServerName controller --- ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/ service httpd start chkconfig httpd on
臨時配置管理員帳戶的相關變量進行管理 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:5000/v3 export OS_IDENTITY_API_VERSION=3
env |grep OS_
查看命令 openstack endpoint list openstack project list openstack user list
# 如下命令會在project表中建立名爲example的項目 openstack domain create --description "An Example Domain" example
爲keystone系統環境建立名爲service的項目提供服務 用於常規(非管理)任務,須要使用無特權用戶 如下命令會在project表中建立名爲service的項目 openstack project create --domain default --description "Service Project" service
建立myproject項目和對應的用戶及角色 # 做爲通常用戶(非管理員)的項目,爲普通用戶提供服務 # 如下命令會在project表中建立名爲myproject項目 openstack project create --domain default --description "Demo Project" myproject
在默認域建立myuser用戶 openstack user create --domain default --password-prompt myuser 在role表建立myrole角色 openstack role create myrole
將myrole角色添加到myproject項目中和myuser用戶組中 openstack role add --project myproject --user myuser myrole
去除環境變量 unset OS_AUTH_URL OS_PASSWORD env |grep OS_
做爲管理員用戶去請求一個認證的token測試是否可 以使用admin帳戶進行登錄認證,請求認證令牌 openstack --os-auth-url http://controller:5000/v3 \ --os-project-domain-name Default --os-user-domain-name Default \ --os-project-name admin --os-username admin token issue
使用普通用戶獲取認證token openstack --os-auth-url http://controller:5000/v3 \ --os-project-domain-name Default --os-user-domain-name Default \ --os-project-name myproject --os-username myuser token issue
建立admin用戶的環境管理腳本 mkdir /openstack cd /openstack vim keystone-admin-pass.sh --- export OS_PROJECT_DOMAIN_NAME=Default export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=admin export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 --- source keystone-admin-pass.sh 建立普通用戶myuser的客戶端環境變量腳本 cd /openstack vim keystone-myuser-pass.sh --- export OS_PROJECT_DOMAIN_NAME=Default export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_NAME=myproject export OS_USERNAME=myuser export OS_PASSWORD=myuser export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 --- source keystone-myuser-pass.sh 請求認證令牌: openstack token issue # 能夠看到user_id和上面用命令獲取到的是同樣的,說明配置成功 # 至此,keystone安裝完畢