如何详细解读先电2.4版中的iaas-install-keystone.sh脚本?

2026-05-22 09:502阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计982个文字,预计阅读时间需要4分钟。

如何详细解读先电2.4版中的iaas-install-keystone.sh脚本?

解读先安装Keystone的2.4版+iaas-install-keystone.sh脚本

如何详细解读先电2.4版中的iaas-install-keystone.sh脚本?

解读先电2.4版 iaas-install-keystone.sh 脚本

#!/bin/bash #声明解释器路径 source /etc/xiandian/openrc.sh #生效环境变量

#keystone mysql mysql -uroot -p$DB_PASS -e "create database IF NOT EXISTS keystone ;" #登录MySQL数据库,创建keystone数据库 mysql -uroot -p$DB_PASS -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '$KEYSTONE_DBPASS' ;" #登录MySQL数据库,创建数据库用户keystone,授权keystone用户拥有从本地访问keystone数据库的所有权限,并设置数据库用户keystone的密码 mysql -uroot -p$DB_PASS -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '$KEYSTONE_DBPASS' ;" #登录MySQL数据库,创建数据库用户keystone,授权keystone用户拥有从远程访问keystone数据库的所有权限,并设置数据库用户keystone的密码

#install keystone yum install openstack-keystone keystone:$KEYSTONE_DBPASS@$HOST_NAME/keystone #配置数据库连接 #pymysql是一个python库,用于数据库的连接,设置MySQL和Python连接。

crudini --set /etc/keystone/keystone.conf token provider fernet #安全消息传递格式 ADMIN_TOKEN=$(openssl rand -hex 10) #随机生成20位的字符串赋给ADMIN_TOKEN,创建令牌 crudini --set /etc/keystone/keystone.conf DEFAULT admin_token $ADMIN_TOKEN #openssl :一个强大的安全套接字层密码库,包括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议

su -s /bin/sh -c "keystone-manage db_sync" keystone #为keystone服务创建数据库表

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone #初始化Fernet密钥存储用于token加密,创建签名密钥 keystone-manage credential_setup --keystone-user keystone --keystone-group keystone #创建证书

sed -i "s/#ServerName www.example.com:80/ServerName $HOST_NAME/g" /etc/$HOST_NAME:35357/v3 #设置操作系统临时环境变量:端点URL export OS_IDENTITY_API_VERSION=3 #设置操作系统临时环境变量:标识API版本 ——默认情况下,认证服务的数据库中没有任何信息来支持会话校验和目录服务,所以我们必须用一个临时的校验令牌为认证服务初始化服务实体和API端点

openstack service create --name keystone --description "OpenStack Identity" identity #创建keystone身份认证服务 openstack endpoint create --region RegionOne identity public $HOST_NAME:5000/v3 # 创建处理外部访问端点 openstack endpoint create --region RegionOne identity internal $HOST_NAME:5000/v3 # 创建处理内部访问端点 openstack endpoint create --region RegionOne identity admin $HOST_NAME:35357/v3 # 创建处理admin端点

#创建域、租户、用户和角色 openstack domain create --description "Default Domain" $DOMAIN_NAME # 创建默认域 openstack project create --domain $DOMAIN_NAME --description "Admin Project" admin # 创建admin租户,拥有平台最高权限 openstack user create --domain $DOMAIN_NAME --password $ADMIN_PASS admin # 创建admin用户 openstack role create admin # 创建admin权限 openstack role add --project admin --user admin admin # 授予admin用户admin权限 openstack project create --domain $DOMAIN_NAME --description "Service Project" service # 创建service租户,代表平台内所有的服务 openstack project create --domain $DOMAIN_NAME --description "Demo Project" demo # 创建demo租户,演示测试的普通用户 openstack user create --domain $DOMAIN_NAME --password $DEMO_PASS demo # 创建demo(普通)用户 openstack role create user # 创建普通用户权限 openstack role add --project demo --user demo user # 授予demo用户普通用户权限 ——认证服务Keystone为OpenStack服务和位置提供了一个目录 ——OpenStack的所有服务在Keystone提供的目录中必须要有一个服务实例(service entity)和几个API端点(endpoint) ——Openstack为每个服务提供了三种API端点:admin、internal和public ——默认情况下,admin API endpoint 允许修改用户和租户(项目),而public和internal API不可以 ——在生产环境中,出于安全的原因,这三种不同的API端点位于不同的网络以服务不同类型的用户。例如:public API网络可用于云环境外的管理工具连接,而admin API网络可用于内部连接各主机进行管理操作 ——为非管理的一般性任务而会创建一个权限受限的普通项目(租户)demo和用户demo

unset OS_TOKEN OS_URL #清除环境变量

cat > /etc/keystone/admin-openrc.sh <<-EOF #创建OpenStack客户端脚本---admin用户脚本 export OS_PROJECT_DOMAIN_NAME=$DOMAIN_NAME export OS_USER_DOMAIN_NAME=$DOMAIN_NAME export OS_PROJECT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=$ADMIN_PASS export OS_AUTH_URL=$HOST_NAME:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 EOF cat > /etc/keystone/demo-openrc.sh <<-EOF #创建OpenStack客户端脚本---demo用户脚本 export OS_PROJECT_DOMAIN_NAME=$DOMAIN_NAME export OS_USER_DOMAIN_NAME=$DOMAIN_NAME export OS_PROJECT_NAME=demo export OS_USERNAME=demo export OS_PASSWORD=$DEMO_PASS export OS_AUTH_URL=$HOST_NAME:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 EOF ——身份认证服务为OpenStack的所有服务提供了校验的服务 ——校验服务会联合使用域名、项目(租户)、用户和角色完成校验

