文章目录

  • 一、基础环境配置
    • 1. 下载基础工具包
    • 2. 下载open stack t版 客户端
    • 3. 配置hosts主机映射
    • 4. 三台主机做免交互
    • 5. 配置时间同步
  • 二、系统环境配置
    • 1. 配置MariaDB
    • 2. 安装、配置RabbitMQ(消息队列)
    • 3. 安装memcached
    • 4. 安装etcd并配置
  • 三、keystone组件
    • 1. 基本介绍
    • 2. 涉及名称及个人理解
    • 3. 认证流程
  • 四、部署keystone组件
    • 1. 创建实例数据库及数据库用户提权
    • 2. 安装、配置keystone
    • 3. 创建OpenStack 域、项目、用户和角色

一、基础环境配置

  • 由于电脑性能有限。实验配置为 一台控制节点、两台计算节点

虚拟机硬件配置为:最小化安装

  • 双核双线程
  • 8G内存
  • 300G硬盘
  • 双网卡(一NAT 一仅主机)
  • Centos 7.6系统
  • 三台同配置(若内存不够 计算节点可减少为6G)

网络配置演示如下:

内网网卡仅主机模式 复制模板然后相应改动即可 要注意的是 UUID要注释掉 否则跟ens33冲突

1. 下载基础工具包

yum -y install net-tools bash-completion vim gcc gcc-c++ make pcre  pcre-devel expat-devel cmake  bzip2 lrzsz

2. 下载open stack t版 客户端

yum -y install centos-release-openstack-train python-openstackclient openstack-selinux openstack-utilsOpenStack 的 train 版本仓库源安装包,同时安装 OpenStack 客户端和 openstack-selinux 安装包

官方在线源容易丢包 记得多下载几次 直到显示无需更新处理为止

3. 配置hosts主机映射

echo '172.16.10.10 ct' >> /etc/hosts
echo '172.16.10.20 c1' >> /etc/hosts
echo '172.16.10.30 c2' >> /etc/hostsct、c1、c2 是我自己的主机名  ip为内网ip

4. 三台主机做免交互

ssh-keygen -t rsa
#一路回车#上传密钥
ssh-copy-id ct
ssh-copy-id c1
ssh-copy-id c2

5. 配置时间同步

控制节点:ct

yum install chrony -yvim /etc/chrony.conf 将此段注释
#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    server ntp6.aliyun.com iburst   #配置阿里云时钟服务器源
ps:iburst:这个字段 作用为即使时间跨度大的节点也能立即同步,
默认情况下 时间同步是一点点进行同步的 allow 172.16.10.0/24    #允许172.16.10.0/24网段的主机来同步时钟服务#使用chronyc sources命令查询时间同步信息
systemctl enable chronyd
systemctl restart chronyd
chronyc sources


计算节点c1、c2

vim /etc/chrony.conf#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    server ct iburst        #配置阿里云时钟服务器源,同步指向控制节点ct(也就是控制节点同步阿里云,计算节点同步控制节点)systemctl enable chronyd.service
systemctl restart chronyd.service
chronyc sources


