OpenStack 云平台流量监控插件tap-as-a-service(Taas)安装步骤(OpenStack queens版本,非devstack)

网上貌似没有任何相关的博客。。。。下面我来讲一讲怎么将devstack下的openstack插件Tap-as-a-service 集成到手工搭建的openstack上

首先,github上面放的都是devstack版本,这一点对openstack开发运维人员就很不友好,实际生产环境中上需要在多个节点上上同步安装插件的plugin与agent,为了将插件同步部署到我们的生产环境中,我读了一下taas的devstack的安装脚本,发现很多地方竟然有bug!幸好我之前做过两年的neutron开发,对插件加载机制比较熟悉,所以费劲了一波周折还是弄好了,

事先声明,本博客的所有技巧均为本人阅读devstack的安装脚本研究出来的,网上是到处都谷歌不到的!!!转载请表明出处!

0.TAAS所对应的的neutron版本要求

Taas的github位置在https://github.com/openstack/tap-as-a-service,是云端流量捕获插件,具体的分析可以看我之前的一篇文章

https://blog.csdn.net/m0_37313888/article/details/82693789

neutron>=12.0.0 
pbr!=2.1.0,>=2.0.0 # Apache-2.0
Babel!=2.4.0,>=2.3.4 # BSD

1.这里是安装的queens版本下的taas,具体怎么根据neutron版本查看openstack版本可以看我之前的另一篇文章

https://blog.csdn.net/m0_37313888/article/details/83352410

2.我的系统版本为Ubuntu16.04

3.别忘了更新pbr与Babel的版本

4.我在所有节点上的mechanism driver均为openvswitch,并且貌似这个插件只支持OVS!!!

5.type driver 必须是VXLAN,因为tap-as-a-service的底层流量的迁移是基于vxlan的

1.控制节点

还是从devstack的安装脚本看起,位置在https://github.com/openstack/tap-as-a-service/blob/master/devstack/plugin.sh

扫描二维码关注公众号,回复: 9543228 查看本文章

关于脚本的使用网上有很多文章,我看了看脚本,总结升华了一下,主要有一下几步:

1.安装taas的python包

在控制节点上

0.更新软件源

sudo apt-get update

1.安装git

sudo apt-get install git

2.下载taas并进入taas目录

cd ~
sudo git clone -b stable/queens https://github.com/openstack/tap-as-a-service
cd tap-as-a-service

如果你的openstack是rocky版本的就,其他版本的同理

sudo git clone -b stable/rocky https://github.com/openstack/tap-as-a-service

3.安装taas

python setup.py install

如果安装完了,会提示在/usr/local/lib/python2.7/dist-packages/tap_as_a_service-4.0.0.egg-info下面有taas的python模块包

不放心的可以执行下面这段

vi /usr/local/lib/python2.7/dist-packages/tap_as_a_service-3.0.1.dev2.egg-info/entry_points.txt

正常的应该涨这样

[neutron.agent.l2.extensions]
taas = neutron_taas.services.taas.agents.extensions.taas:TaasAgentExtension

[neutron.db.alembic_migrations]
tap-as-a-service = neutron_taas.db.migration:alembic_migration

[neutron.service_plugins]
taas = neutron_taas.services.taas.taas_plugin:TaasPlugin

[neutron_taas.taas.agent_drivers]
ovs = neutron_taas.services.taas.drivers.linux.ovs_taas:OvsTaasDriver

[neutronclient.extension]
tap_flow = neutron_taas.taas_client.tapflow
tap_service = neutron_taas.taas_client.tapservice

[tempest.test_plugins]
tap-as-a-service = neutron_taas.tests.tempest_plugin.plugin:NeutronTaaSPlugin

2.修改配置文件

1.在/etc/neutron/neutron.conf中

vi /etc/neutron/neutron_taas.conf

写入下面的内容

[service_providers]
service_provider = TAAS:TAAS:neutron_taas.services.taas.service_drivers.taas_rpc.TaasRpcDriver:default

如果上面的部分已经存在,那么只用这样写

[service_providers]
service_provider = (......原来已经存在的部分),TAAS:TAAS:neutron_taas.services.taas.service_drivers.taas_rpc.TaasRpcDriver:default

即在原来已经存在的部分后面加上逗号与正文。

2.修改/etc/neutron/neutron.conf

将[DEFAULT]中的

service_plugins = router(注意,这里表示与原本的内容)

改成

service_plugins  = router, taas

比如,我的在修改后成了这样

[DEFAULT]
##.............此处省略其他配置.................
service_plugins = router,taas

3.同步数据库

neutron-db-manage --subproject tap-as-a-service upgrade head

4.重启neutron-server

sudo service neutron-server restart

5.验证

# neutron tap-service-list
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.

#

就说明controller上安装成功

2.计算节点

1.安装taas的python包

在计算节点上

0.更新软件源

sudo apt-get update

1.安装git

sudo apt-get install git

2.下载taas并进入taas目录

cd ~
sudo git install https://github.com/openstack/tap-as-a-service
cd tap-as-a-service

3.安装taas

python setup.py install

如果安装完了,会提示在/usr/local/lib/python2.7/dist-packages/tap_as_a_service-4.0.0.egg-info下面有taas的python模块包

不放心的可以执行下面这段

vi /usr/local/lib/python2.7/dist-packages/tap_as_a_service-4.0.0.egg-info/entry_points.txt

正常的应该涨这样

[neutron.agent.l2.extensions]
taas = neutron_taas.services.taas.agents.extensions.taas:TaasAgentExtension

[neutron.db.alembic_migrations]
tap-as-a-service = neutron_taas.db.migration:alembic_migration

[neutron.service_plugins]
taas = neutron_taas.services.taas.taas_plugin:TaasPlugin

[neutron_taas.taas.agent_drivers]
ovs = neutron_taas.services.taas.drivers.linux.ovs_taas:OvsTaasDriver

[neutronclient.extension]
tap_flow = neutron_taas.taas_client.tapflow
tap_service = neutron_taas.taas_client.tapservice

[tempest.test_plugins]
tap-as-a-service = neutron_taas.tests.tempest_plugin.plugin:NeutronTaaSPlugin

[neutron.service_providers]
taas = neutron_taas.services.taas.service_drivers.taas_rpc.TaasRpcDriver

2.修改配置文件

这一步,devstack的安装脚本是错的,是错的!!!

devstack上的脚本将下面这段

[agent]
extensions = taas

加到了/etc/neutron/plugins/ml2/ml2_conf.ini上!!!

这步加上后,实际上openvswitch_agent在启动后是识别不了taas插件的!!!

解决方法

[agent]
extensions = taas

加到/etc/neutron/plugins/ml2/openvswitch_agent.ini中的[agent] section中

然后重启neutron-openvswitch-agent

service neutron-openvswitch-agent restart

查看日志,出现下面这行说明安装成功了

2018-10-27 21:52:45.538 2912 INFO neutron.agent.agent_extensions_manager [-] Loaded agent extensions: ['taas']

 

发布了48 篇原创文章 · 获赞 4 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/m0_37313888/article/details/83450245