怎样将token认证修改为keystone认证?

时间: 2023-10-03 13:09:19 浏览: 148
要将token认证修改为keystone认证,您需要按照以下步骤进行操作: 1. 编辑glance-api.conf文件,找到[keystone_authtoken]部分,并将auth_type设置为password,如下所示: ``` [keystone_authtoken] auth_type = password ``` 2. 设置相应的认证参数,如auth_url、username、password、user_domain_name、project_domain_name等。例如: ``` [keystone_authtoken] auth_type = password auth_url = http://<keystone_host>:<keystone_port>/v3 username = <username> password = <password> user_domain_name = <user_domain_name> project_domain_name = <project_domain_name> ``` 3. 重新启动glance-api服务。 4. 确认keystone认证方式是否生效,您可以使用以下命令来验证: ``` glance image-list ``` 如果返回镜像列表,则说明已经成功切换到keystone认证方式。
相关问题

如何检查 OpenStack 组件的配置是否正确,如 Keystone

要检查 OpenStack 组件的配置是否正确,可以按照以下步骤操作: 1. 连接到运行 Keystone 组件的 OpenStack 控制节点。 2. 打开 Keystone 的配置文件 /etc/keystone/keystone.conf。 3. 检查配置文件中的各个选项是否正确设置。这些选项包括数据库连接、认证后端、token 的过期时间等。 4. 如果有必要,可以修改配置文件中的选项,并保存文件。 5. 重启 Keystone 服务,使配置文件生效。 具体而言,可以使用以下命令来重启 Keystone 服务: ``` systemctl restart openstack-keystone.service ``` 如果重启服务后问题仍然存在,请检查 Keystone 相关服务的日志文件,查看详细的错误信息和发生错误的位置。例如,可以使用以下命令来查看 Keystone 的日志: ``` tail -f /var/log/keystone/keystone.log ``` 在日志文件中找到错误信息,可以更好地定位和解决问题。

脚本部署Openstack 某企业拟使用OpenStack搭建一个企业云平台,以实现资源池化弹性管理、企业应用集中管理、统一安全认证和授权等管理。 规划: 云服务器1 主机名Controller: 接口eth33IP地址192.168.100.10/24,仅主机模式 接口eth34IP地址保持默认,NAT模式 云服务器2 主机名Compute 接口eth33IP地址192.168.100.20/24,仅主机模式 接口eth34IP地址保持默认,NAT模式 本实验使用到三个网段: 192.168.100.0/24,Openstack管理网络,Vmware仅主机模式 192.168.200.0/24,Openstack数据网络,云主机外部网络,VmwareNAT模式 10.0.0.0/24,云主机内部网络 使用两台主机部署出Openstack平台,要求云平台能够正常创建出云主机并正常通信。

