openstack学习笔记3-认证服务安装与配置

目录:

0 实验环境

1 概述

2 安装和配置

2.1 先决条件

2.2 安装和配置

2.3 http服务

2.4 完成安装

3 创建域、项目、用户和角色

4 验证

5 创建脚本


0 实验环境

openstack版本:train

实验平台:vmware workstation 15.1

实验虚拟机:centos 7.6,2核,4G内存

操作节点:控制节点

本文用到的帐号和密码:

mysql数据库管理员:root:samplepass

keystone数据库用户:keystone:kspass

keystone系统管理员:admin:rootpass

openstack新用户myuser:myuser:mypass

1 概述

openstack服务组件有很多,但是至少需要按顺序安装以下服务:

  • keystone-身份认证服务
  • glance-镜像服务
  • placement-替换服务
  • nova-计算服务
  • neutron-网络服务

除了必须的服务,建议安装以下两个组件:

  • horizon-控制面板
  • cinder-块存储服务

2 安装和配置

OpenStack身份服务集成了管理身份验证、授权和服务目录。身份服务通常是第一个服务。一旦通过身份验证,就可以使用其身份访问其他OpenStack服务。身份服务还可以与一些外部用户管理系统(如LDAP)集成。

2.1 先决条件

在安装服务之前,必须先创建数据库:

a)连接数据库:

# mysql -u root -p

b)新建数据库keystone:

MariaDB [(none)]> CREATE DATABASE keystone;

c)为keystone数据库用户分配权限,并设置用户keystone的密码为kspass:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'kspass';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'kspass';

d)退出数据库

MariaDB [(none)]>quit;

2.2 安装和配置

a)安装软件包

# yum install openstack-keystone httpd mod_wsgi

b)编辑配置文件/etc/keystone/keystone.conf

[database]节点,编辑数据库连接字符串,使用之前创建的数据库用户keystone和密码kspass:

 [token]节点,编辑令牌提供程序为fernet

 c)写入keystone数据库初始数据

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

这一步执行没有返回错误或者成功的任何提示,所以最好通过查看数据库信息来确认是否成功(也能确认之前的配置是否生效):

# mysql -u keystone -pkspass keystone -e 'show tables'  //-p后面紧跟密码,不能有空格

d)初始化令牌库

# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

e)引导身份认证服务,其中设置了管理员密码为rootpass

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

f)验证,上一步创建了一个默认的域default,通过查看域的列表命令来进行检查是否成功:

# openstack domain list

 

2.3 配置http服务

a)编辑/etc/httpd/conf/httpd.conf,配置服务名称:

ServerName controller

b)创建配置文件/usr/share/keystone/wsgi-keystone.conf的符号链接:

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

2.4 完成安装

a)设置服务状态

# systemctl enable --now httpd

b)配置环境变量,其中的内容在2.2中e)步骤,通过keystone-manager命令完成了初始的设置:

$ export OS_USERNAME=admin
$ export OS_PASSWORD=rootpass
$ 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

3 创建域、项目、用户和角色

身份的验证是通过域、项目、用户和角色的组合来进行的。

a)创建一个名称为example的新域:

# openstack domain create --description "An Example Domain" example

 b)新建一个名为service的新项目,属于example域:

# openstack project create --domain example --description "Service Project" service

 c)新建一个用户myuser,属于example域,密码设置为mypass:

# openstack user create --domain example --password-prompt myuser

d)新建角色myrole:

# openstack role create myrole

 把myrole角色分配myuser用户和service项目:

# openstack role add --project service --user myuser myrole

由于上一命令没有任何提示,可以通过查看角色列表来检查:

# openstack role assignment list --names

4 验证

a)取消之前设置的管理员密码的环境变量:

# unset OS_PASSWORD

b)使用admin用户获取token,要求输入密码,使用admin的密码rootpass进行验证:

# openstack token issue

c)使用myuser用户获取token,--os-username 指定用户,--os-project-name 指定项目,--os-domain-name 指定域(上一步之所以没有用这些参数,因为之前设置了相应的环境变量)。会要求输入密码,使用myuser的密码mypass进行验证:

# openstack --os-username myuser --os-project-name service --os-domain-name example token issue

5 创建脚本

为了提高客户端操作的效率,OpenStack支持简单的客户端环境脚本(也称为OpenRC文件),这些脚本通常包含所有客户端的通用选项。

a)创建admin用户的脚本文件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=rootpass
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

b)创建myuser用户的脚本文件myuser-openrc:

export OS_PROJECT_DOMAIN_NAME=example
export OS_USER_DOMAIN_NAME=example
export OS_PROJECT_NAME=service
export OS_USERNAME=myuser
export OS_PASSWORD=mypass
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

c)使用脚本来进行验证操作:

# . admin-openrc  //注意:命令是一个点,空格,文件名。执行文件里的命令,也就是设置环境变量。
# openstack token issue

# . myuser-openrc  //运行myuser的文件,验证myuser的配置
# openstack token issue

原文地址:https://www.cnblogs.com/learn2teach/p/12421342.html