Keystone v2.0 and v3 config

本文档详细介绍了如何在CentOS 7.2上配置OpenStack的Keystone服务,从v2.0到v3的迁移过程,包括虚拟机节点和网卡配置、memcached的安装与配置、数据库创建、keystone.conf的修改、httpd服务的启动以及服务和endpoint的创建等关键步骤,旨在帮助读者理解并掌握OpenStack的身份认证服务配置。

Keystone v2.0 orv3 config

参考URL :

http://docs.openstack.org/liberty/install-guide-ubuntu/keystone-openrc.html

 

一、  环境准备 

[NOTE]

    (1) 本文的安装部署都是在CentOS 7.2 上完成,本文中的各个节点都是双网卡设置

    (2) keystone v2.0中的配置值为2.0

    (3) keystone v3中的配置值为 v3 而不是 v3.0

 

1.  虚拟机节点配置

网络拓扑部署和主机命名

eth0: 管理网络

eth1: 数据网络/隧道

控制节点: eth0: 192.168.0.51/24eth1: 192.168.242.140/24

计算节点: eth0: 192.168.0.71/24eth1: 192.168.242.142/24, mtu: 1600

$ vim /etc/hosts

# controller

192.168.0.51   controller

# compute 1

192.168.0.71   compute1

 

2.  虚拟机网卡配置

使用传统网卡命名方式

[NOTE]CentOS 7.2 需要用户自己在网卡目录下新建网卡配置文件eth1,eth2…

vim /etc/default/grub并加入net.ifnames=0 biosdevname=0

$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg

二、  keystone 安装前配置

1. memcached安装与配置

         由于目前的物理机内存资源都比较充足,因此每个控制节点都可用于部署memcached服务,建议将nova-api节点都部署上memcached服务。

# yum install memcached

# systemctl start memcached

# systemctl enable memcached

2. openstack工具包安装

# yum install openstack-utils

 

三、  配置keystone v2.0

1. 生成各服务及数据库密码

(1) 为每个服务及数据库都生成一个随机密码,并将密码保存起来,如

         KEYSTONE_ADMIN_PASSWORD,KEYSTONE_DB_PASSWORD,以便后续设置。

(2) 通过执行#openssl rand -hex 10生成随机密码。

密码名

密码

MYSQL_ROOT _PASS

mysql

MYSQL_KEYSTONE_DBPASS

keystone_db

MYSQL_GLANCE_DBPASS

glance_db

MYSQL_NOVA_DBPASS

nova_db

MYSQL_NEUTRON_DBPASS

neutron_db

KEYSTONE_GLANCE_PASS

key_glance

KEYSTONE_NOVA_PASSWORD

key_nova

KEYSTONE_NEUTRON_PASSWORD

key_neutron

OPENSTACK/RABBIT_PASSWORD

rabbit

ADMIN_TOKEN

791eb78bed6ff585d194

 

2. 创建数据库和用户

(1) 登陆到数据库节点,执行如下命令(KEYSTONE_DBPASS应修改为实际使用的密码)

# mysql -u root -pmysql

>CREATE DATABASE keystone;

>GRANT ALL PRIVILEGES ON keystone.* TO'keystone'@'localhost' IDENTIFIED BY 'keystone_db';

>GRANT ALL PRIVILEGES ON keystone.* TO'keystone'@'%' IDENTIFIED BY 'keystone_db';

 

3. keystone memcache yum

# yum install openstack-keystone httpd mod_wsgipython-openstackclient

# yum install memcached python-memcached

 

4. 配置 keystone.conf

(1) 生成 ADMIN_TOKEN

# openssl rand -hex 10

791eb78bed6ff585d194

 

(2) 编辑 /etc/keystone/keystone.conf

cat /etc/keystone/keystone.conf | grep -vE "^$|^#"

[DEFAULT]

admin_token = 791eb78bed6ff585d194 # 填写刚才生成的admin_token

debug = false

verbose = true

 

[database]

connection = mysql://keystone:keystone_db@vip_mysql/keystone

                                  # 数据库用户名和密码

[eventlet_server]

public_bind_host = 192.168.0.51 # 对应各个节点本机IP

admin_bind_host = 192.168.0.51 # 对应各个节点本机IP

 

[memcache]

servers = 192.168.0.51:11211

                                 #填写memcache服务器地址

[token]

driver =keystone.token.persistence.backends.memcache.Token

provider = keystone.token.providers.uuid.Provider

 