以下是一个简单的脚本部署 OpenStack 的示例,您可以根据自己的实际情况进行修改和调整。本脚本适用于 CentOS 7 系统。 1. 安装必要的软件包: ```bash yum install -y centos-release-openstack-stein yum update -y yum install -y python-openstackclient openstack-selinux mariadb mariadb-server rabbitmq-server memcached python-memcached httpd mod_wsgi python2-PyMySQL ``` 2. 配置 MariaDB 数据库: ```bash systemctl enable mariadb.service systemctl start mariadb.service # 创建数据库和用户 mysql -u root CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS'; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS'; FLUSH PRIVILEGES; QUIT; ``` 3. 配置 RabbitMQ 消息队列: ```bash systemctl enable rabbitmq-server.service systemctl start rabbitmq-server.service rabbitmqctl add_user openstack RABBIT_PASS rabbitmqctl set_permissions openstack ".*" ".*" ".*" ``` 4. 配置 Memcached 缓存: ```bash systemctl enable memcached.service systemctl start memcached.service ``` 5. 配置 Keystone 身份认证服务: ```bash # 修改 /etc/keystone/keystone.conf 文件 [database] connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone [token] provider = fernet # 初始化数据库 su -s /bin/sh -c "keystone-manage db_sync" keystone # 创建 Fernet 密钥 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_PASS \ --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 # 设置环境变量 export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS 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 # 创建服务和 API 端点 openstack service create --name keystone --description "OpenStack Identity" identity openstack endpoint create --region RegionOne identity public http://controller:5000/v3/ openstack endpoint create --region RegionOne identity internal http://controller:5000/v3/ openstack endpoint create --region RegionOne identity admin http://controller:5000/v3/ ``` 6. 配置 Glance 镜像服务: ```bash # 修改 /etc/glance/glance-api.conf 和 /etc/glance/glance-registry.conf 文件 [database] connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance [keystone_authtoken] auth_uri = http://controller:5000/v3 auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = glance password = GLANCE_PASS [paste_deploy] flavor = keystone # 初始化数据库 su -s /bin/sh -c "glance-manage db_sync" glance # 设置环境变量 export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS 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 # 创建服务和 API 端点 openstack user create --domain default --password-prompt glance openstack role add --project service --user glance admin openstack service create --name glance --description "OpenStack Image" image openstack endpoint create --region RegionOne image public http://controller:9292 openstack endpoint create --region RegionOne image internal http://controller:9292 openstack endpoint create --region RegionOne image admin http://controller:9292 ``` 7. 配置 Nova 计算服务: ```bash # 修改 /etc/nova/nova.conf 文件 [database] connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova [api_database] connection = mysql+pymysql://nova_api:NOVA_API_DBPASS@controller/nova_api [keystone_authtoken] auth_uri = http://controller:5000/v3 auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = nova password = NOVA_PASS [glance] api_servers = http://controller:9292 [oslo_concurrency] lock_path = /var/lib/nova/tmp # 初始化数据库 su -s /bin/sh -c "nova-manage api_db sync" nova_api su -s /bin/sh -c "nova-manage db sync" nova # 设置环境变量 export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS 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 # 创建服务和 API 端点 openstack user create --domain default --password-prompt nova openstack role add --project service --user nova admin openstack service create --name nova --description "OpenStack Compute" compute openstack endpoint create --region RegionOne compute public http://controller:8774/v2.1/%\(tenant_id\)s openstack endpoint create --region RegionOne compute internal http://controller:8774/v2.1/%\(tenant_id\)s openstack endpoint create --region RegionOne compute admin http://controller:8774/v2.1/%\(tenant_id\)s ``` 8. 配置 Neutron 网络服务: ```bash # 修改 /etc/neutron/neutron.conf 文件 [database] connection = mysql+pymysql://neutron:NEUTRON_DBPASS@controller/neutron [keystone_authtoken] auth_uri = http://controller:5000/v3 auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = neutron password = NEUTRON_PASS [DEFAULT] core_plugin = ml2 service_plugins = router allow_overlapping_ips = True [ml2] type_drivers = flat,vlan,vxlan tenant_network_types = vxlan mechanism_drivers = linuxbridge,l2population extension_drivers = port_security [ml2_type_flat] flat_networks = provider [ml2_type_vxlan] vni_ranges = 1:1000 [securitygroup] enable_ipset = True [ovs] local_ip = 192.168.100.20 bridge_mappings = provider:br-provider # 初始化数据库 su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron # 设置环境变量 export OS_USERNAME=admin export OS_PASSWORD=ADMIN_PASS 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 # 创建服务和 API 端点 openstack user create --domain default --password-prompt neutron openstack role add --project service --user neutron admin openstack service create --name neutron --description "OpenStack Networking" network openstack endpoint create --region RegionOne network public http://controller:9696 openstack endpoint create --region RegionOne network internal http://controller:9696 openstack endpoint create --region RegionOne network admin http://controller:9696 # 创建网络 openstack network create --share --external --provider-physical-network provider --provider-network-type flat provider openstack subnet create --network provider --allocation-pool start=192.168.200.100,end=192.168.200.200 --dns-nameserver 223.5.5.5 --gateway 192.168.200.1 --subnet-range 192.168.200.0/24 provider # 创建路由器和子网 openstack router create router openstack subnet create --subnet-range 10.0.0.0/24 --network provider --gateway 10.0.0.1 provider_subnet openstack router add subnet router provider_subnet openstack router set --external-gateway provider router ``` 9. 配置 Horizon 控制台: ```bash # 安装 Apache 和 mod_wsgi yum install -y httpd mod_wsgi # 修改 /etc/openstack-dashboard/local_settings 文件 OPENSTACK_HOST = "controller" ALLOWED_HOSTS = ['*', ] SESSION_ENGINE = 'django.contrib.sessions.backends.cache' CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': 'controller:11211', } } OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True OPENSTACK_API_VERSIONS = { "identity": 3, "image": 2, "volume": 2, "network": 2, } OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default" OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user" # 启动 Apache 服务 systemctl enable httpd.service systemctl start httpd.service ``` 10. 配置 Compute 节点: ```bash # 安装必要的软件包 yum install -y centos-release-openstack-stein yum update -y yum install -y python-openstackclient openstack-selinux qemu-kvm libvirt libguestfs-tools virt-install bridge-utils # 修改 /etc/nova/nova.conf 文件 [database] connection = mysql+pymysql://nova:NOVA_DBPASS@controller/nova [api_database] connection = mysql+pymysql://nova_api:NOVA_API_DBPASS@controller/nova_api [DEFAULT] my_ip = 192.168.100.20 use_neutron = True firewall_driver = nova.virt.firewall.NoopFirewallDriver [vnc] enabled = True server_listen = 0.0.0.0 server_proxyclient_address = $my_ip novncproxy_base_url = http://controller:6080/vnc_auto.html [glance] api_servers = http://controller:9292 [oslo_concurrency] lock_path = /var/lib/nova/tmp [neutron] url = http://controller:9696 auth_url = http://controller:5000 auth_type = password project_domain_name = Default user_domain_name = Default region_name = RegionOne project_name = service username = neutron password = NEUTRON_PASS [libvirt] virt_type = qemu [keystone_authtoken] auth_uri = http://controller:5000/v3 auth_url = http://controller:5000/v3 memcached_servers = controller:11211 auth_type = password project_domain_name = Default user_domain_name = Default project_name = service username = nova password = NOVA_PASS # 启动服务 systemctl enable libvirtd.service openstack-nova-compute.service systemctl start libvirtd.service openstack-nova-compute.service ``` 11. 完成以上步骤后,您应该能够正常创建云主机,并能够通过网络正常访问它们。
阅读全文

