2021-09-15

云计算部署实战Part3 - 安装Keystone认证服务

【实验目的】
掌握搭建计算节点软件和环境
熟练掌握Linux命令(vi、tar、mv等等)的使用
掌握VMWare、XShell等客户端的使用
【实验环境】
内存:至少4G
硬盘:至少空余40G
操作系统: 64位 Windows系统。
【实验资源】
XShell
CentOS 7.4系统镜像
VMWare WorkStation Pro
Openstack源
【实验资源】
链接:https://pan.baidu.com/s/1nIUP6MelSyKt0P8dsYVjNQ
提取码:1234
【实验步骤】
1.使用Root用户登录控制节点(Controller)。以下步骤都是在控制节点执行。

2.连接 Mariadb,进入数据库命令行,输入密码123456。
mysql -u root –p
结果:
在这里插入图片描述

3.【数据库命令行】创建一个名为keystone的库。
命令:create database keystone;
结果:
在这里插入图片描述

4.【数据库命令行】创建名为 keystone,密码为KEYSTONE_DBPASS 的数据库用户,并授权访问 keystone 库。
命令:GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@‘localhost’
IDENTIFIED BY ‘KEYSTONE_DBPASS’;
GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@’%’
IDENTIFIED BY ‘KEYSTONE_DBPASS’;
结果:
在这里插入图片描述

5.查看keystone库,此时库中没有任何表(Table)。
命令:use keystone;
Show tables;
结果:
在这里插入图片描述

6.【数据库命令行】输入 exit; 退出数据库命令行。
命令:Exit;
结果:
在这里插入图片描述

  1. 安装keystone相关软件包。
    命令:yum install openstack-keystone httpd mod_wsgi –y
    结果:
    在这里插入图片描述

  2. 备份 Keystone 的配置文件keystone.conf 为 keystone.conf.bak。
    命令:cp /etc/keystone/keystone.conf{,.bak}
    结果:
    在这里插入图片描述

  3. 清除 Keystone 配置文件的注释
    命令:grep -Ev ‘^$|#’ /etc/keystone/keystone.conf.bak >/etc/keystone/keystone.conf
    结果:
    在这里插入图片描述

  4. 安装openstack-utils
    命令:yum install openstack-utils –y
    结果:

在这里插入图片描述

11.配置 Keystone 的admin_token,数据库连接,token provider。注意替换你的学号。
命令:openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token ADMIN_TOKEN
openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:KEYSTONE_DBPASS@controller0415 /keystone
openstack-config --set /etc/keystone/keystone.conf token provider fernet
结果:
在这里插入图片描述

  1. 使用 MD5 来校验配置文件,看输出是否与下面代码吻合。
    命令:md5sum /etc/keystone/keystone.conf
    结果:
    在这里插入图片描述

  2. 执行同步数据库
    命令:mysql –uroot-p;
    Use keystone;
    Show tables;
    结果:
    在这里插入图片描述

  3. 初始化 fernet。
    命令:cd /etc/keystone/
    keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
    结果:
    在这里插入图片描述

  4. 追加 Apache (httpd)的配置,注意替换你的学号。这里主要是增加ServerName的配置。
    命令:echo “ServerName controller0415” >>/etc/httpd/conf/httpd.conf
    结果: echo “ServerName controller0415” >>/etc/httpd/conf/httpd.conf
    在这里插入图片描述

  5. 增加一个Apache的虚拟主机(VirtualHost)配置,keystone-public运行在5000端口,keystone-admin运行在35357端口。
    命令:vi /etc/httpd/conf.d/wsgi-keystone.conf
    结果:
    在这里插入图片描述

输入:Listen 5000
Listen 35357
<VirtualHost *:5000>
WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-public
WSGIScriptAlias / /usr/bin/keystone-wsgi-public
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat “%{cu}t %M”
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined

<Directory /usr/bin>
    Require all granted
</Directory>

<VirtualHost *:35357>
WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-admin
WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat “%{cu}t %M”
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined

