Openstack(基于虚拟机) 搭建实例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Openstack(基于虚拟机) 搭建实例相关的知识,希望对你有一定的参考价值。

实验要求:在真机中搭建两台虚拟机
虚拟机A 8G内存 200G硬盘sda 20G硬盘sdb
虚拟机B 5G内存 200G硬盘sda

真机安装虚拟机安装,依赖包
qemu-kvm
libvirt-client
libvirt-daemon
libvirt-daemon-driver-qemu

添加真机路由转发
vim /etc/sysctl.d/70-system.conf
net.ipv4.ip_forward = 1

清空真机虚拟网络
rm -rf /etc/libvirt/qemu/networks/autostart/

关闭selinux,关闭firewall

添加第一块虚拟网卡veth1
vim /etc/libvirt/qemu/networks/veth1.xml
<network>
<name>veth1</name>
<bridge name="veth1"/>
<forword 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>
添加第二块虚拟网卡veth2
vim /etc/libvirt/qemu/networks/veth2.xml
<network>
<name>veth2</name>
<bridge name="veth2"/>
<forword mode="nat"/>
<ip address="192.168.2.254" netmask="255.255.255.0">
<dhcp>
<range start="192.168.2.100" end="192.168.2.200"/>
</dhcp>
</ip>
</network>
</network>

定义虚拟网卡
virsh net-define veth1.xml
virsh net-define veth2.xml

启用网络
virsh net-start veth1
virsh net-start veth2

自动启用虚拟网络
virsh net-autostart veth1
virsh net-autostart veth2

创建qcow2格式镜像磁盘模板
cd /var/lib/libvirt/images/
qemu-img create -f qcow2 node.qcow2 16G

在真机配置一台yum源linux安装服务器(ftp,http)
新建虚拟机
网络安装
url:http://127.0.0.1/centos7
内存2G
cpu 2颗
选择或创建自定义存储
/var/lib/libvirt/images/node.qcow2
点选前进
根据条件,可选择最小化安装

(分区只分一个根, 标准分区
语言用默认英文
关闭kdump)

模板虚拟机上操作
配置yum源
安装net-tools 来使用ifconfig命令
安装vim-enhanced 来使用vim
安装iproute 使用ip命令
安装bash-completion 自动补齐

停用selinux,删除firewall软件
删除这个软件,使用默认的network服务
yum remove NetworkManager*
禁用空路由
vim /etc/sysconfig/network
NOZEROCONF="yes"
增加虚拟机console tty0接口
vim /etc/sysconfig/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet console=tty0 console=ttyS0,115200n8"

可以自定义yum源
关闭虚拟机

真机

cd /etc/libvirt/qemu
cp centos7.0.xml /roo

取消定义之前的virt-manager图形管理里面的centos7
virsh undefine centos7.0
修改模板
vim centos7.0.xml
删除uuid
删除总线地址
<address .../>
删除mac地址
删除包含usb的部分
删除clock部分
删除sound部分
删除video部分
修改完毕后,作为模板使用创建虚拟机
虚拟机模板:http://pan.baidu.com/s/1Q5MN4m2z8MyPoB31vfyiVg
别全照抄,把需要更改的地改下
密码: a82e

创建虚拟机
1、创建虚拟机配置文件
拷贝模板到/var/lib/libvirt/qemu/node1.xml
修改name字段,修改磁盘文件
3 <name>node1</name>
29 <source file=‘/var/lib/libvirt/images/node1.img‘/>
2、创建虚拟机磁盘文件
[[email protected] ~]# cd /var/lib/libvirt/images/
[[email protected] images]# qemu-img create -b node.qcow2 -f qcow2 node1.img 200G
[[email protected] images]# qemu-img create -b node.qcow2 -f qcow2 node1.qcow2 20G
//以之前创建的node.qcow2作为模板复制一个node1.img镜像
[[email protected] qemu]# cd /var/lib/libvirt/qemu
[[email protected] qemu]# virsh define node1.xml
定义域 node1(从 node1.xml)root

[[email protected] qemu]# virsh start node1
域 node1 已开始
[[email protected] qemu]# virsh console node1 成功连接

第二台虚拟机按需更改之前的配置

openstack安装环境准备
在真机上 安装配置 dns,能做为一个转发dns服务器
yum -y install bind-chroot
vim /etc/named.conf
listen-on port 53 { 192.168.1.254; };
//listen-on-v6 port 53 { ::1; };
recursion yes;
forwarders { 114.114.114.114; };

    dnssec-enable no;
    dnssec-validation no;

安装配置 chronyd server
yum -y install -y chronyd
vim /etc/chronyd.conf
server ntp1.aliyun.com iburst
bindacqaddress 0.0.0.0
allow 0/0

systemctl restart chronyd
chronyc sources -v
2 配置两台虚拟机(安装前配置网络)
第一台安装管理节点需要8G内存
单独加一块硬盘给openstack cinder 使用20G
单独加一块网卡 eth1,eth2
第二台安装nova节点,最少5G内存
单独加一块网卡 eth1,eth2

两台虚拟机上操作
下载 RPM-GPG-KEY-CentOS-7
wget http://192.168.1.254/cloud1/RPM-GPG-KEY-CentOS-7

[[email protected] ~]# rpm --import RPM-GPG-KEY-CentOS-7

将yum源签名认证改为1
[CentOS7-1708]
name=CentOS7-1708
baseurl=http://192.168.2.254/cloud1
enabled=1
gpgcheck=1

