OpenStack-train版安装之安装Keystone(认证服务)、Glance(镜像服务)、Placement

news/2024/7/18 13:39:23 标签: openstack

安装Keystone(认证服务)、Glance(镜像服务)、Placement

  • 安装Keystone(认证服务)
  • 安装Glance(镜像服务)
  • 安装Placement

安装Keystone(认证服务)

  1. 数据库创建、创建用户并授权
 # mysql
MariaDB [(none)]> CREATE DATABASE keystone;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
    			IDENTIFIED BY 'KEYSTONE_DBPASS';
  1. 安装和配置
 # yum install openstack-keystone httpd mod_wsgi -y

配置,修改配置文件/etc/keystone/keystone.conf,在对应分组【[组名]】下添加配置:
[database]
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone
[token]
provider = fernet

初始化数据库:

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

初始化密钥库:

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

配置,修改配置文件/etc/httpd/conf/httpd.conf,在配置ServerAdmin root@localhost下一行添加ServerName controller:
在这里插入图片描述
创建软链:

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

设置开机启动并启动服务:

# systemctl enable httpd.service
# systemctl start httpd.service

验证

# systemctl status httpd.service
# lsof -i:5000
  1. 创建OpenStack客户端环境脚本
# mkdir -p /root/.openstack
# cat >> /root/.openstack/admin-openrc << EOF
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:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
EOF

加入环境变量,生效:

# cat >> /root/.bashrc << EOF
source  /root/.openstack/admin-openrc
EOF
# source /root/.bashrc
  1. 验证
    可正常查询:
# openstack token issue

在这里插入图片描述
验证auth_url返回报文:

# curl controller:5000/v3

在这里插入图片描述

  1. 创建域、项目、用户、角色
# openstack domain create --description "An Example Domain" example
# openstack project create --domain default   --description "Service Project" service
# openstack project create --domain default   --description "Demo Project" myproject
# openstack user create --domain default   --password-prompt myuser

输入用户密码、确认密码:MYUSER_PASS
创建角色、将用户加入角色:

# openstack role create myrole
# openstack role add --project myproject --user myuser myrole
  1. 说明
  • 详细说明参考官网:
    https://docs.openstack.org/keystone/train/install/keystone-install-rdo.html
  • 安装mysql时做了安装初始化,将密码设置为无,如有设置密码,连接时请加账号密码。
  • OpenStack部署完成后使用,dashboard中使用角色管理时提示【错误:在keystone中无法找到默认角色user】。解决方法一:创建user角色:openstack role create user。解决方法二:安装Horizon配置‘OPENSTACK_KEYSTONE_DEFAULT_ROLE = “user”’将user改为其他已存在的角色。

安装Glance(镜像服务)

  1. 数据库创建、创建用户并授权
# mysql
MariaDB [(none)]> CREATE DATABASE glance;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \
IDENTIFIED BY 'GLANCE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' \
                IDENTIFIED BY 'GLANCE_DBPASS';
  1. 创建服务凭证
 # openstack user create --domain default --password-prompt glance

输入密码:GLANCE_PASS
确认密码:GLANCE_PASS

# openstack role add --project service --user glance admin

# openstack service create --name glance   --description "OpenStack Image" image
  1. 创建服务API接入点
# openstack endpoint create --region RegionOne   image public http://controller:9292
# openstack endpoint create --region RegionOne   image internal http://controller:9292
# openstack endpoint create --region RegionOne   image admin http://controller:9292
  1. 安装和配置
# yum install openstack-glance -y