[revoke]

driver =keystone.contrib.revoke.backends.sql.Revoke

 

5. keystone 数据库初始化

# su -s /bin/sh -c "keystone-managedb_sync" keystone

 

6. 配置 httpd 启动keystone

6.1 编辑 httpd.conf

(1) 编辑/etc/httpd/conf/httpd.conf

vim /etc/httpd/conf/httpd.conf

     ServerName192.168.0.51       对应各个节点的ip地址   

Listen 192.168.0.51:80

 

6.2 编辑 wsgi-keystone.c

carbon@carbon-R5300-G4X:/$ openstack --debug token issue # 启用调试模式查看详细过程 START with options: ['--debug', 'token', 'issue'] options: Namespace(access_key='', access_secret='***', access_token='***', access_token_endpoint='', access_token_type='', auth_type='', auth_url='', authorization_code='', cacert=None, cert='', client_id='', client_secret='***', cloud='', consumer_key='', consumer_secret='***', debug=True, default_domain='default', default_domain_id='', default_domain_name='', deferred_help=False, discovery_endpoint='', domain_id='', domain_name='', endpoint='', identity_provider='', identity_provider_url='', insecure=None, interface='', key='', log_file=None, openid_scope='', os_beta_command=False, os_compute_api_version='', os_identity_api_version='3', os_image_api_version='', os_network_api_version='', os_object_api_version='', os_project_id=None, os_project_name=None, os_volume_api_version='', passcode='', password='***', project_domain_id='', project_domain_name='Default', project_id='', project_name='admin', protocol='', redirect_uri='', region_name='', timing=False, token='***', trust_id='', url='http://controller:35357/v3', user_domain_id='', user_domain_name='Default', user_id='', username='admin', verbose_level=3, verify=None) Auth plugin token_endpoint selected auth_config_hook(): {'dns_api_version': '2', 'api_timeout': None, 'secgroup_source': 'neutron', 'interface': None, 'default_domain': 'default', 'url': 'http://controller:35357/v3', 'deferred_help': False, 'object_store_api_version': '1', 'identity_api_version': '3', 'network_api_version': '2', 'networks': [], 'region_name': '', 'database_api_version': '1.0', 'volume_api_version': '2', 'container_api_version': '1', 'verbose_level': 3, 'disable_vendor_agent': {}, 'image_format': 'qcow2', 'image_api_version': '2', 'floating_ip_source': 'neutron', 'verify': True, 'compute_api_version': '2', 'username': 'admin', 'password': 'Hbis@123', 'auth_type': 'token_endpoint', 'baremetal_api_version': '1', 'beta_command': False, 'cert': None, 'cacert': None, 'debug': True, 'auth': {'project_domain_name': 'Default', 'project_name': 'admin', 'user_domain_name': 'Default', 'token': '4dfca0e2d881e685109d'}, 'orchestration_api_version': '1', 'image_api_use_tasks': False, 'metering_api_version': '2', 'key': None, 'key_manager_api_version': 'v1', 'timing': False} defaults: {'dns_api_version': '2', 'api_timeout': None, 'object_store_api_version': '1', 'interface': None, 'verify': True, 'container_api_version': '1', 'identity_api_version': '2.0', 'network_api_version': '2', 'volume_api_version': '2', 'secgroup_source': 'neutron', 'database_api_version': '1.0', 'disable_vendor_agent': {}, 'image_format': 'qcow2', 'image_api_version': '2', 'compute_api_version': '2', 'cert': None, 'auth_type': 'token_endpoint', 'baremetal_api_version': '1', 'cacert': None, 'orchestration_api_version': '1', 'image_api_use_tasks': False, 'metering_api_version': '2', 'key': None, 'key_manager_api_version': 'v1', 'floating_ip_source': 'neutron'} cloud cfg: {'dns_api_version': '2', 'api_timeout': None, 'secgroup_source': 'neutron', 'interface': None, 'default_domain': 'default', 'object_store_api_version': '1', 'url': 'http://controller:35357/v3', 'deferred_help': False, 'container_api_version': '1', 'identity_api_version': '3', 'network_api_version': '2', 'networks': [], 'region_name': '', 'database_api_version': '1.0', 'volume_api_version': '2', 'verbose_level': 3, 'disable_vendor_agent': {}, 'image_format': 'qcow2', 'image_api_version': '2', 'verify': True, 'compute_api_version': '2', 'cert': None, 'username': 'admin', 'password': '***', 'auth_type': 'token_endpoint', 'timing': False, 'beta_command': False, 'baremetal_api_version': '1', 'floating_ip_source': 'neutron', 'debug': True, 'auth': {'url': 'http://controller:35357/v3', 'project_name': 'admin', 'user_domain_name': 'Default', 'project_domain_name': 'Default', 'token': '***'}, 'orchestration_api_version': '1', 'image_api_use_tasks': False, 'metering_api_version': '2', 'key': None, 'key_manager_api_version': 'v1', 'cacert': None} object_store API version 1, cmd group openstack.object_store.v1 identity API version 3, cmd group openstack.identity.v3 network API version 2, cmd group openstack.network.v2 volume API version 2, cmd group openstack.volume.v2 compute API version 2, cmd group openstack.compute.v2 image API version 2, cmd group openstack.image.v2 neutronclient API version 2, cmd group openstack.neutronclient.v2 Auth plugin token_endpoint selected auth_config_hook(): {'dns_api_version': '2', 'api_timeout': None, 'secgroup_source': 'neutron', 'interface': None, 'default_domain': 'default', 'url': 'http://controller:35357/v3', 'deferred_help': False, 'object_store_api_version': '1', 'identity_api_version': '3', 'network_api_version': '2', 'networks': [], 'region_name': '', 'database_api_version': '1.0', 'volume_api_version': '2', 'container_api_version': '1', 'verbose_level': 3, 'disable_vendor_agent': {}, 'image_format': 'qcow2', 'image_api_version': '2', 'floating_ip_source': 'neutron', 'verify': True, 'compute_api_version': '2', 'username': 'admin', 'password': 'Hbis@123', 'auth_type': 'token_endpoint', 'baremetal_api_version': '1', 'beta_command': False, 'cert': None, 'cacert': None, 'debug': True, 'auth': {'project_domain_name': 'Default', 'project_name': 'admin', 'user_domain_name': 'Default', 'token': '4dfca0e2d881e685109d'}, 'orchestration_api_version': '1', 'image_api_use_tasks': False, 'metering_api_version': '2', 'key': None, 'key_manager_api_version': 'v1', 'timing': False} command: token issue -> openstackclient.identity.v3.token.IssueToken Using auth plugin: token_endpoint Using parameters {'url': 'http://controller:35357/v3', 'project_name': 'admin', 'user_domain_name': 'Default', 'project_domain_name': 'Default', 'token': '***'} Get auth_ref run(Namespace(columns=[], formatter='table', max_width=0, noindent=False, prefix='', variables=[])) Get auth_ref Only an authorized user may issue a new token. Traceback (most recent call last): File "/usr/lib/python3/dist-packages/cliff/app.py", line 387, in run_subcommand result = cmd.run(parsed_args) File "/usr/lib/python3/dist-packages/osc_lib/command/command.py", line 41, in run return super(Command, self).run(parsed_args) File "/usr/lib/python3/dist-packages/cliff/display.py", line 100, in run column_names, data = self.take_action(parsed_args) File "/usr/lib/python3/dist-packages/openstackclient/identity/v3/token.py", line 180, in take_action _("Only an authorized user may issue a new token.")) osc_lib.exceptions.AuthorizationFailure: Only an authorized user may issue a new token. clean_up IssueToken: Only an authorized user may issue a new token. Traceback (most recent call last): File "/usr/lib/python3/dist-packages/osc_lib/shell.py", line 135, in run ret_val = super(OpenStackShell, self).run(argv) File "/usr/lib/python3/dist-packages/cliff/app.py", line 267, in run result = self.run_subcommand(remainder) File "/usr/lib/python3/dist-packages/osc_lib/shell.py", line 180, in run_subcommand ret_value = super(OpenStackShell, self).run_subcommand(argv) File "/usr/lib/python3/dist-packages/cliff/app.py", line 387, in run_subcommand result = cmd.run(parsed_args) File "/usr/lib/python3/dist-packages/osc_lib/command/command.py", line 41, in run return super(Command, self).run(parsed_args) File "/usr/lib/python3/dist-packages/cliff/display.py", line 100, in run column_names, data = self.take_action(parsed_args) File "/usr/lib/python3/dist-packages/openstackclient/identity/v3/token.py", line 180, in take_action _("Only an authorized user may issue a new token.")) osc_lib.exceptions.AuthorizationFailure: Only an authorized user may issue a new token. END return value: 1
最新发布
06-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值