<Directory /usr/bin>
    Require all granted
</Directory>
结果: ![在这里插入图片描述](https://img-blog.csdnimg.cn/08a0f29b7dda440188733a14b2c87683.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAZmx5YmlyZDEyNTgx,size_13,color_FFFFFF,t_70,g_se,x_16)
  1. 校验wsgi-keystone.conf是否和以下校验码一致
    命令:md5sum /etc/httpd/conf.d/wsgi-keystone.conf
    结果:
    在这里插入图片描述

  2. 启动Apache(httpd),并设置为开机启动。
    命令:systemctl enable httpd.service
    systemctl start httpd.service
    结果:
    在这里插入图片描述

  3. 设置 Keystone 的相关环境变量。注意替换为你的学号
    命令:
    export OS_TOKEN=ADMIN_TOKEN
    export OS_URL=http://controller0415:35357/v3
    export OS_IDENTITY_API_VERSION=3
    结果:
    在这里插入图片描述

  4. 创建1个 Keystone 的服务。命令正常创建会展示以下类似代码。
    命令:openstack service create --name keystone --description “OpenStack Identity” identity
    结果:
    在这里插入图片描述

  5. 创建3个端点(endpoint)。注意替换为你的学号。每行命令正常创建会展示以下类似代码
    命令: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+你的学号:35357/v3
    结果:
    在这里插入图片描述

openstack endpoint create --region RegionOne
identity public http://controller0415:5000/v3
openstack endpoint create --region RegionOne
identity internal http://controller0415:5000/v3
openstack endpoint create --region RegionOne
identity admin http://controller0415:35357/v3

  1. 运行以下命令分别创建域default、项目admin、用户admin、角色admin。
    命令:openstack domain create --description “Default Domain” default

openstack project create --domain default --description “Admin Project” admin

openstack user create --domain default --password ADMIN_PASS admin

openstack role create admin
结果:
在这里插入图片描述

  1. 查询刚创建的用户的ID
    命令:openstack user list
    结果:
    在这里插入图片描述

  2. 复制上文的ID,关联项目admin,用户admin,角色admin。
    命令:openstack role add --project admin --user <替换为用户ID> admin
    结果:
    在这里插入图片描述

  3. 移除步骤19设置的环境变量。
    命令:unset OS_TOKEN
    unset OS_URL
    unset OS_IDENTITY_API_VERSION
    结果:
    在这里插入图片描述

  4. 创建一个设置环境变量的脚本,输入以下内容,注意替换为你的学号。
    命令:vim /etc/keystone/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
在这里插入图片描述

保存退出。
在这里插入图片描述

  1. 查看token,可以多运行几次,查看 token id 是否更新。
    命令:openstack token issue
    结果:
    在这里插入图片描述

问题1:增加一个Apache的虚拟主机(VirtualHost)配置,keystone-public运行在5000端口,keystone-admin运行在35357端口。
vi /etc/httpd/conf.d/wsgi-keystone.conf
配置文件不能用VMware会有格式问题
Listen 5000
Listen 35357
<VirtualHost *:5000>
WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-public
WSGIScriptAlias / /usr/bin/keystone-wsgi-public
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat “%{cu}t %M”
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined

<Directory /usr/bin>
    Require all granted
</Directory>

<VirtualHost *:35357>
WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-admin
WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat “%{cu}t %M”
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined

<Directory /usr/bin>
    Require all granted
</Directory>

openstack endpoint create --region RegionOne
identity public http://controller0415:5000/v3

问题2
弄配置文件不当时,或者关机后报错401问题?
再一次配置了环境变量
问题3
发生系统报错时500?一直找不到错误步骤,经过老师的操作后,通过查询日志,发现是初始化 fernet的问题,就再一次初始化了fernet
执行下面代码
cd /etc/keystone/
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
问题4
以为409是个报错?
结果只是一个警告,有冲突但是我看并没有叫我改,就执行下一步了。暂时忽略。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值