OpenStack控制节点keystone服务安装部署

创建数据库

使用root账户登录数据库

sudo mysql

创建keystone数据库

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';

替换KEYSTONE_DBPASS为你自己的密码

安装配置组件

安装组件

sudo apt install keystone  apache2 libapache2-mod-wsgi

由于keystone组件要运行在apache http服务上,所以也要安装apache http服务

修改/etc/keystone/keystone.conf文件

在[database]部分,配置数据库访问

connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone

替换KEYSTONE_DBPASS为自己的密码;并且注释或者删除其他connection项

在[token]部分,配置token生成的方式

provider = fernet

导入认证服务的数据库

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

初始化 Fernet key

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:35357/v3/ \
--bootstrap-internal-url http://controller:35357/v3/ \
--bootstrap-public-url http://controller:5000/v3/ \
--bootstrap-region-id RegionOne

替换ADMIN_PASS为自己的密码

配置apache http服务

修改/etc/apache2/apache2.conf文件

ServerName controller

controller为控制节点主机名

完成安装

重启apache服务

sudo service apache2 restart

配置管理账户

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:35357/v3
export OS_IDENTITY_API_VERSION=3

替换ADMIN_PASS为你自己设置的密码

创建域,项目,用户和角色

keystone认证服务为每一个Openstack 服务都提供了身份认证的服务,而身份认证服务使用domains, projects (tenants), users, and roles的组合来实现。

创建service工程

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

常规(非管理员)任务应使用非特权项目和用户。创建demo项目

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

创建demo用户

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

创建user角色

openstack role create user

添加user角色到demo工程和用户

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

验证

禁用临时身份验证令牌机制

编辑/etc/keystone/keystone-paste.ini文件,删除admin_token_auth从[pipeline:public_api], [pipeline:admin_api],[pipeline:api_v3] 部分.

取消设置的临时OS_AUTH_URL和OS_PASSWORD环境变量

unset OS_AUTH_URL OS_PASSWORD

用amdin用户请求令牌

openstack --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

用demo用户请求令牌

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

写脚本

这些脚本可以包含有常用的openstack client选项,但是每一个脚本只支持唯一的选项值。简而言之,使用这些脚本能够让我们不需要为每一条openstack client指令都添加这么多的认证选项。

创建并且编辑admin-openrc文件,加入以下内容

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_PASS
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

替换ADMIN_PASS为自己设置的密码

创建并且编辑demo-openrc文件,加入以下内容

export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=DEMO_PASS
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

替换DEMO_PASS为自己设置的密码

使用脚本

使用脚本登录

. admin-openrc

请求认证令牌

openstack token issue
image

你可能感兴趣的:(OpenStack控制节点keystone服务安装部署)