相关推荐

最新推荐

recommend-type

基于SpringBoot整合oauth2实现token认证

在本文中,我们将使用SpringBoot框架来整合oauth2实现token认证。oauth2是一种业界广泛采用的认证协议,它可以提供更加安全的认证机制。SpringBoot是一个基于Java的框架,它提供了许多实用的功能,可以帮助我们快速...
recommend-type

Django+JWT实现Token认证的实现方法

本篇文章将深入探讨如何在Django项目中利用JWT实现Token认证,无需依赖Django REST Framework(DRF)。 首先,我们需要理解传统登录鉴权和基于Token的鉴权的区别。传统的登录鉴权通常涉及用户提交账号和密码,...
recommend-type

深入理解令牌认证机制(token)

总结来说,令牌认证机制(Token)是现代Web安全中的核心概念,尤其是在OAuth 2.0框架下,它为用户授权和资源访问提供了灵活而安全的解决方案。理解和掌握Token的原理和应用对于开发和维护安全的Web应用至关重要。
recommend-type

SpringBoot下token短信验证登入登出权限操作(token存放redis,ali短信接口)

本文将详细讲解如何在SpringBoot环境中,结合Redis存储Token以及阿里云短信服务API来完成这一功能。 首先,我们需要集成Redis来存储Token,因为Redis是一个高性能的键值数据库,特别适合用于存储临时性的数据,如...
recommend-type

详解Django配置JWT认证方式

