OpenStack 安装 Keystone

OpenStack 安装 Keystone

本篇主要记录一下 如何安装 openstack的 第一个组件 keystone 认证授权组件

openstack 版本 我选的是queens 版本

OpenStack 安装 Keystone

1.OpenStack 官网

看了一下官网 文档还是蛮全的,我采用 centos7 来做实验

https://docs.openstack.org/keystone/queens/install/

OpenStack 安装 Keystone

2.KeyStone 概述

Keystone 是openstack 体系下面的认证、授权、和 目录服务管理 的一个重要的组件,keystone 通常是我们接触openstack 的第一个组件,它可以管理其他openstack service ,每个服务都可以有一个或者多个 endpoints,并且 endpoint 被分为 3种类型: admin 、internal、public, 通过名称我们也能大概知道 就是其他服务所暴露的终端地址 给不通场景使用,public 一般是对外的 internal 一般是服务之间的通信地址,admin 一般管理员操作的地址,并且 endpoint 具有 region 类型,既可以对 endpoint 进行局域划分 ,我们默认使用 RegionOne

具体看 https://docs.openstack.org/keystone/queens/install/

3.安装 OpenStack packages

前置 需要准备一个 centos7 系统

  1. Upgrade the packages on all nodes:
yum upgrade

注意:If the upgrade process includes a new kernel, reboot your host to activate it.

  1. Install the appropriate OpenStack client for your version. For CentOS 7 and RHEL 7
yum install python-openstackclient

For CentOS 8 and RHEL 8

yum install python3-openstackclient
  1. RHEL and CentOS enable SELinux by default. Install the openstack-selinux package to automatically manage security policies for OpenStack services:
yum install openstack-selinux

​ 或者通过手动关闭selnux

