我的编程空间,编程开发者的网络收藏夹
学习永远不晚

OpenStack手动分布式部署Keystone的方法是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

OpenStack手动分布式部署Keystone的方法是什么

这篇文章主要讲解了“OpenStack手动分布式部署Keystone的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“OpenStack手动分布式部署Keystone的方法是什么”吧!

Keystone简介

Keystone(OpenStack Identity Service)是 OpenStack 框架中负责管理身份验证、服务访问规则和服务令牌功能的组件。用户访问资源需要验证用户的身份与权限,服务执行操作也需要进行权限检测,这些都需要通过 Keystone 来处理。Keystone 类似一个服务总线, 或者说是整个 Openstack 框架的注册表,OpenStack 服务通过 Keystone 来注册其 Endpoint(服务访问的URL),任何服务之间的相互调用,都需要先经过 Keystone 的身份验证,获得目标服务的 Endpoint ,然后再调用。

Keystone 的主要功能如下:

  • 管理用户及其权限;

  • 维护 OpenStack 服务的 Endpoint;

  • Authentication(认证)和 Authorization(鉴权)。

用户认证介绍
在用户认证中,有以下名词:

1、User(用户)

  • 在Openstack中,使用一个数字来代表使用Openstack的人、系统或者是一个服务,Openstack会对用户的请求进行验证。在Openstack中,一个租户可以有多个用户、一个用户也可以有多个租户,用户对租户的操作权限由用户在租户中承担的角色来确定。

2、Project(项目)

  • Project是Openstack中一些可被访问的资源或者是资源组,本质上是一个容器,可以起到隔离的作用,或者用于标识对象。

3、Token(令牌)

  • Openstack中的用户用来进行身份验证的凭证。

4、Role(角色)

  • 在Openstack中,Role代表一组权限,并且总是和用户所绑定,用于声明用户可以访问的资源。

服务目录介绍
在服务目录中,有以下名词:

1、Service(服务)

  • Service就是Openstack中的服务,比如Nova、Glance、Swift等等。

2、Endpoints(端点)

  • 一个Endpoints即一个服务所对外暴露的接口,如果我们要访问一个服务,那么我们必须知道该服务的Endpoints。Endpoint的每个URL都对应一个服务实例访问地址,并且具有public、private和admin三种权限。public url可以被公开访问,private url可以被局域网内的设备所访问,而admin url则被从常规的访问中分离。

  • Keystone(OpenStack Identity Service)是 OpenStack 框架中负责管理身份验证、服务访问规则和服务令牌功能的组件。

  • 下面我们进行Keystone的安装部署

1、登录数据库配置(在controller执行)

1.1登录数据库

[root@controller ~]# mysql -pEnter password: Welcome to the MariaDB monitor.  Commands end with ; or \g.Your MariaDB connection id is 18Server version: 10.3.20-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>

  1.2数据库里创建keystone

MariaDB [(none)]> CREATE DATABASE keystone;

  1.3授权对keystone数据库的正确访问

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '000000';GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '000000';

  1.4退出数据库

MariaDB [(none)]> quit;

2、数据库导入Keystone表(在controller执行)  

2.1安装httpd mod_wsgi

[root@controller ~]# yum install openstack-keystone httpd mod_wsgi -y

##我在这里安装openstack-keystone httpd mod_wsgi时报错
解决办法:执行下面命令后重新安装

yum install -y python2-qpid-proton-0.22.0-1.el7.x86_64

  2.2备份配置文件并且修改

[root@controller ~]# cp /etc/keystone/keystone.conf{,.bak}[root@controller ~]# grep -Ev "^$|#" /etc/keystone/keystone.conf.bak > /etc/keystone/keystone.conf
#vi /etc/keystone/keystone.conf[DEFAULT]admin_token = ADMIN_TOKEN[application_credential][assignment][auth][cache][catalog][cors][credential][database][domain_config][endpoint_filter][endpoint_policy][eventlet_server][DEFAULT][application_credential][assignment][auth][cache][catalog][cors][credential][database]connection = mysql+pymysql://keystone:123@controller/keystone[domain_config][endpoint_filter][endpoint_policy][eventlet_server][federation][fernet_receipts][fernet_tokens][healthcheck][identity][identity_mapping][jwt_tokens][ldap][memcache][oauth2][oslo_messaging_amqp][oslo_messaging_kafka][oslo_messaging_notifications][oslo_messaging_rabbit][oslo_middleware][oslo_policy][policy][profiler][receipt][resource][revoke][role][saml][security_compliance][shadow_users][token]provider = fernet[tokenless_auth][totp]

  2.3同步数据库