创建周期性计划任务 设置每1分钟更新一次(所有节点

crontab -e
*/1 * * * * /usr/bin/chronyc sources >>/var/log/chronyc.log

二、系统环境配置

1. 配置MariaDB

控制节点

yum -y install mariadb mariadb-server python2-PyMySQL libibverbsmariadb:是mysql的一个分支,是一款完全兼容mysql的开源软件
mariadb-server:数据库服务
python2-PyMySQL:用于openstack的控制端连接mysql所需要的模块,如果不安装,则无法连接数据库;此包只安装在控制端
libibverbs:远程直接内存访问


添加MySQL子配置文件

vim /etc/my.cnf.d/openstack.cnf[mysqld]
bind-address = 172.16.10.10
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8#---------配置解释---------------------------------------------
bind-address = 172.16.10.10            #控制节点局域网地址
default-storage-engine = innodb        #默认存储引擎
innodb_file_per_table = on                 #每张表独立表空间文件
max_connections = 4096                     #最大连接数
collation-server = utf8_general_ci         #服务器校对时不区分大小写
character-set-server = utf8             #默认字符集
#---------------------------------------------------------------systemctl enable mariadb
systemctl start mariadb


执行MariaDB 安装脚本

mysql_secure_installation


2. 安装、配置RabbitMQ(消息队列)

控制节点ct

yum -y install rabbitmq-serversystemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service


创建消息队列用户及配置操作权限,(用于controler和 计算节点连接rabbitmq的认证)

创建消息队列用户 ‘openstack’
rabbitmqctl add_user openstack RABBIT_PASS配置用户权限
rabbitmqctl set_permissions openstack ".*" ".*" ".*"
使用的正则表达式 表示 读、写、执行



查看rabbitmq插件并开启rabbitmq的web管理界面的插件,端口为15672

查看插件列表
rabbitmq-plugins list开启web管理界面插件
rabbitmq-plugins enable rabbitmq_management



访问web管理界面 账号密码均为默认的guest

3. 安装memcached

  • memcached是用于存储session信息;服务身份验证机制(keystone)使用Memcached来缓存令牌 在登录openstack的dashboard时,会产生一些session信息,这些session信息会存放到memcached中。

控制节点ct

yum install -y memcached python-memcachedmemcached:分布式高速缓存系统
python-memcached:用于连接数据库


修改配置文件

vim /etc/sysconfig/memcachedPORT="11211"                      #memcached端口11211
USER="memcached"                  #用户memcached
MAXCONN="1024"                    #最大连接数1024
CACHESIZE="64"                    #字符集大小64位
OPTIONS="-l 127.0.0.1,::1,ct"     #监听地址,127.0.0.1:本地地址,::是ipv6地址,ct是本地VMnet1地址systemctl enable memcached
systemctl start memcached
netstat -nautp | grep 11211


4. 安装etcd并配置

  • 分布式可靠的键值存储数据库
    控制节点ct
yum -y install etcdvim /etc/etcd/etcd.conf
将原有内容删除 添加下段内容即可
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://172.16.10.10:2380"
ETCD_LISTEN_CLIENT_URLS="http://172.16.10.10:2379"
ETCD_NAME="ct"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://172.16.10.10:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://172.16.10.10:2379"
ETCD_INITIAL_CLUSTER="ct=http://172.16.10.10:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"systemctl enable etcd.service
systemctl start etcd.service
netstat -anutp |grep 2379
netstat -anutp |grep 2380

配置的大致解释如下:


至此 openstack环境部署配置完成

三、keystone组件

1. 基本介绍

Keystone (OpenStack ldentity Service)是OpenStack中的一个独立的提供安全认证的模块,主要负责openstack用户的身份认证、令牌管理、提供访问资源的服务目录、以及基于用户角色的访问控制,openstack中的所有组件都要和keystone进行认证才能提供服务。

  • 身份认证(Authentication) :令牌的发放和校验
  • 用户授权(Authorization):授予用户在一个服务中所拥有权限
  • 用户管理(Account):管理用户账户
  • 服务目录(Service Catalog):提供可用服务的API端点

2. 涉及名称及个人理解

  • User:指使用Openstack service的用户。
  • Project(Tenant):可以理解为一个人、或服务所拥有的资源集合。
  • Role:用于划分权限。通过给User指定Role,使User获得Role对应操作权限
  • Authentication:确定用户身份的过程。
  • Token:是一个字符串表示,作为访问资源的令牌。Token包含了在指定范围和有效时间内,可以被访问的资源。
  • Credentials:用于确认用户身份的凭证。期户的用户名和密码或者是用户名和API密钥,或者身份管理服务提供的认证令牌。
  • Service::Openstack service,即Openstack中运行的组件服务。如nova、swift、glance、neutron、cinder等。
  • Endpoint:一个可以通过网络来访问和定位某个Openstack service的地址,通常是一个URL。

3. 认证流程

四、部署keystone组件

1. 创建实例数据库及数据库用户提权

mysql -u root -pcreate database keystone;GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';
flush privileges;

2. 安装、配置keystone

yum -y install openstack-keystone httpd mod_wsgips:mod_wsgi包的作用是让apache能够代理python程序的组件,
因为Openstack 所有提供 API 接口的服务都是 python web 服务器,
而其性能已经很弱,目前由apache进行承载cp -a /etc/keystone/keystone.conf{,.bak}grep -Ev "^$|#" /etc/keystone/keystone.conf.bak > /etc/keystone/keystone.conf


插入参数

openstack-config --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:KEYSTONE_DBPASS@ct/keystoneopenstack-config --set /etc/keystone/keystone.conf token provider fernet


初始化认证服务数据库及fernet 密钥存储库

su -s /bin/sh -c "keystone-manage db_sync" keystonekeystone-manage fernet_setup --keystone-user keystone --keystone-group keystonekeystone-manage credential_setup --keystone-user keystone --keystone-group keystone

配置bootstrap身份认证服务

keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
--bootstrap-admin-url http://ct:5000/v3/ \
--bootstrap-internal-url http://ct:5000/v3/ \
--bootstrap-public-url http://ct:5000/v3/ \
--bootstrap-region-id RegionOne     #--------模块和参数解释----------------------------------------------------------
此步骤是初始化openstack,
会把openstack的admin用户的信息写入到mysql的user表中,以及url等其他信息写入到mysql的相关表中; 


配置Apache服务器

echo "ServerName controller" >> /etc/httpd/conf/httpd.conf
#追加cotroller节点到配置文件内
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
#安装完mod_wsgi包后,会生成 wsgi-keystone.conf 这个文件,文件中配置了虚拟主机及监听了5000端口,mod_wsgi就是python的网关systemctl enable httpd
systemctl start httpd


配置管理员账户的环境变量

  • 这些环境变量用于创建角色和项目使用,但是创建角色和项目需要有认证信息,所以通过环境变量声明用户名和密码等认证信息,欺骗openstack已经登录且通过认证,这样就可以创建项目和角色;也就是把admin用户的验证信息通过声明环境变量的方式传递给openstack进行验证,实现针对openstack的非交互式操作
vim ~/.bashrcexport OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://ct:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2source ~/.bashrc

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

#创建项目
openstack project create --domain default --description "Service Project" service#查看openstack 项目列表
openstack project list

创建角色

openstack role create userps: admin为管理员member为 租户user:用户#查看openstack 角色列表
openstack role list


验证认证服务是否正常

openstack token issue
#此命令为获取token,测试命令


至此,open stack安装完成

Openstack(T版)私有云平台<环境部署>及安装<keystone组件>相关推荐

  1. 如何通过开源项目搭建私有云平台--第一步:安装Minio

    从事K8s私有云平台研发工作差不多5年了,在国企由于不能使用开源工具,所以全部要自研,连K8s都要从二进制开始安装.但去到小厂,如果一切自研,太耗费成本,本系列文章,总结一下,如何通过开源的项目快速搭 ...

  2. 小米基于OpenStack搭建私有云平台技术架构大揭秘!

    摘要: 小米公司OpenStack项目的技术负责人潘晓东分享在使用OpenStack建设小米私有云平台的一些经验和踩过的一些坑,重点探讨在目前OpenStack还不太稳定的情况下,如何建设一个具备企业 ...

  3. 视频私有云实战:基于Docker构建点播私有云平台

    私有云是为一个客户单独使用而构建的,因而提供对数据.安全性和服务质量的最有效控制.前置条件是客户拥有基础设施,并可以使用基础设施在其上部署应用程序.其核心属性是专有的资源.本篇文章将会结合网易云信的实 ...

  4. 30分钟快速搭建一套私有云平台

    本文介绍一种基于starvcenter快速搭建私有云平台的方法,实现30分钟内完成一套私有云平台的部署. 整个安装过程真的太简单了,仅需4个步骤.话不多说,上干货~ 1.下载starvcenter的i ...

  5. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(3)--为虚拟机指定固定ip

    之前在测试环境(centos7.2)上部署了openstack云平台(完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建),openstack在neutron组网 ...

  6. 搭建OpenStack多节点的企业私有云平台——基础基础环境搭建

    搭建OpenStack多节点的企业私有云平台--基础环境搭建 参考书籍:OpenStack云平台部署与高可用实战 前期准备: 安装VMware workstation 15.5 下载CentOS-7- ...

  7. OpenStack ussuri 私有云平台搭建

    一.OpenStack简介 openstack是一个云操作系统,这个操作系统控制着数据中心中的计算,存储和网络资源.所有这些资源的管理都是通过API来来实现的,并且管理资源都有相应的认证机制. 在op ...

  8. 部署了OpenStack就拥有了云平台?还差很远呢

    OpenStack作为开源管理框架,设计初衷是好的.给众多开发者.科研院校在小规模环境下实验云环境创造了条件,推动了云技术发展.但是,站在用户的角度看,特别是不具备软件开发.运维能力的传统企业,大规模 ...

  9. Ubuntu+KVM+Openstack搭建私有云平台

    搭建私有云(1)_理论知识总结 前言:由于工作需求,需要搭建一个私有云平台,搜集了些资料,在此汇总记录 目录 搭建私有云1_理论知识总结 目录 0x00 云平台架构 0x02 部署Openstack ...

  10. 中科方德技术专家直播:如何基于 OpenStack、Ceph 构建私有云平台? | 第 27 期

    「龙蜥大讲堂」第 27 期来啦!本期龙蜥大讲堂邀请了中科方德云计算架构师樊志成来分享<基于开源 OpenStack.Ceph 构建企业私有云平台>,快来扫码入群,预定前排小板凳观看直播吧! ...

最新文章

  1. JNI 实战全面解析
  2. 关于助动词和过去分词的一点见解
  3. 明日之后服务器什么时候维护结束,明日之后什么时候合区 合区时间详解[多图]...
  4. 剧透LiveVideoStackCon 2020:除了干货,还有更多优惠的年度通票
  5. python + selenium + Js 处理轮动条
  6. 电脑知识:分享几款常用的截屏方法,欢迎收藏!
  7. 508. 出现次数最多的子树元素和
  8. r语言的MASS包干什么的_R语言综述的包
  9. 在MyEclipse中,jsp文件输入中文,文件不能保存
  10. 在VMware Workstation 9中安装Mac OS X 10.8 Mountain Lion
  11. ffmpeg解码器使用
  12. python更换证件照底色
  13. Windows Defender保护历史记录清空方法
  14. ddgr:一个从终端搜索 DuckDuckGo 的命令行工具
  15. 优矿量化如何完成Alpha对冲模型测试?
  16. 计算机学院新年祝福语,学院20周年祝福语
  17. JS图片显示与隐藏案例
  18. python_并发编程
  19. android-23是什么手机,Android 8.1!首款helio P23/MT6763T手机曝光!
  20. 原生小程序 申请小程序 - 发布流程

热门文章

  1. 如何打开sqllite的.db文件方法
  2. 华为mate7android版本,华为Mate7的手机系统是什么?能升级安卓4.3吗?
  3. HTML - 合并单元格
  4. centos7开机直接进入命令行_Centos7默认开机进入命令行界面
  5. 软件工程——流程图和盒图
  6. Matlab中power函数的使用
  7. 原版Excel导入数据功能改造
  8. [转载]从零开始学习OpenGL ES之三 – 透视
  9. NVIDIA Jetson ROSbot等ROS近期事件
  10. 【flowable】八、flowable流程变量