4.Network Time Protocol (NTP ) ( 必须

openstack 各个组件之间 需要进行频繁的调用,所以他们的 时间一点要保持一致,所以这个 NTP 必须要进行处理

centos7 已经推荐使用 chrony 了 ,我看 openstack 官方文档也是这样操作的

4.1 安装 chrony

yum -y install chrony

4.2 编辑/etc/chrony.conf

#注释 这4个
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

#添加阿里云 ntp 服务器
server ntp1.aliyun.com iburst

#允许同步的网段 我的是这个,根据情况自己配置
allow 192.168.56.0/24

4.3 启动 chrony

注意是 chronyd.service

systemctl enable chronyd.service
systemctl start chronyd.service

4.4 执行同步 chronyc sources -v

OpenStack 安装 Keystone

4.5 其他nodes 节点也需要安装 chrony

nodes 其他节点 直接同步 上面的 controller节点即可

server 192.168.56.30

OpenStack 安装 Keystone

注意: 由于chrony 使用 udp 端口 123 和 323 ,所以 注意关闭 防火墙,或者把端口打开!

5. 安装 mariadb

由于 keystone 中相关的 services 信息 都需要存储的地方 ,所以 需要安装 mariadb ,不过也支持其他

5.1 Install the packages: 安装 mariadb 包

yum install mariadb mariadb-server python2-PyMySQL

5.2 编辑 /etc/my.cnf.d/openstack.cnf

Create and edit the /etc/my.cnf.d/openstack.cnf file (backup existing configuration files in /etc/my.cnf.d/ if needed) and complete the following actions:

  • Create a [mysqld] section, and set the bind-address key to the management IP address of the controller node to enable access by other nodes via the management network. Set additional keys to enable useful options and the UTF-8 character set:
[mysqld]
bind-address = 192.168.56.30

default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

​ 注意 在 /etc/my.cnf.d/openstack.cnf 下面进行编辑 然后 bind-address 可以指定为 controller 节点ip

5.3 启动 mariadb 服务

systemctl enable mariadb.service
systemctl start mariadb.service

5.4 安全设置向导

mysql_secure_installation  #一步步配置即可

OpenStack 安装 Keystone

6.安装 rabbitmq (本篇可选,由于本篇只是安装keystone)

OpenStack 使用消息队列来协调服务之间的操作和状态信息。消息队列服务通常在控制器节点上运行。OpenStack支持多种消息队列服务,包括RabbitMQ,Qpid和ZeroMQ。

6.1 安装 rabbitmq-server

yum install rabbitmq-server

6.2 启动

systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service

6.3 配置 openstack rabiitmq 用户

rabbitmqctl add_user openstack RABBIT_PASS #注意替换 RABBIT_PASS 密码

6.4 Permit configuration, write, and read access for the openstack user:

rabbitmqctl set_permissions openstack ".*" ".*" ".*"

7. 安装 Keystone 和 必要配置

官网地址:https://docs.openstack.org/keystone/queens/install/index-rdo.html

OpenStack 安装 Keystone

7.1 配置 mysql

上面已经安装了 mariadb 服务,这里需要开始对它进行配置

Before you install and configure the Identity service, you must create a database.

  1. 使用root用户登录 mysql :
$ mysql -u root -p
  1. 创建 keystone database:
MariaDB [(none)]> CREATE DATABASE keystone;
  1. Grant proper access to the keystone database:
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';

​ Replace KEYSTONE_DBPASS with a suitable password.

OpenStack 安装 Keystone

7.2 安装 keystone 组件

7.2.1 安装 keystone
yum install openstack-keystone httpd mod_wsgi
安装过程中的报错:

Error: Package: python2-qpid-proton-0.22.0-1.el7.x86_64 (centos-openstack-queens)
Requires: qpid-proton-c(x86-64) = 0.22.0-1.el7
Available: qpid-proton-c-0.14.0-2.el7.x86_64 (extras)
qpid-proton-c(x86-64) = 0.14.0-2.el7
Available: qpid-proton-c-0.17.0-4.el7.x86_64 (centos-openstack-queens)
qpid-proton-c(x86-64) = 0.17.0-4.el7
Available: qpid-proton-c-0.22.0-1.el7.x86_64 (centos-openstack-queens)
qpid-proton-c(x86-64) = 0.22.0-1.el7
Installing: qpid-proton-c-0.35.0-1.el7.x86_64 (epel)
qpid-proton-c(x86-64) = 0.35.0-1.el7
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

包冲突导致的兼容错误单独选定需要的版本进行安装即可

`解决方案:yum install -y python2-qpid-proton-0.22.0-1.el7.x86_64

安装完成后 /etc/keyston 就存在了

OpenStack 安装 Keystone
7.2.2 编辑 /etc/keystone/keystone.conf 连接 mysql
[database]
...

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

注意 controller 是你的 本机ip 可以配置掉 /etc/hosts中

7.2.3 token provider
[token]
...

provider = fernet
7.2.4 同步 keystone db
su -s /bin/sh -c "keystone-manage db_sync" keystone
7.2.5 初始化 fernet key
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
7.2.6 Bootstrap the Identity service:

注意替换 ADMIN_PASS

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

7.3 配置 Apache Http 服务

7.3.1 编辑 /etc/httpd/conf/httpd.conf
ServerName controller
7.3.2 创建 ln -s

Create a link to the /usr/share/keystone/wsgi-keystone.conf file:

ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
7.3.3 启动 httpd
systemctl enable httpd.service
systemctl start httpd.service
7.3.4 暴露账号到环境变量中

为了可以执行 openstack 命令

export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS #这个是上面 keystone-manage bootstrap 指定的
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

8.创建域 项目、用户、角色 等

8.1 创建 域

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

8.2 创建项目

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

8.3 创建角色 关联用户

#创建 用户
openstack user create --domain default   --password ADMIN_PASS myuser

#创建 角色
openstack role create myrole

#为servce 项目指定用户角色
openstack role add --project service --user myuser myrole #为service项目指定用户角色

OpenStack 安装 Keystone

9.验证 KeyStone 服务

9.1 验证 admin 用户

unset OS_AUTH_URL OS_PASSWORD
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

OpenStack 安装 Keystone

9.2 验证 myuser 用户

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

OpenStack 安装 Keystone

至此 openstack keystone 组件已经安装完成了。。

总结

本篇主要记录一下 openstack queens 版本 keystone 组件的安装过程 被领导催促要学习openstack 我也很无奈。

OpenStack 安装 Keystone

欢迎大家访问 个人博客 Johnny小屋

Original: https://www.cnblogs.com/askajohnny/p/16279596.html
Author: AskaJohnny
Title: OpenStack 安装 Keystone

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/684637/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Golang可重入锁的实现

    项目中遇到了可重入锁的需求和实现,具体记录下。 什么是可重入锁 我们平时说的分布式锁,一般指的是在不同服务器上的多个线程中,只有一个线程能抢到一个锁,从而执行一个任务。而我们使用锁…

    技术杂谈 2023年6月1日
    086
  • switchyomega的使用

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/welhzh/p/16387637.htmlAuthor…

    技术杂谈 2023年6月1日
    0103
  • 定时任务日志traceid

    在使用xxl-job框架作为项目中的定时任务管理时,JobHandler线程记录日志时没有traceId,导致查询日志时不方便。其他框架如SpringMVC、Dubbo等都提供了拦…

    技术杂谈 2023年6月1日
    076
  • 秒杀项目总结

    seckill-demo 秒杀练习项目:主要目的是通过本项目练习SpingBoot学习过程中所学知识,逐渐将学习到的技能融合至项目中. github地址: seckill-demo…

    技术杂谈 2023年7月25日
    089
  • pip3安装库时报超时问题小结

    在Linux测试服务器上使用pip3安装组件时,遇到下面错误: 查了一下相关资料弄清楚了这个错误出现的原因:一般出现这个错误跟本地网络状况或配置有关。一般而言,你可能默认使用了国外…

    技术杂谈 2023年5月31日
    089
  • NotePad++的基本使用方法

    第一步:下载完成后的基本设置 设置>>首选项 进行如下操作 这个设置主要是为了在NotePad++的页面中可以输入汉字 第二步:在文件夹中新建文本文档 将后面的后缀改成…

    技术杂谈 2023年7月25日
    083
  • 文字转语音小软件

    把文字转成语音这个功能是很常用的,如果不追求语音个性,只需要短短几行代码就可以实现。 下载 代码,项目中引用 using System.Speech.Synthesis; 四行代码…

    技术杂谈 2023年5月31日
    097
  • ssm整合后的使用

    <!– 添加分页插件的依赖包 –> <dependency> <groupid>com.github.pagehelper</grou…

    技术杂谈 2023年7月25日
    087
  • 微信开发者工具,文件如何自动保存?

    我们用微信开发者工具开发小程序的时候,经常遇到文件不自动保存的情况,需要手动 Ctrl + S,很烦人。 怎么自动保存呢? 按照如下步骤:1、设置2、编辑器设置3、勾选&#8221…

    技术杂谈 2023年5月31日
    098
  • C++ 虚基类与虚继承 (菱形继承问题)

    C++ 是支持多继承的语言, 但是实际项目开发中非必要不要使用多继承以降低代码逻辑的复杂性,当然 C++ 多继承的特性带来一些问题即 菱形继承。 当一个类继承了两个来自同父类的子类…

    技术杂谈 2023年6月21日
    097
  • 一文聊透 Netty 核心引擎 Reactor 的运转架构

    本系列Netty源码解析文章基于 4.1.56.Final版本 本文笔者来为大家介绍下Netty的核心引擎Reactor的运转架构,希望通过本文的介绍能够让大家对Reactor是如…

    技术杂谈 2023年7月11日
    0109
  • Css3图片阴影效果_Css3相册阴影效果(一)

    一、Css3图片阴影效果_Css3相册阴影效果 html代码: DOCTYPE html> <html lang="en"> <head…

    技术杂谈 2023年6月1日
    098
  • Crossref是什么?Crossref怎么查DOI?

    参考文献在学术写作中具有极为重要的地位,原因有三。 首先,科研人员的学术影响力或水平通常用发表论著的数量和质量来衡量,而质量往往依靠被引用的次数来表征,虽然引用次数并不能完全代表学…

    技术杂谈 2023年5月30日
    0133
  • 8 月份全球 Wi-Fi6 技术标准更新

    1.巴林 TRA 启用 Wi-Fi6 2022 年 8 月 17 日,巴林电信管理局 (TRA) 批准了 5470-5725 MHz 和 5925-6425 MHz 频段用于 Wi…

    技术杂谈 2023年6月21日
    063
  • 「笔记」折半搜索(MeetintheMiddle)

    先搜索前一半的状态,再搜索后一半的状态,再记录两边状态相结合的答案。 暴力搜索的时间复杂度通常是 (O(2^{n})) 级别的。但折半搜索可以将时间复杂度降到 (O(2 \time…

    技术杂谈 2023年7月24日
    069
  • 进程管理三大扩展工具htop

    三大进程管理监控工具 HTOP 介绍: Htop是一款运行于Linux 系统监控与进程管理软件,htop提供所有进程的列表,并且使用彩色标识出处理器、swap和内存状态。用户一般可…

    技术杂谈 2023年5月31日
    070
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球