su -s /bin/sh -c "keystone-manage db_sync" keystone

        进数据库检查一下看keystone是否有表了,如下说明同步完成

[root@controller ~]# mysql -pEnter password: Welcome to the MariaDB monitor.  Commands end with ; or \g.Your MariaDB connection id is 25Server version: 10.3.20-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> show databases;+--------------------+| Database           |+--------------------+| information_schema || keystone           || mysql              || performance_schema |+--------------------+4 rows in set (0.001 sec) MariaDB [(none)]> use keystone;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -A Database changedMariaDB [keystone]> show tables;+------------------------------------+| Tables_in_keystone                 |+------------------------------------+| access_rule                        || access_token                       || application_credential             || application_credential_access_rule || application_credential_role        || assignment                         || config_register                    || consumer                           || credential                         || endpoint                           || endpoint_group                     || federated_user                     || federation_protocol                || group                              || id_mapping                         || identity_provider                  || idp_remote_ids                     || implied_role                       || limit                              || local_user                         || mapping                            || migrate_version                    || nonlocal_user                      || password                           || policy                             || policy_association                 || project                            || project_endpoint                   || project_endpoint_group             || project_option                     || project_tag                        || region                             || registered_limit                   || request_token                      || revocation_event                   || role                               || role_option                        || sensitive_config                   || service                            || service_provider                   || system_assignment                  || token                              || trust                              || trust_role                         || user                               || user_group_membership              || user_option                        || whitelisted_config                 |+------------------------------------+

  2.4数据库初始化

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystonekeystone-manage credential_setup --keystone-user keystone --keystone-group keystone

  2.5引导Identity服务:

keystone-manage bootstrap --bootstrap-password 000000 --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

3、配置http服务(在controller执行)  

3.1编辑http配置文件

[root@controller ~]# vi /etc/httpd/conf/httpd.conf
# ServerName gives the name and port that the server uses to identify itself.# This can often be determined automatically, but we recommend you specify# it explicitly to prevent problems during startup.## If your host doesn't have a registered DNS name, enter its IP address here.##ServerName www.example.com:80ServerName controller

  3.2生成软链接

ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

  3.3启动httpd

systemctl enable httpd.service;systemctl start httpd.service

  3.4配置环境变量

vi /etc/keystone/admin-openrc.sh
#!/bin/bashexport OS_USERNAME=adminexport OS_PASSWORD=000000export OS_PROJECT_NAME=adminexport OS_USER_DOMAIN_NAME=Defaultexport OS_PROJECT_DOMAIN_NAME=Defaultexport OS_AUTH_URL=http://controller:35357/v3export OS_IDENTITY_API_VERSION=3

4、创建域、用户(在controller执行)  

4.1创建域

openstack domain create --description "Domain" example

OpenStack手动分布式部署Keystone的方法是什么

 4.2创建服务项目 

openstack project create --domain default   --description "Service Project" service

OpenStack手动分布式部署Keystone的方法是什么

  4.3创建平台demo项目 

openstack project create --domain default --description "Demo Project" demo

OpenStack手动分布式部署Keystone的方法是什么

  4.4创建demo用户 

openstack user create --domain default --password-prompt demo

OpenStack手动分布式部署Keystone的方法是什么

  4.5创建用户角色 

openstack role create user

OpenStack手动分布式部署Keystone的方法是什么

   4.6添加用户角色到demo项目和用户 

openstack role add --project demo --user demo user

5、验证操作(在controller执行)  

5.1取消环境变量

unset OS_AUTH_URL OS_PASSWORD

  5.2admin用户返回的认证token 

unset OS_AUTH_URL OS_PASSWORDpenstack --os-auth-url http://controller:35357/v3 \>   --os-project-domain-name Default --os-user-domain-name Default \>   --os-project-name admin --os-username admin token issue

  5.3demo用户返回的认证token 

