使用devstack安装openstack
环境介绍,宿主机器 Fedora release 29 (Twenty Nine)
40核心cpu,32g内存
设想, 在fedora中安装kvm,虚拟出Ubuntu,然后在Ubuntu中安装openstack.
使用egrep -c '(svm|vmx)' /proc/cpuinfo
查询本机是否支持虚拟化,如果返回结果大于0代表支持。
如果是0你需要检查你的硬件是否支持虚拟机化或主板是否开启了虚拟化选项。
Fedora(centos/RHEL)的环境准备
配置国内yum源
备份原有的yum源配置,然后 下载
fedora-ustc.repo 到配置文件目录 /etc/yum.repos.d/
yum makecache
2 . 下载Ubuntu18.4镜像文件
下载地址:http://mirrors.ustc.edu.cn/ubuntu-cdimage/releases/18.04.2/release/ubuntu-18.04.2-server-amd64.iso
kvm环境搭建
安装软件包:
yum install -y qemu-kvm libvirt ###qemu-kvm用来创建虚拟机硬盘,libvirt用来管理虚拟机
yum install -y virt-install ###用来创建虚拟机
关闭防火墙,关闭selinux,清除iptables
systemctl stop firewalld.service
iptables -F
vim /etc/selinux/config
修改为 SELINUX=disabled
Ubuntu下的环境准备
配置国内源。
sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
安装KVM
执行以下命令安装KVM
sudo apt update
sudo apt install qemu qemu-kvm libvirt-bin bridge-utils virt-manager
将libvirtd添加自启动
sudo systemctl start libvirtd.service
sudo systemctl enable libvirtd.service
```
KVM安装完成后,首先需要进行网络设定,KVM支持四种网络模式:
- 桥接模式
- NAT模式
- 用户网络模式
- 直接分配设备模式
原本宿主机是通过网卡eth0连接外部网络的,网桥模式会新创建一个网桥br0,接管eth0来连接外部网络,然后将宿主机和虚拟机的网卡eth0都绑定到网桥上。
使用桥接模式需要进行以下操作:
方法1:
*** 需要安装ifupdown工具下面的修改才能生效 `sudo apt install ifupdown`***
编辑/etc/network/interfaces,增加如下内容
auto br0
iface br0 inet dhcp # 网桥使用DHCP模式,从DHCP服务器获取IP
bridge_ports enp3s0 # 网卡名称,网桥创建前连接外部的网卡,可通过ifconfig命令查看,有IP地址的就是
bridge_stp on # 避免数据链路出现死循环
bridge_fd 0 # 将转发延迟设置为0
接下来需要重启networking服务(如果是通过SSH连接到宿主机上的,这一步会导致网络中断,如果出现问题可能导致连不上宿主机,最好在宿主机上直接操作)
systemctl restart networking.service
使用ifconfig命令查看IP是否从enp3s0(网桥创建前的网卡)变到了br0上,如果没有变化则需要重启。
方法2:
Ubuntu18默认管理ip的方式改为netplan了。
默认配置文件:
/etc/netplan/50-cloud-init.yaml
修改成:
network:
ethernets:
eth0:
addresses: []
dhcp4: false
version: 2
bridges:
br0:
interfaces: [eth0]
dhcp4: false
addresses: [10.1.1.9/24]
gateway4: 10.1.1.1
nameservers:
addresses: [223.5.5.5]
然后直接执行 `netplan apply` 即可.
如果宿主机ip已经成功变到网桥上,并且宿主机能正常上网而虚拟机获取不到ip,可能是ufw没有允许ip转发导致的,编辑/etc/default/ufw允许ip转发。
DEFAULT_FORWARD_POLICY="ACCEPT"
重启ufw服务让设置生效
systemctl restart ufw.service
在kvm中安装Ubuntu
安装前的准备
mkdir ubuntu;cd ubuntu
- 注册一个新的虚拟网卡
<network> <name>vbr</name> <bridge name='vbr' stp='on' delay='0'/> <domain name='vbr'/> <forward mode="nat"/> <ip address='192.168.1.254' netmask='255.255.255.0'> <dhcp> <range start="192.168.1.100" end="192.168.1.200"/> </dhcp> </ip> </network>
把以上配置文件保存为 vbr.xml
注册到系统设备中
virsh net-define vbr.xml
启动虚拟网卡设备
virsh net-start vbr
设置为开机自启动
virsh net-autostart vbr
创建一个磁盘镜像文件
qemu-img create -f qcow ubuntu.raw 40G
安装Ubuntu系统
使用kvm创建一个虚拟机
virt-install --virt-type kvm --name ubuntu1804 --ram 20480 --cdrom=/var/ftp/share/1t/ubuntu-18.04.2-server-amd64.iso --disk path=/var/ftp/share/1t/ubuntu.raw --network network=vbr --graphics vnc,listen=0.0.0.0,keymap=en-us --noautoconsole
—virt-type kvm ###使用kvm技术
—name ubuntu1804 虚拟机的名称
--ram 20480 设置虚拟机的内存 Mb
--cdrom=/var/ftp/share/1t/ubuntu-18.04.2-server-amd64.iso 引导的镜像
--disk path=/var/ftp/share/1t/ubuntu.raw #使用刚才创建的硬盘镜像文件
--network network=vbr #使用刚才注册的网络接口
--graphics vnc,listen=0.0.0.0,keymap=en-us #使用vnc连接, 注意要选择en-us作为key-map,否则键位布局可能会乱
启动Ubuntu虚拟机
virsh dumpxml ubuntu1804 > ubuntu1804.xml
备份一份虚拟机的配置文件备用.virsh edit ubuntu1804.xml 按需修改配置,如cpu数量之类的.
删除刚才创建的虚拟机
virsh destroy ubuntu1804
virsh undefine ubuntu1804
使用我们修改好的虚拟机配置文件重新创建并启动虚拟机
virsh define ubuntu1804.xml
virsh start ubuntu1804
使用vncview 连接宿主机的ip
说明:启动Ubuntu虚拟机之后kvm就会监听本地所有地址vncserver默认端口了. 我们只要用vncview连接到 宿主机 就能直接管理新创建的Ubuntu虚拟机了.
按需安装好Ubuntu. 选择语言-键盘布局-配置主机名和网络-时区-分区模式- 自行安装即可。
安装Windows10系统 【试验过程并不需要】
安装Windows 10虚拟机会出现没有virtio驱动的问题,导致安装程序找不到硬盘,所以需要先下载virtio驱动。
"virtio驱动下载地址"cd vmsfile\imgs\
#创建Win10虚拟机
sudo virt-install -n win10 --description "win10" --os-type=win --os-variant=win10 --ram=4096 --vcpus=2 --disk path=win_10.img,bus=virtio,size=100 --network bridge:br0 --accelerate --graphics vnc,listen=0.0.0.0,keymap=en-us --cdrom=systemiso/virtio-win.iso --cdrom=systemiso/cn_windows_10_consumer_editions_version_1803_updated_march_2018_x64_dvd_12063766.iso
- 使用vnc客户端链接虚拟机
- 查看虚拟机列表
sudo virsh list
#查看正在运行中的虚拟机sudo virsh list --all
#查看当前所有的虚拟机,包括不是运行中的- 查看指定及其的vnc端口
sudo virsh vncdisplay win10
#查指定虚拟机的vnc端口- 使用vncview 链接到虚拟机中。
开始使用devstack安装
修改apt源为中科大源sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
#如果你觉得http不安全可以用http:替换为https:
修改pip配置文件使用国内源
git clone http://git.trystack.cn/openstack-dev/devstack.git
# 复制模板配置文件到当前目录然后修改cp samples/local.conf ./
#浮动ip的范围,其中会把10.1.1.33设置为浮动ip的网关。 如果10.1.1.0/24是你用来访问外网网段,那你需要在本地路由执行`route add -net 10.1.1.32/27 10.1.1.33` 这样你才能访问到openstack中虚拟机的浮动ip。 FLOATING_RANGE=10.1.1.33/27 #内部传输 FIXED_RANGE=10.11.12.0/24 FIXED_NETWORK_SIZE=256 #外网接口 FLAT_INTERFACE=eth0
安装时候一般出现问题:git克隆太慢手动重试。 报API问题 可以执行 unstack.sh 或clean.sh 在试试。
使用国内git仓库,速度会快很多
```
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git
```
设置浮动ip之前只要配置一下路由即可。
新建一个路由,然后在public交换机中新建一个接口链接内网share交换机就行了。
安装比较简单的:
主要问题,就是配置网络接口和浮动ip
可以参考一下链接:
dashboard中配置网络的
https://www.cnblogs.com/shoufengwei/p/7154087.html
https://blog.51cto.com/11555417/2344396
安装详情:
https://blog.csdn.net/Neu_Halen/article/details/73344750
https://blog.51cto.com/wzlinux/1969781
官方配置文档:单机模式安装
https://docs.openstack.org/devstack/latest/guides/single-machine.html
https://ask.openstack.org/en/question/82291/devstack-localconf/
腾讯云的pypi地址
https://mirrors.cloud.tencent.com/help/pypi.html
腾讯云的镜像站
https://mirrors.cloud.tencent.com/
ubuntu18.04 netplan管理ip
https://www.hi-linux.com/posts/49513.html
openstack配置网络相关
https://blog.51cto.com/11555417/2345230
Neutron 网络基本概念
https://www.cnblogs.com/CloudMan6/p/5716947.html