第一步:获取对应版本的neutron-fwaas-dashboard源码
github地址:https://github.com/openstack/neutron-fwaas-dashboard/tree/master
neutron-fwaas-dashboard有多个分支,我们下载与openstack版本对应的分支,这里下载的分支为stable/queens:
克隆命令:
git clone -b stable/queens https://github.com/openstack/neutron-fwaas-dashboard.git
我克隆下载的代码在根目录下,后面获取相关的文件也从该目录获取。
第二步:安装 neutron-fwaas-dashboard
进入源码执行如下命令:
cd neutron-fwaas-dashboard
sudo pip install .
#开启horzion上的防火墙插件
cp neutron_fwaas_dashboard/enabled/_70*_*.py /opt/stack/horizon/openstack_dashboard/local/enabled/
注意:
上面路径: /opt/stack/horizon/openstack_dashboard/local/enabled/可能因为系统的不同而不同,
建议提前搜寻一下相关路径:
find / -name enabled | grep "openstack_dashboard/local/enabled"
我的是ubuntu版本的,路径在:/usr/share/openstack-dashboard/openstack_dashboard/local/enabled
第三步:在horizon中开启防火墙配置
打开horizon的local_settings文件:/etc/openstack-dashboard/local_settings
开启下面两个配置:
OPENSTACK_NEUTRON_NETWORK = {
'enable_router': True,
'enable_quotas': True,
'enable_ipv6': True,
'enable_distributed_router': False,
'enable_ha_router': False,
'enable_lb': True,
'enable_firewall': True, #######第一:开启防火墙#######
'enable_vpn': True,
'enable_fip_topology_check': True,
}
#取消POLICY_FILES的注释,增加neutron-fwaas字段
POLICY_FILES_PATH = '/etc/openstack-dashboard'
POLICY_FILES = {
'identity': 'keystone_policy.json',
'compute': 'nova_policy.json',
'volume': 'cinder_policy.json',
'image': 'glance_policy.json',
'orchestration': 'heat_policy.json',
'network': 'neutron_policy.json',
'telemetry': 'ceilometer_policy.json',
'neutron-fwaas': 'neutron-fwaas-policy.json'
}
拷贝neutron-fwaas-policy.json文件到POLICY_FILES_PATH = '/etc/openstack-dashboard'路径下:
cp /neutron-fwaas-dashboard/etc/neutron-fwaas-policy.json /etc/openstack-dashboard/
第四步:执行
$cd /neutron-fwaas-dashboard
$./manage.py compilemessages
$ DJANGO_SETTINGS_MODULE=openstack_dashboard.settings python manage.py collectstatic --noinput
$ DJANGO_SETTINGS_MODULE=openstack_dashboard.settings python manage.py compress --force
$sudo service apache2 restart
注意:
我在执行./manage.py compilemessages时报错“ImportError: No module named django_nose”,针对这个问题执行如下命令即可解决,然后继续安装
$pip install django-nose
验证:
打开登录界面,如下:
提示一下: 上面的一切操作前提是:后台已经配置好防火墙服务,即使摆脱页面也依旧可以通过cli进行防火墙相关操作。