openstack --os-auth-url http://controller:5000/v3 \>   --os-project-domain-name Default --os-user-domain-name Default \>   --os-project-name demo --os-username demo token issue

  5.4创建openstack 客户端环境脚本 

#创建admin-openrc脚本 export OS_PROJECT_DOMAIN_NAME=Defaultexport OS_USER_DOMAIN_NAME=Defaultexport OS_PROJECT_NAME=adminexport OS_USERNAME=adminexport OS_PASSWORD=000000export OS_AUTH_URL=http://controller:5000/v3export OS_IDENTITY_API_VERSION=3export OS_IMAGE_API_VERSION=2
创建demo-openrc脚本 export OS_PROJECT_DOMAIN_NAME=Defaultexport OS_USER_DOMAIN_NAME=Defaultexport OS_PROJECT_NAME=demoexport OS_USERNAME=demoexport OS_PASSWORD=000000export OS_AUTH_URL=http://controller:5000/v3export OS_IDENTITY_API_VERSION=3export OS_IMAGE_API_VERSION=2

  5.5使用脚本,返回认证token 

[root@controller ~]# openstack token issue+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Field      | Value                                                                                                                                                                                   |+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| expires    | 2023-02-08T16:49:18+0000                                                                                                                                                                || id         | gAAAAABj48R-5UKgioRRedEM1uDIImmqKdI00OnFYE2yy-7vzw8MpO2NZgpfbEvk90Sq4SqMN2aK4PRXT5TLExWMVbZacpJHHcr0gPLQ_B1cMj0TgDqHtZ9Tohngxh7ImnFZ7VA-sUu2n4oWZjSmFOySWgDCBdYJ8MJaIPCsxlnCf8riQFQiRQI || project_id | 4c7bdbb75b9e481db886549f7d2711be                                                                                                                                                        || user_id    | 41944ebcbb2541acbc31bfd591107fff                                                                                                                                                        |+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

感谢各位的阅读,以上就是“OpenStack手动分布式部署Keystone的方法是什么”的内容了,经过本文的学习后,相信大家对OpenStack手动分布式部署Keystone的方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

OpenStack手动分布式部署Keystone的方法是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

OpenStack手动分布式部署Keystone的方法是什么

这篇文章主要讲解了“OpenStack手动分布式部署Keystone的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“OpenStack手动分布式部署Keystone的方法是什么”吧
2023-07-05

OpenStack手动分布式部署Glance的方法是什么

这篇“OpenStack手动分布式部署Glance的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“OpenStac
2023-07-05

laravel分布式部署的方法是什么

Laravel是一个基于PHP的开源Web应用框架,用于快速开发现代的Web应用程序。要将Laravel应用程序部署到分布式环境中,可以采用以下方法:1. 使用负载均衡器:将负载均衡器放置在应用程序前面,可以将流量分发到多个Laravel应
2023-09-07

django分布式部署的方法是什么

在Django中实现分布式部署有多种方法,以下是一种常见的方法:使用负载均衡器(如Nginx或HAProxy)来分发流量到多个Django服务节点。将Django应用程序部署在多个服务器上,每个服务器上运行一个Django服务节点。使用
django分布式部署的方法是什么
2024-03-05

java分布式部署的方法是什么

Java分布式部署有多种方法,以下是常用的几种:1. 垂直扩展:通过增加服务器的硬件资源(例如CPU、内存)来增加系统的处理能力。这种方法适用于系统的性能瓶颈主要是由单台服务器的处理能力限制造成的情况。2. 水平扩展:通过增加服务器的数量来
2023-09-05

openstack mitaka部署的方法是什么

在部署OpenStack Mitaka之前,您需要准备一台服务器作为控制节点和一台或多台服务器作为计算节点。以下是部署OpenStack Mitaka的一般步骤:安装操作系统:在控制节点和计算节点上安装Ubuntu 14.04或CentOS
2023-10-25

openstack安装部署的方法是什么