在本文中,我们将深入探讨如何在Django框架中配置JSON Web Token(JWT)认证。JWT是一种轻量级的身份验证机制,允许服务器通过一个令牌(token)来确认客户端的身份,而无需在每次请求时发送用户名和密码。Django ...
recommend-type

前端协作项目:发布猜图游戏功能与待修复事项

资源摘要信息:"People-peephole-frontend是一个面向前端开发者的仓库,包含了一个由Rails和IOS团队在2015年夏季亚特兰大Iron Yard协作完成的项目。该仓库中的项目是一个具有特定功能的应用,允许用户通过iPhone或Web应用发布图像,并通过多项选择的方式让用户猜测图像是什么。该项目提供了一个互动性的平台,使用户能够通过猜测来获取分数,正确答案将提供积分,并防止用户对同一帖子重复提交答案。 当前项目存在一些待修复的错误,主要包括: 1. 答案提交功能存在问题,所有答案提交操作均返回布尔值true,表明可能存在逻辑错误或前端与后端的数据交互问题。 2. 猜测功能无法正常工作,这可能涉及到游戏逻辑、数据处理或是用户界面的交互问题。 3. 需要添加计分板功能,以展示用户的得分情况,增强游戏的激励机制。 4. 删除帖子功能存在损坏,需要修复以保证应用的正常运行。 5. 项目的样式过时,需要更新以反映跨所有平台的流程,提高用户体验。 技术栈和依赖项方面,该项目需要Node.js环境和npm包管理器进行依赖安装,因为项目中使用了大量Node软件包。此外,Bower也是一个重要的依赖项,需要通过bower install命令安装。Font-Awesome和Materialize是该项目用到的前端资源,它们提供了图标和界面组件,增强了项目的视觉效果和用户交互体验。 由于本仓库的主要内容是前端项目,因此JavaScript知识在其中扮演着重要角色。开发者需要掌握JavaScript的基础知识,以及可能涉及到的任何相关库或框架,比如用于开发Web应用的AngularJS、React.js或Vue.js。同时,对于iOS开发,可能还会涉及到Swift或Objective-C等编程语言,以及相应的开发工具Xcode。对于Rails,开发者则需要熟悉Ruby编程语言以及Rails框架的相关知识。 开发流程中可能会使用的其他工具包括: - Git:用于版本控制和代码管理。 - HTML/CSS:用于构建网页结构和样式。 - Webpack或Gulp:用于项目构建和优化流程。 - Babel:用于JavaScript代码的兼容性处理。 - Linting工具:如ESLint,用于代码质量检查和维护代码风格一致性。 总结来看,People-peephole-frontend项目不仅涉及到了跨平台协作的经验分享,还提供了前端开发的学习和实践机会,尤其在交互设计、前端工程化、依赖管理及样式设计等方面。开发者可以通过参与该项目的修复和完善工作,提高自身技能并积累宝贵的项目经验。"
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

【高斯信道信号编码优化】:4大方法优化Chirp信号编码过程