yum -y install qemu-kvm libvirt-client libvirt-daemon libvirt-daemon-driver-qemu python-setuptools

yum install lftp lrzsz

yum -y install cloud-utils-growpart
LANG=en_US.UTF-8
growpart /dev/vda 1
xfs_growfs /

[[email protected] ~]# systemctl stop NetworkManager
[[email protected] ~]# systemctl disable NetworkManager
openstack 机器在上安装
yum -y install lvm2
pvcreate /dev/vdb
vgcreate cinder-volumes /dev/vdb
vgs

[[email protected]~]# yum install -y openstack-packstack
[[email protected]~]# packstack --gen-answer-file answer.txt

sed -i "11c CONFIG_DEFAULT_PASSWORD=Taren1" /root/answer.txt
sed -i "42c CONFIG_SWIFT_INSTALL=n" /root/answer.txt
sed -i "75c CONFIG_NTP_SERVERS=192.168.1.254" /root/answer.txt
sed -i "98c CONFIG_COMPUTE_HOSTS=192.168.1.10,192.168.1.11" /root/answer.txt
sed -i "102c CONFIG_NETWORK_HOSTS=192.168.1.10,192.168.1.11" /root/answer.txt
sed -i "554c CONFIG_CINDER_VOLUMES_CREATE=n" /root/answer.txt
sed -i "840c CONFIG_NEUTRON_ML2_TYPE_DRIVERS=flat,vxlan" /root/answer.txt
sed -i "876c CONFIG_NEUTRON_ML2_VXLAN_GROUP=239.1.1.5" /root/answer.txt
sed -i "910c CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex" /root/answer.txt
sed -i "921c CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0" /root/answer.txt
sed -i "936c CONFIG_NEUTRON_OVS_TUNNEL_IF=eth1" /root/answer.txt
sed -i "1179c CONFIG_PROVISION_DEMO=n" /root/answer.txt

[[email protected] ~]# packstack --answer-file answer.txt

之后进行安装,耐心等待30分钟时间左右

修复bug
[[email protected] ~]# vim /etc/httpd/conf.d/15-horizon_vhost.conf
36 WSGIApplicationGroup %{GLOBAL}
[[email protected] ~]# systemctl restart httpd

openstack 默认登陆信息,在root下一个叫key.*打头的文件中,可以用cat打开,有默认的帐号密码

http://192.168.1.10
用户名 admin
密码 cat 192.168.1.10:/root/keystonerc_admin

右上角点选“项目”选项
点选创建项目
输入描述信息
点选配额选项

点选“身份管理”选项
身份管理-创建用户-输入用户名-密码-确认密码-点选项目

点选项目-镜像-创建镜像
输入镜像名称 输入描述信息
文件点选浏览 点选对应文件
镜像格式 QCOW2-QEMU模拟器
镜像要求不要去更改任何设置
点选创建镜像文件
有一个小bug,进度条满后,点选镜像选项按钮刷新,状态运行中就ok!

点选顶端列表,管理员-云主机类型-创建云主机类型
例:名称* vcpu 2 内存 512MB 根磁盘 3G 创建
————————————————————————————————————————————————
点选顶端列表,管理员-网络-创建网络
名称:public
项目:nsd
物理网络:physnet1
供应商:Flat
共享的,外部网络 勾选
——————————————————————————————————————————————————————————
切换用户(配置实例)
切换项目用户

选项网络-网络-增加子网
子网名称:wan
网络地址:192.168.1.0/24
网关:192.168.1.254
下一步:
勾掉激活DHCP
以创建

创建用户专属内网
点选网络-网络拓扑
网络名称:lan 
下一步
子网名称:lan
网络地址:192.168.100.0/24
网络IP:192.168.100.254
下一步
激活DHCP
分配地址池
192.168.100.50,192.168.100.100
dns服务器
192.168.1.254
以创建 
——————————————————
创建路由
点选网络拓扑-路由-新建路由
路由名称:r1
外部网络:public
点选路由图标
点选路由名称超链接
点选接口
增加接口
子网:lan192.168.100.0/24
ip地址:192.168.100.254


点选项目-云主机数量-创建云主机
云主机名称:host1
源:点选镜像,不创建新的卷
下方镜像可用:点选+
云主机类型:点选对应类型+
网络:点选专属的内部网络lan+
创建云主机
—————————————————————————————————————————————————————————————
点选计算-云主机数量-控制台-点击只显示控制台-点选返回
默认只能单向访问
点选访问和安全
点选管理规则
删除ipv6
点选访问和安全
点选创建安全组
名称:ssh
管理规则
规则:定tcp规则
方向:入口
打开端口:端口
端口:22
远程:cidr
cidr:0.0.0.0


点选云主机数量:
点选下拉菜单-编辑安全组-把默认default改成ssh规则-保存


点选计算-云主机数量-点选主机后端的下拉菜单-点选绑定浮动ip
ip地址点选+
点选资源池
点选分配
点选关联


更换管理员
点选管理员
点选主机聚合
点选虚拟机管理器

以上是关于Openstack(基于虚拟机) 搭建实例的主要内容,如果未能解决你的问题,请参考以下文章

怎么用OpenStack上的Linux虚拟机搭建dhcp服务器,然后让物理机获取到IP?

OpenStack手动迁移虚拟机

搭建OpenStack,kvm环境准备

从虚拟机上可以反向查询openstack管理机器么

openstack-虚拟机元数据

OpenStack实践系列⑥构建虚拟机实例