好久没用neutron了,以前调通过,现在用出现了很多问题
首先是由于我们以前产品用的是F版本openstack开发
大家知道这个版本有多老了,根本装不上neutron
这里还要用一下万能的virtualenv来安装
然后启动neutron都正常
也可以创建net router等等
但是创建虚机无法获取ip
以前遇到过这个问题,当时是因为state path路径无法使用导致的
但这次这个问题可不是这样
我发现dnsmasq无法正常启动
原因是一个虚拟tap无法找到
而这个虚拟tap正是$state_path/dhcp/interface里面
所要用到的
然后我就用tunctl -t name -u root 添加了一下
发现dnsmasq可以正常启动了
目测应该没啥问题了
还有一条比较重要
在neutron-dhcp中可能有一条起不来,
ip netns exec qdhcp-f448c671-409d-4e49-a501-1d499dd023ac neutron-ns-metadata-proxy '--pid_file=/home/var/neutron/external/pids/f448c671-409d-4e49-a501-1d499dd023ac.pid --network_id=f448c671-409d-4e49-a501-1d499dd023ac --state_path=/home/var/neutron --metadata_port=80 --debug --use-syslog
就是类似于这个的命令,如果没启动的话必须手动启动一下
查看日志可知道是否正常
neutron metadata 也可能会出现点问题
neutron首先要通过自己的metadata-proxy然后
才能跳转到nova的metadata模块去
这里在nova的代码里可能要做一些修改
主要是看版本
有的用老版本的nova,用新版的neutron就可能出现这问题
/opt/stack/nova/nova/api/metadata/handler.py
下面添加一条FLAGS.use_forwarded_for=True
基本上可以实现了