OpenStack是一个开源的云计算平台,提供了一整套的云计算解决方案。下面是一种常见的OpenStack安装部署方法:1. 确认硬件要求:首先,确保服务器硬件满足OpenStack的最低要求,包括CPU、内存、硬盘和网络。2. 安装操作系
2023-10-10

openstack安装和部署的方法是什么

OpenStack的安装和部署可以分为几个步骤。以下是一种常见的方法:准备环境:确保服务器满足最低要求,包括硬件、操作系统和网络。安装所需的依赖软件,如Python、MySQL、RabbitMQ等。安装和配置组件:下载并安装OpenSta
2023-10-25

openstack安装及部署的方法是什么

OpenStack是一个开源的云计算平台,其安装和部署方法如下:准备环境:确保服务器满足OpenStack的最低硬件要求,包括CPU、内存、硬盘和网络等方面。安装操作系统:选择支持OpenStack的操作系统,如Ubuntu、CentOS等
2023-10-25

OpenStack单节点部署的方法是什么

OpenStack是一个开源的云计算平台,可以实现私有云和公有云的搭建。单节点部署是指在一台机器上部署OpenStack,以下是一种常用的方法:1. 安装Ubuntu操作系统:首先需要在一台物理机上安装Ubuntu操作系统,可以选择最新的L
2023-10-25

自动部署ssl的方法是什么

自动部署 SSL(Secure Sockets Layer)的方法包括以下步骤:1. 获取 SSL 证书:通过证书颁发机构(CA)或使用 Let's Encrypt 等免费证书颁发服务获取 SSL 证书。证书通常包括公钥、私钥和证书链。2.
2023-09-05

django自动化部署的方法是什么

Django可以通过多种方式进行自动化部署,以下是其中一种常用的方法:使用CI/CD工具(如Jenkins、Travis CI、CircleCI等)结合版本控制系统(如Git)来实现自动化部署。具体步骤如下:在版本控制系统中设置webho
django自动化部署的方法是什么
2024-03-01

mongodb分片集群部署的方法是什么

MongoDB分片集群部署的方法包括以下步骤:部署分片服务器:首先需要创建多个分片服务器,每个分片服务器可以包含一个或多个副本集。在每个分片服务器上运行mongod进程,确保它们可以相互连接。部署配置服务器:接下来需要创建配置服务器,配置服
mongodb分片集群部署的方法是什么
2024-04-09

docker自动部署多环境的方法是什么

要实现Docker自动部署多环境,可以使用以下方法:1. 使用Docker多阶段构建:通过使用Docker的多阶段构建功能,可以在同一个Dockerfile中定义多个阶段,并根据不同的环境需求进行构建。例如,可以在一个阶段中构建应用程序的代
2023-08-18

ubuntu手动分区的方法是什么

在Ubuntu上手动分区的方法如下:1. 在安装Ubuntu时选择“自定义分区”选项。2. 在分区表中选择磁盘(通常是/dev/sda)。3. 点击“新建分区”按钮来创建新的分区。4. 选择分区类型,例如主分区或逻辑分区。5. 指定分区的大
2023-10-10

java手动分页的方法是什么

在Java中,手动实现分页的方法可以通过使用列表或数组来实现。下面是一种常见的手动分页方法:1. 定义每页显示的数据量和当前页码。```javaint pageSize = 10; // 每页显示的数据量int currentPage =
2023-09-27

redis分布式应用的方法是什么

Redis分布式应用的方法包括:1. 数据分片(Sharding):将数据分散存储在多个Redis节点上,每个节点负责存储部分数据。可以通过哈希算法或者一致性哈希算法来确定数据应该存储在哪个节点上。2. 复制(Replication):通过
2023-08-30

mongodb分布式搭建的方法是什么

要搭建MongoDB的分布式集群,可以按照以下步骤进行操作:配置MongoDB副本集:首先,在每个节点上安装MongoDB,并将它们配置为副本集。副本集由主节点和多个备份节点组成。配置副本集成员:在每个节点上,将其配置为副本集的成员,并指定
2023-10-26

SAP Fiori应用的三种部署方式分别是什么

本篇文章为大家展示了SAP Fiori应用的三种部署方式分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。封面图片来自Google搜索,关键字: Fiori Deployment方式1 On
2023-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录