我这里用的是F版本的openstack,G版本的quantum,在整合过程中确实会有这样那样的问题
就像这个metadata就跟全用G版本的不太一样
如果都用G版本的话,那么在quantum的dhcp.ini和l3.ini 把metadata都设置成True
然后nova.conf里面的service_quantum_metadata设置成True之后应该就可以,我也没试过
在我这里出的问题是,169.254.169.254 404 not Found
也就是说这个IP是可以通的,网络上的配置没问题
关键是取数据的时候有问题
通过错误提示 Failed to get metadata for ip: 192.168.64.2
然后看代码,发现这个ip是不对的,这是我的宿主机的ip
实际上应该是虚机的ip,才发现有个地方不一样
if FLAGS.use_forwarded_for:
remote_address = req.headers.get('X-Forwarded-For', remote_address)
就是F版本是这样写的,跟G版本的nova api可能不一样
所以无法识别service_quantum_metadata这个参数,
但是还要有这个选项
直接设置成True之后,就可以用了
但是对这个参数还是不太了解,在F版本中到底在哪里设置才对呢
进一步跟进……
另外,网上有说需要创建一个没有gateway 的net
实际上有gateway的net也是可以成功的
而且没有gateway的net几乎没有意义,因为无法绑定浮动ip
在这里补充一点,如果metadata没有配好的话,那么创建虚机之后,虚机无法ping通物理机,物理机也无法ping通虚机
但是metadata如果能成功的话,那用namespace这种方式,虚机可以ping通物理机
还有和物理机在同一网段的其他物理机
但是物理机不能ping通虚机