首页 > 其他分享 >OpenStack学习笔记04-认证Keystone

OpenStack学习笔记04-认证Keystone

时间:2024-04-03 16:24:34浏览次数:20  
标签:description 04 -- here keystone export Keystone OpenStack OS

OpenStack学习笔记04-认证Keystone

OpenStackLinux

对着《云操作系统(OpenStack)》第四章做的。

一、Keystone基本概念

应该是只用在控制节点上安装,因为要用到数据库,而数据库只在控制节点上安装了。

二、keystone数据库操作

前面环境准备的时候给数据库设置的密码是abc123!,但是书上的密码是000000,为了保持统一,使用mysql_secure_installation重新配置密码,设置为000000
a## 登录MySQL数据库

mysql -uroot -p000000

这个密码是在安装数据库的时候创建的。

1. 创建Keystone数据库

CREATE DATABASE keystone;

enter description here
enter description here

2. 设置授权用户和密码

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '000000';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '000000';
exit

enter description here
enter description here

三、安装并配置Keystone

1. 安装Keystone所需软件包

yum install openstack-keystone httpd mod_wsgi -y

enter description here
enter description here

2. 编辑/etc/keystone/keystone.conf文件

进行如下配置

2-1. 配置数据库连接

文件的582行左右

[database]
connection = mysql+pymysql://keystone:000000@controller/keystone

2-2. 配置provider

文件的2447行左右

[token]
provider = fernet

2-3. 同步数据库

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

2-4. 进入Keystone数据库查看数据表

mysql -uroot -p000000;
use keystone;
show tables;
exit

enter description here
enter description here
看到有数据表,说明同步成功。

2-5. 初始化密钥

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

2-6. 引导开启身份服务

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

enter description here
enter description here

四、配置Apache服务

1. 编辑/etc/httpd/conf/httpd.conf文件

1-1. 添加ServerName

在96行左右

ServerName controller

1-2. 创建/usr/share/keystone/wsgi-keystone.conf文件链接

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

会在etc/httpd/confi.d/下面创建一个wsgi-keystone.conf的文件链接。

1-3. 启动Apache HTTP服务并设置开机自启动

systemctl enable httpd
systemctl start httpd

五、初次验证

1. 配置环境变量

以下配置的是临时变量

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

2. 首次验证

openstack token issue

enter description here
enter description here

六、创建Domain、Project、User、Role

1. 创建新域(Domain)

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

enter description here
enter description here

2. 创建新项目(Project)

2-1. 创建Service项目

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

enter description here
enter description here

2-2. 创建普通项目

openstack project create --domain default --description "Demo Project" myproject

enter description here
enter description here

3. 创建新用户(User)

执行以下命令,然后要给这个用户创建密码,我这里设置的密码是891107

openstack user create --domain default --password-prompt myuser

enter description here
enter description here

4. 创建新角色(Role)

openstack role create myrole

enter description here
enter description here

5. 进行关联

openstack role add --project myproject --user myuser myrole

enter description here
enter description here

七、验证keystone服务

1. 使用以下命令使指定的临时环境变量不生效

unset OS_TOKEN OS_URL

2. 使用admin用户来请求身份验证令牌

执行以下命令,然后需要输入两遍密码,就是上面配置环境变量时给admin所设置的密码,我这里是`000000``。

openstack --os-auth-url http://controller:5000/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name admin --os-username admin token issue

enter description here
enter description here

3. 编写OpenStack客户端变量脚本

3-1. 创建/root/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=000000
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

增加运行权限

chmod +x /root/admin-openrc

3-2. 创建/root/demo-openrc文件,添加如下内容:

export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=myproject
export OS_USERNAME=myuser
export OS_PASSWORD=891107
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

增加运行权限

chmod +x /root/demo-openrc

4. 生效并验证

cd /root
.admin-openrc
openstack token issue

enter description here
enter description here
第四章结束。

标签:description,04,--,here,keystone,export,Keystone,OpenStack,OS
From: https://www.cnblogs.com/nangongergou/p/18112972

相关文章

  • 环境搭建 ubuntu22.04+gtx1070+cuda12.0+cudnn8.8.0+TensorRT8.6
    构建基础             cuda12.0的.deb包会强制安装所依赖的nvidia-525.60.13版本驱动,但是对于ubuntu22.04来说,linux内核为6.5.0,其与该nvidia驱动不兼容,会报错,所以要先安装所支持的驱动,然后再使用runfile进行安装cuda12.0。cuda与驱动版本对应可查如下官网:1.C......
  • 3D Object Detection Essay Reading 2024.04.01
    SwinTransformerpaper:https://arxiv.org/abs/2103.14030(ICCV2021)code:https://github.com/microsoft/Swin-Transformer/blob/2622619f70760b60a42b996f5fcbe7c9d2e7ca57/models/swin_transformer.py#L458学习链接:https://blog.csdn.net/qq_37541097/article/detail......
  • 2024-04-03:用go语言,在一个小城市里,有 m 个房子排成一排, 你需要给每个房子涂上 n 种颜
    2024-04-03:用go语言,在一个小城市里,有m个房子排成一排,你需要给每个房子涂上n种颜色之一(颜色编号为1到n),有的房子去年夏天已经涂过颜色了,所以这些房子不可以被重新涂色,我们将连续相同颜色尽可能多的房子称为一个街区。比方说houses=[1,2,2,3,3,2,1,1],它包含5个街......
  • 09-代码随想704二分查找
    704二分查找给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且下标为4示......
  • 04、如何输入特殊数据
    目录一、输入编号前面的0二、输入身份证号,银行账号三、输入标准的日期四、输入特殊符号一、输入编号前面的0很多编号为了确保位数统一,都带有前导零,如区号、邮编、订单号等,但是在excel中输入完整的内容后,数字前面的零却都莫名其妙的消失了。这是为什么呢?原来在输入数......
  • 二十四 504. 转圈游戏 (快速幂)
    504.转圈游戏(快速幂)快速幂讲解importjava.util.*;publicclassMain{privatestaticintn,m,k,x;privatestaticlongqmi(longa,intb,intp){longres=1%p;while(b>0){if((b&1)!=0){......
  • 【2024-04-02】中医放血
    20:00绿遍山原白满川,子规声里雨如烟。乡村四月闲人少,才了蚕桑又插田。                                                 ——《乡村四月》宋·翁卷昨天,我去看了中医,是......
  • 【2024-04-01】连岳摘抄
    23:59记住,只有一个时间是重要的,那就是现在。它之所以很重要,是因为它是我们有所作为的时间。                                                 ——列夫·托尔斯泰半......
  • 2024.04.02
    在这个任务中,你需要实现前端上传Excel文件,然后将文件传输到后端,后端再将Excel文件解析并将数据插入数据库。下面是一种可能的实现方法:前端(Vue.js):使用<el-upload>组件实现文件上传功能,并绑定一个上传文件的事件。通过Axios或其他方式将上传的Excel文件发送到后端。......
  • 20240402,<<,>>,控制流:while语句 ,for语句
    ……学很少,学很慢还是比不学强点是吧,救命昨天不是很懂<<,>>输入输出iostream,输入流istream输出流ostream,COUT,CIN,CERR,CLOG#include<iostream>intmain(){ std::cout<<"entertwonumbers:"<<std::endl; intv1=0,v2=0; std::cin>>v1......