配置,修改配置文件/etc/glance/glance-api.conf,在对应分组【[组名]】下添加配置:
[database]
connection = mysql+pymysql://glance:GLANCE_DBPASS@controller/glance
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = GLANCE_PASS
[paste_deploy]
flavor = keystone
[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/

初始化数据库:

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

设置开机启动并启动服务:

# systemctl enable openstack-glance-api.service
# systemctl start openstack-glance-api.service
  1. 验证
    公网下载镜像(下载失败可直接使用浏览器下载):
# wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img

上传镜像到glance服务:

# glance image-create --name "cirros"   --file cirros-0.4.0-x86_64-disk.img   --disk-format qcow2 --container-format bare   --visibility public

查看镜像列表:

# glance image-list

或者

# openstack image list

在这里插入图片描述

验证镜像服务的接入点:

#curl controller:9292

在这里插入图片描述

  1. 说明
  • 详细说明参考官网:
    https://docs.openstack.org/glance/train/install/install-rdo.html
  • 安装mysql时做了安装初始化,将密码设置为无,如有设置密码,连接时请加账号密码。

安装Placement

  1. 数据库创建、创建用户并授权
# mysql
MariaDB [(none)]> CREATE DATABASE placement;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'localhost' \
IDENTIFIED BY 'PLACEMENT_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON placement.* TO 'placement'@'%' \
                IDENTIFIED BY 'PLACEMENT_DBPASS';
  1. 创建服务凭证
# openstack user create --domain default --password-prompt placement

输入密码:PLACEMENT_PASS
确认密码:PLACEMENT_PASS

# openstack role add --project service --user placement admin

# openstack service create --name placement   --description "Placement API" placement
  1. 创建服务API接入点
# openstack endpoint create --region RegionOne   placement public http://controller:8778
# openstack endpoint create --region RegionOne   placement internal http://controller:8778
# openstack endpoint create --region RegionOne   placement admin http://controller:8778
  1. 安装和配置
# yum install openstack-placement-api -y

配置,修改配置文件/etc/placement/placement.conf,在对应分组【[组名]】下添加配置:
[placement_database]
connection = mysql+pymysql://placement:PLACEMENT_DBPASS@controller/placement
[api]
auth_strategy = keystone
[keystone_authtoken]
auth_url = http://controller:5000/v3
memcached_servers = controller:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = placement
password = PLACEMENT_PASS

配置,修改配置文件/etc/httpd/conf.d/00-placement-api.conf,添加配置:
<Directory /usr/bin>
= 2.4>
Require all granted

<IfVersion < 2.4>
Order allow,deny
Allow from all

初始化数据库:

# su -s /bin/sh -c "placement-manage db sync" placement

设置开机启动并启动服务:

# systemctl restart httpd
  1. 验证
    状态是否正常:
# placement-status upgrade check

在这里插入图片描述

验证接入点:

# curl controller:8778

在这里插入图片描述

  1. 说明
  • 详细说明参考官网:
    https://docs.openstack.org/placement/train/install/install-rdo.html
  • 安装mysql时做了安装初始化,将密码设置为无,如有设置密码,连接时请加账号密码。

http://www.niftyadmin.cn/n/5230577.html

相关文章

Linux 代码编辑器:vim

vim 编辑器的简介 vi / vim 都是多模式编辑器&#xff0c;不同的是 vim 是 vi 的升级版本&#xff0c;他不仅兼容 vi 的所有指令&#xff0c;而且还有一些新的特性在里面。比如语法高亮&#xff0c;可视化操作不仅可以在终端运行&#xff0c;也可以在 windows&#xff0c;mac …

SpringBootWeb案例_03

Web后端开发_06 SpringBootWeb案例_03 登录认证 智能学习辅助系统登录时需要身份验证 1.登录功能 先实现简单的登录功能&#xff0c;在进一步优化。 1.1需求 若账户或密码不存在/密码不正确&#xff0c;则登录失败。 账户密码正确&#xff0c;则登录成功 1.2接口文档 …

YOLOv8-Seg改进:SENetV2,squeeze和excitation全面升级,效果优于SENet | 2023年11月最新成果

🚀🚀🚀本文改进: SENetV2,squeeze和excitation全面升级,作为注意力机制引入到YOLOv8,放入不同网络位置实现涨点 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLSdv 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 1)手把手教你如何训练YOLOv8-s…

java数据结构(哈希表—HashMap)含LeetCode例题讲解

目录 1、HashMap的基本方法 1.1、基础方法&#xff08;增删改查&#xff09; 1.2、其他方法 2、HashMap的相关例题 2.1、题目介绍 2.2、解题 2.2.1、解题思路 2.2.2、解题图解 2.3、解题代码 1、HashMap的基本方法 HashMap 是一个散列表&#xff0c;它存储的内容是键…

【概率统计】如何理解概率密度函数及核密度估计

文章目录 概念回顾浅析概率密度函数概率值为0&#xff1f;PDF值大于1&#xff1f;一个栗子 核密度估计如何理解核密度估计核密度估计的应用 总结 概念回顾 直方图&#xff08;Histogram&#xff09;&#xff1a;直方图是最直观的一种方法&#xff0c;它通过把数据划分为若干个区…

邻接表表示图进行深度优先搜索,广度优先搜索,最小生成树

图的邻接表定义 下面用邻接表实现图的深度优先搜索和广度优先搜索&#xff0c;用邻接矩阵来实现最小生成树。 图的邻接表&#xff1a;首先定义一个图的邻接表的类&#xff0c;里面包括图的顶点数&#xff0c;图的边数&#xff0c;顶点表数组。由于顶点表数组里存放的都是图的…

同时给两个或者多个变量赋值(Python)

c 3 d 4 a, b c, d print(a1:, a) print(b1:, b)c [3, 4, 7] d [4, 2, 9] a, b c, d print(a2:, a) print(b2:, b)c [3, 4, 7] d [4, 2, 9] e [5, 2, 9] a, b, bb c, d, e print(a2:, a) print(b2:, b) print(bb:, bb)

【python笔记】与网络编程相关的知识总结

前言 菜某的笔记总结 内网IP与公网IP 首先&#xff0c;我们知道全球电脑数量众多&#xff0c;但是IP有限&#xff0c;所以我们无法每人分配一个IP。 应对这种情况&#xff0c;我们就出现了内网IP和外网IP。 首先我的公司为路由器注册了一个公网IP&#xff0c;那么外界对我…