Iaas私有云平台搭建(Openstack)
准备工作:两台CentOS7以上的虚拟机,(CentOS7之前的有许多命令不同)做好资源的分配;
准备镜像两块,CentOS7以上的一块、Iaas服务的基础镜像一块。(这Iaas平台的镜
像是先电下的一个)
节点名称 | 第一张网卡(有网关,外网用) | 第二张网卡(无网关,内网用) | |
控制节点 | controller | 192.168.137.27/24 | 192.168.200.27/24 |
计算节点 | compute | 192.168.137.37/24 | 192.168.200.37/24 |
创建虚拟机,内存给4g,处理器数量2个、内核2个,勾选上虚拟化引擎,如图:
要有两张网卡,我用的镜像是7.5-1804的那块,镜像官网下载
我们先创建一个虚拟机,后面一台直接复制这台,这样更省时间。
开启虚拟机,等待安装,语言根据爱好自选,下面有汉语,最小化安装,给硬盘配置,自己分配,别让系统去干(磁盘空间够的话,资源什么的可以往大了分配,我这磁盘空间不够就将就一下了)。如下:
等待它安装好哈······
网卡的话两张是NAT也行的,第一张的话有网关就行用做openstack里面实例的外网,第二张就当做内网用。
root登录,输入密码,进入网络配置文件(#符号后面跟着的是注释哈,不要写进去,我写是为了解释一下这些东西的):
cd /etc/sysconfig/network-scripts/###编辑第一张网卡
vi ifcfg-ens33###英文状态下按i键是进入输入模式,输好后按esc键退出输入模式,“:wq”是保存文档,“:q!”强制退出###内容,写完后记得保存下来TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static #网卡状态,系统默认为DHCP分发IP模式,static为静态IP
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=51e4cbf2-1a7d-4c25-8d90-253c1d195ce4
DEVICE=ens33 #网卡设备名称
ONBOOT=yes #开机是否生效,系统默认为no,我们需要改为yes
IPADDR=192.168.137.27 #IP
GATEWAY=192.168.137.2 #网关,OpenStack默认可不加
NETMASK=255.255.255.0 #子网掩码,同PREFIX=24等效果###编辑第二张网卡
vi ifcfg-ens34TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens34
UUID=6f6722fb-87b8-4c51-a13f-fe1c67f90b51
DEVICE=ens34
ONBOOT=yes
IPADDR=192.168.200.27
NETMASK=255.255.255.0
配置好网络后,重新启动网络,才能用连接工具连接上:
systemctl restart network #重新启动网络ip a #可以看到网络的配置信息
网络的信息如下:
做好这些配置后,直接关机,最好就做一个快照哈,以备出错的可能,我就错了很多次了。
后面我们就做另外一台了,直接复制(克隆)前面的那一台。
红色的地方要特别注意哈,这样才是完整的将前面做好配置的虚拟机完全复制出来。
开启复制的那台,修改ip,同前面的操作,只要改动ip就好。
最后我们就有两台虚拟机。
给虚拟机该主机名:
####计算节点主机名称,改完退出控制台,重新连接
hostnamectl set-hostname computelogout####控制节点主机名称,改完退出控制台,重新连接
hostnamectl set-hostname controllerlogout
最后改完后如图:
再而就是给控制节点做磁盘分区了:
lsblk #查看磁盘的信息fdisk /dev/sda #磁盘分区fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Command (m for help): m
Command actiona toggle a bootable flagb edit bsd disklabelc toggle the dos compatibility flagd delete a partition #删除一个分区g create a new empty GPT partition tableG create an IRIX (SGI) partition tablel list known partition typesm print this menun add a new partition #增加一个分区o create a new empty DOS partition tablep print the partition table #打印磁盘分区情况表q quit without saving changess create a new empty Sun disklabelt change a partition's system idu change display/entry unitsv verify the partition tablew write table to disk and exitx extra functionality (experts only)#按n增加分区,让它分区号默认,一直回车,到了Last结束时,写入要给分区空间的大小
Partition type:p primary (3 primary, 0 extended, 1 free)e extended
Select (default e):
Using default response e
Selected partition 4
First sector (73154560-125829119, default 73154560):
Using default value 73154560
Last sector, +sectors or +size{K,M,G} (73154560-125829119, default 125829119): +10G#按p可以查看分好后的结果Command (m for help): pDisk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00094d79Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 52183039 25041920 8e Linux LVM
/dev/sda3 52183040 73154559 10485760 83 Linux
/dev/sda4 73154560 94126079 10485760 5 Extended#按w,最后就是保存磁盘分区信息,将分区的信息写入#reboot重启后才能看到最后修改的信息
我这就只有sda一块,就只针对它了,做好分区后,重启,最终是多出sda3、sda4两个分区,一个有10G、另外一个1k(我也不晓得它为什么变成1k了,刚才写分区信息时都给了10G):
写两台虚拟机之间的映射关系:
vi /etc/hosts#内容,只加ip和主机名。(两台做一样的映射关系)127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.137.27 controller #文件加控制节点IP和主机名
192.168.137.37 compute #文件加计算节点IP和主机名
另外一台可以用远程复制:
#scp远程安全复制命令
#root@ip:要复制的文件路径 复制到当前计算机的路径scp root@192.168.137.27:/etc/hosts /etc/yes #允许#要输入远程复制主机的root登录密码
计算节点的配置做好了一半,回到给控制节点来:
给控制节点上传镜像,要挂载用的CentOS-7-x86_64-DVD-2009.iso和chinaskills_cloud_iaas.iso两块文件,再去创建两个挂载目录:
mkdir /opt/centos #在opt目录下创建了centos目录,用来挂载Centos...那块mkdir /opt/iaas #在opt目录下创建了iaas目录,用来挂载Iaas服务镜像的那块
挂载镜像:
#将镜像(镜像所在路径)挂载在/opt/centos/目录下
mount CentOS-7-x86_64-DVD-2009.iso /opt/centos/#将镜像(镜像所在路径)挂载在/opt/iaas/目录下
mount chinaskills_cloud_iaas.iso /opt/iaas/
结果:
这样的挂载方式每次开机重启,它镜像都会被系统卸载下来,所以我要给它永久挂载在目录上,一直使用:
####编辑系统挂载文件
vi /etc/fstab####文件里面的内容增加
/root/CentOS-7-x86_64-DVD-2009.iso /opt/centos iso9660 defaults 0 0
/root/chinaskills_cloud_iaas.iso /opt/iaas iso9660 defaults 0 0
挂载好镜像后,开始配置本地yum源,要先把原有的那些repo文件删掉,我们自己配置自己写一个。控制节点如下:
###查看系统自带的哪些repo文件ll /etc/yum.repos.d/###删掉它目录下的所有(*代表所有)rm -rf /etc/yum.repos.d/*vi /etc/yum.repos.d/local.repo[centos]
name=centos
baseurl=file:///opt/centos ##centos系统yum来源的基础路径
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///opt/iaas/iaas-repo ##iaas服务,这里写的是挂载下iaas目录下的另一个路径
gpgcheck=0
enabled=1
清空yum缓存,生成yum缓存,查看yum是否生效:
命令:
###清空yum缓存
yum clean all###生成yum缓存
yum makecache###查看yum是否生效
yum list
控制节点安装vsftpd(ftp工具),指定vsftpd 路径,如下:
###本地用yum安装服务,install后接服务名
yum -y install vsftpd###配置vsftpd服务的共享文件
vi /etc/vsftpd/vsftpd.conf ###头顶加上要共享的目录,由于该服务是给计算节点提供源,所以要将之前镜像挂载的目录共享给出去
anon_root=/opt####保存退出#####查看目录下文件的头几行(-n n是几就显示出几行来)
head -1 /etc/vsftpd/vsftpd.conf
设置临时防火墙规则,重启vsftpd服务及设置开机自启动:
###控制节点重启vsftpd
systemctl restart vsftpd###控制节点设置开机生效规则
systemctl enable vsftpd###控制、计算节点设置selinux规则
setenforce 0###查看selinux规则
getenforce###控制、计算节点关闭防火墙
systemctl stop firewalld###计算节点测试访问控制节点资源
curl ftp://192.168.137.27
结果运行图:
将控制节点的/etc/vsftpd/vsftpd.conf 复制到计算节点上,更改baseurl的路径就行:
###远程复制命令
scp root@192.168.137.27:/etc/yum.repos.d/local.repo /etc/yum.repos.d/###修改内容,计算节点/etc/yum.repos.d/local.repo内容为
[centos]
name=centos
baseurl=ftp://192.168.137.27/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://192.168.137.27/iaas/iaas-repo
gpgcheck=0
enabled=1###/etc/yum.repos.d/下面不止一份repo文件,其它C开头的都是系统自带的,删了就行
rm -rf /etc/yum.repos.d/CentOS-*
结果:
基本上都准备好了,可以安装iaas的服务了。
查找iaas-的服务:
yum list | grep iaas-
安装iaas服务:
yum -y install iaas-xiandian.x86_64
安装好后,就给iaas服务配置文件了/etc/xiandian/openrc.sh:
####批量删除注释符,也就是#号,在查看状态下::%s/^#//g
####:(英文下冒号)%(表示全文)s(是替换功能)^(以什么开头)#(#字符开头)/(控格)/g(确认替换了)
####整体就是全文将以#字符开头的替换成空格
####同样的可以:%s/PASS=/PASS=000000/g
####整体就是全文将以PASS=字符的替换成PASS=000000####内容#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.137.27 #控制节点IP#Controller HOST Password. example:000000
HOST_PASS=000000 #控制节点登录密码#Controller Server hostname. example:controller
HOST_NAME=controller #控制节点名称#Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.137.37 #计算节点IP#Compute HOST Password. example:000000
HOST_PASS_NODE=000000 #计算节点登录密码#Compute Node hostname. example:compute
HOST_NAME_NODE=compute #计算节点名称#--------------------Chrony Config-------------------##
#Controller network segment IP. example:x.x.0.0/16(x.x.x.0/24)
network_segment_IP=192.168.137.0/24 #同步时间的服务器IP与掩码#--------------------Rabbit Config ------------------##
#user for rabbit. example:openstack
RABBIT_USER=openstack#Password for rabbit user .example:000000
RABBIT_PASS=000000#--------------------MySQL Config---------------------##
#Password for MySQL root user . exmaple:000000
DB_PASS=000000#--------------------Keystone Config------------------##
#Password for Keystore admin user. exmaple:000000
DOMAIN_NAME=demo #域
ADMIN_PASS=000000
DEMO_PASS=000000#Password for Mysql keystore user. exmaple:000000
KEYSTONE_DBPASS=000000#--------------------Glance Config--------------------##
#Password for Mysql glance user. exmaple:000000
GLANCE_DBPASS=000000#Password for Keystore glance user. exmaple:000000
GLANCE_PASS=000000#--------------------Nova Config----------------------##
#Password for Mysql nova user. exmaple:000000
NOVA_DBPASS=000000#Password for Keystore nova user. exmaple:000000
NOVA_PASS=000000#--------------------Neturon Config-------------------##
#Password for Mysql neutron user. exmaple:000000
NEUTRON_DBPASS=000000#Password for Keystore neutron user. exmaple:000000
NEUTRON_PASS=000000#metadata secret for neutron. exmaple:000000
METADATA_SECRET=000000#Tunnel Network Interface. example:x.x.x.x
INTERFACE_IP=192.168.137.27 #填本机IP(计算节点就填计算的IP)#External Network Interface. example:eth1
INTERFACE_NAME=ens34 #第二张网卡名称#External Network The Physical Adapter. example:provider
Physical_NAME=provider#First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
minvlan=101#Last Vlan ID in VLAN RANGE for VLAN Network. example:200
maxvlan=200#--------------------Cinder Config--------------------##
#Password for Mysql cinder user. exmaple:000000
CINDER_DBPASS=000000#Password for Keystore cinder user. exmaple:000000
CINDER_PASS=000000#Cinder Block Disk. example:md126p3
BLOCK_DISK=sda3#--------------------Swift Config---------------------##
#Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000#The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=sda4#The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=192.168.137.37 #计算节点的IP#--------------------Heat Config----------------------##
#Password for Mysql heat user. exmaple:000000
HEAT_DBPASS=000000#Password for Keystore heat user. exmaple:000000
HEAT_PASS=000000#--------------------Zun Config-----------------------##
#Password for Mysql Zun user. exmaple:000000
ZUN_DBPASS=000000#Password for Keystore Zun user. exmaple:000000
ZUN_PASS=000000#Password for Mysql Kuryr user. exmaple:000000
KURYR_DBPASS=000000#Password for Keystore Kuryr user. exmaple:000000
KURYR_PASS=000000#--------------------Ceilometer Config----------------##
#Password for Gnocchi ceilometer user. exmaple:000000
CEILOMETER_DBPASS=000000#Password for Keystore ceilometer user. exmaple:000000
CEILOMETER_PASS=000000#--------------------AODH Config----------------##
#Password for Mysql AODH user. exmaple:000000
AODH_DBPASS=000000#Password for Keystore AODH user. exmaple:000000
AODH_PASS=000000#--------------------Barbican Config----------------##
#Password for Mysql Barbican user. exmaple:000000
BARBICAN_DBPASS=000000#Password for Keystore Barbican user. exmaple:000000
BARBICAN_PASS=000000
将文件复制去计算节点里,在计算节点的文件就只需要改:
INTERFACE_IP=192.168.137.37 #填本机IP(计算节点就填计算的IP)
保存退出,就可以刷脚本了,脚本有人写好了,我们就直接用就好了,控制、计算节点都安装基础服务:
iaas-pre-host.sh
安装完成后可重启服务器,建议重启
刷完后是:
控制节点安装MySQL(数据库服务),keystone(认证服务),glance(镜像服务),dashboard(实现数据可视化服务),neutron(网络服务),nova(计算服务),cinder(块存储服务),swift(对象存储服务):
iaas-install-mysql.sh
iaas-install-keystone.sh
iaas-install-glance.sh
iaas-install-dashboard.sh
iaas-install-neutron-controller.sh
iaas-install-nova-controller.sh
iaas-install-cinder-controller.sh
iaas-install-swift-controller.sh
计算节点:
iaas-install-nova-compute.sh
iaas-install-neutron-compute.sh
iaas-install-cinder-compute.sh
iaas-install-swift-compute.sh
登录dashboard
浏览器访问,192.168.137.27/dashboard
域控写demo
用户名admin
密码000000
结果:
Iaas私有云平台搭建(Openstack)相关推荐
- 物联网iot私有云平台搭建
物联网iot私有云平台搭建 物联网的平台有多种,把其中的一些列出一个开源平台比照表. IoT 软件平台 设备管理? 集成 安全 数据收集协议 分析 支持可视化? 数据库 Kaa IoT Platfor ...
- OpenStack ussuri 私有云平台搭建
一.OpenStack简介 openstack是一个云操作系统,这个操作系统控制着数据中心中的计算,存储和网络资源.所有这些资源的管理都是通过API来来实现的,并且管理资源都有相应的认证机制. 在op ...
- Openstack 多节点的企业私有云平台搭建
这里采用的是虚拟机做的一个Openstack 多节点的企业私有云平台测试,仅供参考 编号 系统 主机名–身份 IP @1 centos7 ct–控制节点 NAT:eth0=192.168.11.51 ...
- openstack私有云平台搭建
1.1 安装 CentOS7 说明 [CentOS7 版本] CentOS7 系统选择 2009 版本:CentOS-7-x86_64-DVD-2009.iso [空白分区划分] 在 CentOS7 ...
- 先电iaas云平台搭建(openstack)————搭建过程
写在前面: 1,在上一篇博客中具体记录了创建controller和compute这两个节点的过程 2,此片博客继续上一篇博客内容 3,使用的远程连接工具为CRT 4,搭建过程两个节点有重复步骤,均以c ...
- 搭建OpenStack多节点的企业私有云平台——基础基础环境搭建
搭建OpenStack多节点的企业私有云平台--基础环境搭建 参考书籍:OpenStack云平台部署与高可用实战 前期准备: 安装VMware workstation 15.5 下载CentOS-7- ...
- 小米基于OpenStack搭建私有云平台技术架构大揭秘!
摘要: 小米公司OpenStack项目的技术负责人潘晓东分享在使用OpenStack建设小米私有云平台的一些经验和踩过的一些坑,重点探讨在目前OpenStack还不太稳定的情况下,如何建设一个具备企业 ...
- 云计算 openstack 云平台搭建详细教程(基于 Vmware 虚拟机搭建)
OpenStack 和 云计算 1.OpenStack 基本概述 早在1988年,类似云计算概念的"网络就是计算机"概念就被 SUN 微系统公司 的合作创建者约翰 · 盖奇首次提出 ...
- 视频教程-ZStack 带你0基础搭建私有云平台|ZCCT实战培训视频|-云平台
ZStack 带你0基础搭建私有云平台|ZCCT实战培训视频| ZStack云计算解决方案专家,12年虚拟化与云计算相关工作经验,先后就职于IT系统集成商.国内知名软件上市公司以及云计算服务商,分别从 ...
最新文章
- linux之LAMP架构优化
- java 委托机制_通过反射实现Java下的委托机制代码详解
- MATLAB中BP神经网络用于回归拟合算法实现(另附GRNN代码)
- 【HDU - 4055】Number String(dp,思维)
- QT学习笔记(十):通用算法示例
- dropout为什么有效
- 微信小程序弹框禁止下面的页面滚动
- 在文档阅读器上为 PDF 文档生成多级目录
- 三分钟介绍什么是前端开发框架
- java自行车e2_摩托罗拉E2 JAVA应用程序安装指南
- Flex实现栅格布局
- hssfrow 单元格样式_poi导出excel单元格中画斜线_AnyReport报表
- 计算机学院主管学生日常工作的是,学生会的年度计划书(网络版)doc(完整版)...
- 局部连接层(Locally-Connected Layer)
- Pixelmator for mac(图片编辑处理工具) v3.8.1激活版
- 不安装Office操作Excel文件(.xlsx)
- excel——数据透视表教程
- 时尚的免费杀毒软件Avast!超酷登场(提供下载)-1
- python协同过滤算法计算时间_协同过滤算法_coding - SegmentFault 思否
- 【历史上的今天】7 月 17 日:软银收购 ARM;第一次电子邮件中断;维基媒体国际会议
热门文章
- 移动端点击事件touch、tap、swipe等详解
- Nested exception: The processing instruction target matching [xX][mM][lL] is not allowed.
- 论向大佬提问问题的正确方式。
- H5网页获取微信授权登录
- MATLAB笔记:一些自嵌函数/built-in function
- SPSS .net
- python traceback print_python traceback捕获并打印异常
- SQLite基本用法
- esp32系列(1):Hello world, 初识esp32
- 提取手机上的所有apk文件