Openstack(T版)私有云平台<环境部署>及安装<keystone组件>
文章目录
- 一、基础环境配置
- 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组件>相关推荐
- 如何通过开源项目搭建私有云平台--第一步:安装Minio
从事K8s私有云平台研发工作差不多5年了,在国企由于不能使用开源工具,所以全部要自研,连K8s都要从二进制开始安装.但去到小厂,如果一切自研,太耗费成本,本系列文章,总结一下,如何通过开源的项目快速搭 ...
- 小米基于OpenStack搭建私有云平台技术架构大揭秘!
摘要: 小米公司OpenStack项目的技术负责人潘晓东分享在使用OpenStack建设小米私有云平台的一些经验和踩过的一些坑,重点探讨在目前OpenStack还不太稳定的情况下,如何建设一个具备企业 ...
- 视频私有云实战:基于Docker构建点播私有云平台
私有云是为一个客户单独使用而构建的,因而提供对数据.安全性和服务质量的最有效控制.前置条件是客户拥有基础设施,并可以使用基础设施在其上部署应用程序.其核心属性是专有的资源.本篇文章将会结合网易云信的实 ...
- 30分钟快速搭建一套私有云平台
本文介绍一种基于starvcenter快速搭建私有云平台的方法,实现30分钟内完成一套私有云平台的部署. 整个安装过程真的太简单了,仅需4个步骤.话不多说,上干货~ 1.下载starvcenter的i ...
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(3)--为虚拟机指定固定ip
之前在测试环境(centos7.2)上部署了openstack云平台(完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建),openstack在neutron组网 ...
- 搭建OpenStack多节点的企业私有云平台——基础基础环境搭建
搭建OpenStack多节点的企业私有云平台--基础环境搭建 参考书籍:OpenStack云平台部署与高可用实战 前期准备: 安装VMware workstation 15.5 下载CentOS-7- ...
- OpenStack ussuri 私有云平台搭建
一.OpenStack简介 openstack是一个云操作系统,这个操作系统控制着数据中心中的计算,存储和网络资源.所有这些资源的管理都是通过API来来实现的,并且管理资源都有相应的认证机制. 在op ...
- 部署了OpenStack就拥有了云平台?还差很远呢
OpenStack作为开源管理框架,设计初衷是好的.给众多开发者.科研院校在小规模环境下实验云环境创造了条件,推动了云技术发展.但是,站在用户的角度看,特别是不具备软件开发.运维能力的传统企业,大规模 ...
- Ubuntu+KVM+Openstack搭建私有云平台
搭建私有云(1)_理论知识总结 前言:由于工作需求,需要搭建一个私有云平台,搜集了些资料,在此汇总记录 目录 搭建私有云1_理论知识总结 目录 0x00 云平台架构 0x02 部署Openstack ...
- 中科方德技术专家直播:如何基于 OpenStack、Ceph 构建私有云平台? | 第 27 期
「龙蜥大讲堂」第 27 期来啦!本期龙蜥大讲堂邀请了中科方德云计算架构师樊志成来分享<基于开源 OpenStack.Ceph 构建企业私有云平台>,快来扫码入群,预定前排小板凳观看直播吧! ...
最新文章
- JNI 实战全面解析
- 关于助动词和过去分词的一点见解
- 明日之后服务器什么时候维护结束,明日之后什么时候合区 合区时间详解[多图]...
- 剧透LiveVideoStackCon 2020:除了干货,还有更多优惠的年度通票
- python + selenium + Js 处理轮动条
- 电脑知识:分享几款常用的截屏方法,欢迎收藏!
- 508. 出现次数最多的子树元素和
- r语言的MASS包干什么的_R语言综述的包
- 在MyEclipse中,jsp文件输入中文,文件不能保存
- 在VMware Workstation 9中安装Mac OS X 10.8 Mountain Lion
- ffmpeg解码器使用
- python更换证件照底色
- Windows Defender保护历史记录清空方法
- ddgr:一个从终端搜索 DuckDuckGo 的命令行工具
- 优矿量化如何完成Alpha对冲模型测试?
- 计算机学院新年祝福语,学院20周年祝福语
- JS图片显示与隐藏案例
- python_并发编程
- android-23是什么手机,Android 8.1!首款helio P23/MT6763T手机曝光!
- 原生小程序 申请小程序 - 发布流程