![高斯信道下的chirp信号解调](https://img-blog.csdnimg.cn/d37646d14e4e4b51b01e617b59167c74.png) # 1. 高斯信道与Chirp信号编码基础 ## 简介 在现代通信领域,信息的传递无处不在,而保障信息传递的清晰与高效是通信技术的核心挑战之一。高斯信道作为通信系统中最常见和基础的模型,为我们理解和优化信号传输提供了重要的理论支持。Chirp信号,以其独特的频谱扩展特性,在无线通信、雷达和声纳系统中发挥着越来越重要的作用。本章将介绍高斯信道的特性以及Chirp信号的基础知识,为读者搭建起后续章节深入探讨优化方法的理论基础。
recommend-type

对给定图,实现图的深度优先遍历和广度优先遍历。以邻接表或邻接矩阵为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列,并调试算法。使用C语言

在C语言中,我们可以使用邻接表或邻接矩阵来存储图的数据结构。这里我将简单介绍如何实现深度优先搜索(DFS)和广度优先搜索(BFS): **使用邻接表实现:** ```c #include <stdio.h> #include <stdlib.h> typedef struct Node { int val; struct Node* next; } Node; // 创建邻接列表表示图 Node* createAdjacencyList(int numNodes) { // 初始化节点数组 Node** adjList = malloc(sizeof(No
recommend-type

Spring框架REST服务开发实践指南

资源摘要信息: "在本教程中,我们将详细介绍如何使用Spring框架来构建RESTful Web服务,提供对Java开发人员的基础知识和学习参考。" 一、Spring框架基础知识 Spring是一个开源的Java/Java EE全功能栈(full-stack)应用程序框架和 inversion of control(IoC)容器。它主要分为以下几个核心模块: - 核心容器:包括Core、Beans、Context和Expression Language模块。 - 数据访问/集成:涵盖JDBC、ORM、OXM、JMS和Transaction模块。 - Web模块:提供构建Web应用程序的Spring MVC框架。 - AOP和Aspects:提供面向切面编程的实现,允许定义方法拦截器和切点来清晰地分离功能。 - 消息:提供对消息传递的支持。 - 测试:支持使用JUnit或TestNG对Spring组件进行测试。 二、构建RESTful Web服务 RESTful Web服务是一种使用HTTP和REST原则来设计网络服务的方法。Spring通过Spring MVC模块提供对RESTful服务的构建支持。以下是一些关键知识点: - 控制器(Controller):处理用户请求并返回响应的组件。 - REST控制器:特殊的控制器,用于创建RESTful服务,可以返回多种格式的数据(如JSON、XML等)。 - 资源(Resource):代表网络中的数据对象,可以通过URI寻址。 - @RestController注解:一个方便的注解,结合@Controller注解使用,将类标记为控制器,并自动将返回的响应体绑定到HTTP响应体中。 - @RequestMapping注解:用于映射Web请求到特定处理器的方法。 - HTTP动词(GET、POST、PUT、DELETE等):在RESTful服务中用于执行CRUD(创建、读取、更新、删除)操作。 三、使用Spring构建REST服务 构建REST服务需要对Spring框架有深入的理解,以及熟悉MVC设计模式和HTTP协议。以下是一些关键步骤: 1. 创建Spring Boot项目:使用Spring Initializr或相关构建工具(如Maven或Gradle)初始化项目。 2. 配置Spring MVC:在Spring Boot应用中通常不需要手动配置,但可以进行自定义。 3. 创建实体类和资源控制器:实体类映射数据库中的数据,资源控制器处理与实体相关的请求。 4. 使用Spring Data JPA或MyBatis进行数据持久化:JPA是一个Java持久化API,而MyBatis是一个支持定制化SQL、存储过程以及高级映射的持久层框架。 5. 应用切面编程(AOP):使用@Aspect注解定义切面,通过切点表达式实现方法的拦截。 6. 异常处理:使用@ControllerAdvice注解创建全局异常处理器。 7. 单元测试和集成测试:使用Spring Test模块进行控制器的测试。 四、学习参考 - 国际奥委会:可能是错误的提及,对于本教程没有相关性。 - AOP:面向切面编程,是Spring的核心功能之一。 - MVC:模型-视图-控制器设计模式,是构建Web应用的常见架构。 - 道:在这里可能指学习之道,或者是学习Spring的原则和最佳实践。 - JDBC:Java数据库连接,是Java EE的一部分,用于在Java代码中连接和操作数据库。 - Hibernate:一个对象关系映射(ORM)框架,简化了数据库访问代码。 - MyBatis:一个半自动化的ORM框架,它提供了更细致的SQL操作方式。 五、结束语 以上内容为《learnSpring:学习春天》的核心知识点,涵盖了从Spring框架的基础知识、RESTful Web服务的构建、使用Spring开发REST服务的方法,以及与学习Spring相关的技术栈介绍。对于想要深入学习Java开发,特别是RESTful服务开发的开发者来说,这是一份非常宝贵的资源。