1.实验环境
vbox先创一台虚拟机,环境如下:
条目 | 配置 |
---|---|
os | centos66 64bit |
内存 | 4G |
处理器 | 3 |
磁盘大小 | 30G |
网络配置
vbox所建虚拟机网卡配置:
net0(网卡1):10.20.0.0/24 Host-Only#2 PCnet-PCI II 混杂模式:全部允许
net1(网卡2):72.16.0.0/24 Host-Only#3 PCnet-PCI II 混杂模式:全部允许
net2(网卡3):192.168.4.0/24 Host-Only#4 PCnet-PCI II 混杂模式:全部允许
网卡4:NAT
2.搭建openstack
1.启动虚拟机(当物理机用)后,为其配置网卡(eth2暂时先别设置onboot=no,以后有别的用途)
eth0 : 10.20.0.201 management network
eth1 : 172.16.0.201 public/external network
eth2 : 192.168.4.201 private network
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=10.20.0.201
NETMASK=255.255.255.0
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=172.16.0.201
NETMASK=255.255.255.0
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth3
DEVICE=eth3
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
[root@localhost ~]# service network restart
3.安装packstack
[root@localhost ~]# yum install -y https://repos.fedorapeople.org/repos/openstack/openstack-icehouse/rdo-release-icehouse-4.noarch.rpm
[root@localhost ~]# yum -y install openstack-packstack
[root@localhost ~]# packstack --allinone
这个过程有点漫长,一般网络稳定的话还是比较顺利的,如果报错并且每次错点都不一样,但都是关于包下载失败的,极有可能是网络不好的原因,因为都是国外的源,建议使用好的网络执行这一步。
这一步执行成功后会出现以下内容:
这时ls会看到
[root@localhost ~]# cat keystonerc_admin
export OS_USERNAME=admin
export OS_TENANT_NAME=admin
export OS_PASSWORD=77f0f98899ce4cda
export OS_AUTH_URL=http://10.20.0.201:5000/v2.0/
export PS1='[\u@\h \W(keystone_admin)]\$ ']\$ '
在这里可以看到登录用户名和密码
4.登录dashboard+创建网络
登陆以后删除默认的网络和路由,创建我们自己的网络
并添加路由,最后形成的网络拓扑如下:
然后创建虚拟机,创建失败,报如下错误:
此时可以去查看日志,创建虚拟机失败一定与nova有关,可以去以下几个日志去查看究竟是哪一个出了错
[root@localhost ~]# vi /var/log/nova/
api.log cert.log compute.log conductor.log consoleauth.log nova-manage.log scheduler.log
我发现在我的scheduler.log 里有error,内容如下
这个错的最后一句是关键:raise e\n’, u”libvirtError: internal error no supported architecture for os type ‘hvm’\n”],经查证,packstack默认用的hypervisor类型是KVM,物理机搭建使用这个,而我们是用的虚拟机,所以要将这个参数改为qemu
[root@localhost ~]# vi /etc/nova/nova.conf
...
#virt_type=kvm
virt_type=qemu
...
[root@localhost ~]# service openstack-nova-compute restart
[root@localhost ~]# service openstack-nova-scheduler restart
现在启动云主机成功
然后为其绑定浮动ip,并添加安全组规则
接下来再ping虚拟机vm1的浮动ip172.16.0.3,发现ping不通,就连router01的网关172.16.0.2dou ping不通,我想起来还没有为eth1添加网桥
5.添加网桥,修改网卡配置
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
ONBOOT=yes
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
TYPE=OVSBridge
DEVICETYPE=ovs
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.16.0.201
NETMASK=25.255.255.0
还要修改一个配置文件,默认的type_drivers=vxlan
[root@localhost ~]# vi /etc/neutron/plugin.ini
[ml2_type_vlan]
network_vlan_ranges = physnet1
bridge_mappings = physnet1:br-ex
一定要重启网络和neutron相关服务
[root@localhost ~]# service network restart
[root@localhost ~]# service neutron-openvswitch-agent restart
[root@localhost ~]# service neutron-metadata-agent restart
[root@localhost ~]# service neutron-dhcp-agent restart
[root@localhost ~]# service neutron-l3-agent restart
再ping vm 的浮动ip,能Ping通了,而且可以ssh连接虚拟