source /etc/keystone/admin-openrc.sh #生效admin用户脚本 openstack token issue #获取token

本文共计982个文字,预计阅读时间需要4分钟。

如何详细解读先电2.4版中的iaas-install-keystone.sh脚本?

解读先安装Keystone的2.4版+iaas-install-keystone.sh脚本

如何详细解读先电2.4版中的iaas-install-keystone.sh脚本?

解读先电2.4版 iaas-install-keystone.sh 脚本

#!/bin/bash #声明解释器路径 source /etc/xiandian/openrc.sh #生效环境变量

#keystone mysql mysql -uroot -p$DB_PASS -e "create database IF NOT EXISTS keystone ;" #登录MySQL数据库,创建keystone数据库 mysql -uroot -p$DB_PASS -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '$KEYSTONE_DBPASS' ;" #登录MySQL数据库,创建数据库用户keystone,授权keystone用户拥有从本地访问keystone数据库的所有权限,并设置数据库用户keystone的密码 mysql -uroot -p$DB_PASS -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '$KEYSTONE_DBPASS' ;" #登录MySQL数据库,创建数据库用户keystone,授权keystone用户拥有从远程访问keystone数据库的所有权限,并设置数据库用户keystone的密码

#install keystone yum install openstack-keystone keystone:$KEYSTONE_DBPASS@$HOST_NAME/keystone #配置数据库连接 #pymysql是一个python库,用于数据库的连接,设置MySQL和Python连接。

crudini --set /etc/keystone/keystone.conf token provider fernet #安全消息传递格式 ADMIN_TOKEN=$(openssl rand -hex 10) #随机生成20位的字符串赋给ADMIN_TOKEN,创建令牌 crudini --set /etc/keystone/keystone.conf DEFAULT admin_token $ADMIN_TOKEN #openssl :一个强大的安全套接字层密码库,包括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议

su -s /bin/sh -c "keystone-manage db_sync" keystone #为keystone服务创建数据库表

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone #初始化Fernet密钥存储用于token加密,创建签名密钥 keystone-manage credential_setup --keystone-user keystone --keystone-group keystone #创建证书

sed -i "s/#ServerName www.example.com:80/ServerName $HOST_NAME/g" /etc/$HOST_NAME:35357/v3 #设置操作系统临时环境变量:端点URL export OS_IDENTITY_API_VERSION=3 #设置操作系统临时环境变量:标识API版本 ——默认情况下,认证服务的数据库中没有任何信息来支持会话校验和目录服务,所以我们必须用一个临时的校验令牌为认证服务初始化服务实体和API端点

openstack service create --name keystone --description "OpenStack Identity" identity #创建keystone身份认证服务 openstack endpoint create --region RegionOne identity public $HOST_NAME:5000/v3 # 创建处理外部访问端点 openstack endpoint create --region RegionOne identity internal $HOST_NAME:5000/v3 # 创建处理内部访问端点 openstack endpoint create --region RegionOne identity admin $HOST_NAME:35357/v3 # 创建处理admin端点

#创建域、租户、用户和角色 openstack domain create --description "Default Domain" $DOMAIN_NAME # 创建默认域 openstack project create --domain $DOMAIN_NAME --description "Admin Project" admin # 创建admin租户,拥有平台最高权限 openstack user create --domain $DOMAIN_NAME --password $ADMIN_PASS admin # 创建admin用户 openstack role create admin # 创建admin权限 openstack role add --project admin --user admin admin # 授予admin用户admin权限 openstack project create --domain $DOMAIN_NAME --description "Service Project" service # 创建service租户,代表平台内所有的服务 openstack project create --domain $DOMAIN_NAME --description "Demo Project" demo # 创建demo租户,演示测试的普通用户 openstack user create --domain $DOMAIN_NAME --password $DEMO_PASS demo # 创建demo(普通)用户 openstack role create user # 创建普通用户权限 openstack role add --project demo --user demo user # 授予demo用户普通用户权限 ——认证服务Keystone为OpenStack服务和位置提供了一个目录 ——OpenStack的所有服务在Keystone提供的目录中必须要有一个服务实例(service entity)和几个API端点(endpoint) ——Openstack为每个服务提供了三种API端点:admin、internal和public ——默认情况下,admin API endpoint 允许修改用户和租户(项目),而public和internal API不可以 ——在生产环境中,出于安全的原因,这三种不同的API端点位于不同的网络以服务不同类型的用户。例如:public API网络可用于云环境外的管理工具连接,而admin API网络可用于内部连接各主机进行管理操作 ——为非管理的一般性任务而会创建一个权限受限的普通项目(租户)demo和用户demo

unset OS_TOKEN OS_URL #清除环境变量

cat > /etc/keystone/admin-openrc.sh <<-EOF #创建OpenStack客户端脚本---admin用户脚本 export OS_PROJECT_DOMAIN_NAME=$DOMAIN_NAME export OS_USER_DOMAIN_NAME=$DOMAIN_NAME export OS_PROJECT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=$ADMIN_PASS export OS_AUTH_URL=$HOST_NAME:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 EOF cat > /etc/keystone/demo-openrc.sh <<-EOF #创建OpenStack客户端脚本---demo用户脚本 export OS_PROJECT_DOMAIN_NAME=$DOMAIN_NAME export OS_USER_DOMAIN_NAME=$DOMAIN_NAME export OS_PROJECT_NAME=demo export OS_USERNAME=demo export OS_PASSWORD=$DEMO_PASS export OS_AUTH_URL=$HOST_NAME:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2 EOF ——身份认证服务为OpenStack的所有服务提供了校验的服务 ——校验服务会联合使用域名、项目(租户)、用户和角色完成校验

source /etc/keystone/admin-openrc.sh #生效admin用户脚本 openstack token issue #获取token