このセクションは、VPNaaS のダッシュボードパネル追加について紹介します。
git からソースコードを取得します。
[root@controller ~]# git clone https://git.openstack.org//openstack/neutron-vpnaas-dashboard Cloning into 'neutron-vpnaas-dashboard'... remote: Counting objects: 1348, done. remote: Compressing objects: 100% (463/463), done. remote: Total 1348 (delta 710), reused 1208 (delta 600) Receiving objects: 100% (1348/1348), 468.10 KiB | 73.00 KiB/s, done. Resolving deltas: 100% (710/710), done. [root@controller ~]#
取得したソースコードのディレクトリへ移動します。
[root@controller ~]# cd neutron-vpnaas-dashboard/
pip install を実行します。
[root@controller neutron-vpnaas-dashboard]# python setup.py install running install [pbr] Writing ChangeLog [pbr] Generating ChangeLog [pbr] ChangeLog complete (0.0s) [pbr] Generating AUTHORS [pbr] AUTHORS complete (0.0s) running build running build_py creating build creating build/lib creating build/lib/neutron_vpnaas_dashboard copying neutron_vpnaas_dashboard/__init__.py -> build/lib/neutron_vpnaas_dashboard copying neutron_vpnaas_dashboard/version.py -> build/lib/neutron_vpnaas_dashboard creating build/lib/neutron_vpnaas_dashboard/test creating build/lib/neutron_vpnaas_dashboard/test/api_tests copying neutron_vpnaas_dashboard/test/api_tests/__init__.py -> build/lib/neutron_vpnaas_dashboard/test/api_tests copying neutron_vpnaas_dashboard/test/api_tests/test_vpnaas.py -> build/lib/neutron_vpnaas_dashboard/test/api_tests creating build/lib/neutron_vpnaas_dashboard/test/test_data copying neutron_vpnaas_dashboard/test/test_data/__init__.py -> build/lib/neutron_vpnaas_dashboard/test/test_data copying neutron_vpnaas_dashboard/test/test_data/utils.py -> build/lib/neutron_vpnaas_dashboard/test/test_data copying neutron_vpnaas_dashboard/test/test_data/vpnaas_data.py -> build/lib/neutron_vpnaas_dashboard/test/test_data creating build/lib/neutron_vpnaas_dashboard/dashboards creating build/lib/neutron_vpnaas_dashboard/dashboards/project creating build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/__init__.py -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/forms.py -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/panel.py -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/tables.py -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/tabs.py -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/tests.py -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/urls.py -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/views.py -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/workflows.py -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn copying neutron_vpnaas_dashboard/test/__init__.py -> build/lib/neutron_vpnaas_dashboard/test copying neutron_vpnaas_dashboard/test/helpers.py -> build/lib/neutron_vpnaas_dashboard/test copying neutron_vpnaas_dashboard/test/settings.py -> build/lib/neutron_vpnaas_dashboard/test creating build/lib/neutron_vpnaas_dashboard/api copying neutron_vpnaas_dashboard/api/__init__.py -> build/lib/neutron_vpnaas_dashboard/api copying neutron_vpnaas_dashboard/api/vpn.py -> build/lib/neutron_vpnaas_dashboard/api copying neutron_vpnaas_dashboard/dashboards/__init__.py -> build/lib/neutron_vpnaas_dashboard/dashboards creating build/lib/neutron_vpnaas_dashboard/enabled copying neutron_vpnaas_dashboard/enabled/_7100_project_vpn_panel.py -> build/lib/neutron_vpnaas_dashboard/enabled copying neutron_vpnaas_dashboard/enabled/__init__.py -> build/lib/neutron_vpnaas_dashboard/enabled copying neutron_vpnaas_dashboard/dashboards/project/__init__.py -> build/lib/neutron_vpnaas_dashboard/dashboards/project running egg_info creating neutron_vpnaas_dashboard.egg-info writing requirements to neutron_vpnaas_dashboard.egg-info/requires.txt writing neutron_vpnaas_dashboard.egg-info/PKG-INFO writing top-level names to neutron_vpnaas_dashboard.egg-info/top_level.txt writing dependency_links to neutron_vpnaas_dashboard.egg-info/dependency_links.txt writing pbr to neutron_vpnaas_dashboard.egg-info/pbr.json [pbr] Processing SOURCES.txt writing manifest file 'neutron_vpnaas_dashboard.egg-info/SOURCES.txt' [pbr] In git context, generating filelist from git warning: no previously-included files matching '*.pyc' found anywhere in distribution writing manifest file 'neutron_vpnaas_dashboard.egg-info/SOURCES.txt' creating build/lib/neutron_vpnaas_dashboard/locale copying neutron_vpnaas_dashboard/locale/.placeholder -> build/lib/neutron_vpnaas_dashboard/locale creating build/lib/neutron_vpnaas_dashboard/locale/de creating build/lib/neutron_vpnaas_dashboard/locale/de/LC_MESSAGES copying neutron_vpnaas_dashboard/locale/de/LC_MESSAGES/django.po -> build/lib/neutron_vpnaas_dashboard/locale/de/LC_MESSAGES creating build/lib/neutron_vpnaas_dashboard/locale/en_GB creating build/lib/neutron_vpnaas_dashboard/locale/en_GB/LC_MESSAGES copying neutron_vpnaas_dashboard/locale/en_GB/LC_MESSAGES/django.po -> build/lib/neutron_vpnaas_dashboard/locale/en_GB/LC_MESSAGES creating build/lib/neutron_vpnaas_dashboard/locale/id creating build/lib/neutron_vpnaas_dashboard/locale/id/LC_MESSAGES copying neutron_vpnaas_dashboard/locale/id/LC_MESSAGES/django.po -> build/lib/neutron_vpnaas_dashboard/locale/id/LC_MESSAGES creating build/lib/neutron_vpnaas_dashboard/locale/ja creating build/lib/neutron_vpnaas_dashboard/locale/ja/LC_MESSAGES copying neutron_vpnaas_dashboard/locale/ja/LC_MESSAGES/django.po -> build/lib/neutron_vpnaas_dashboard/locale/ja/LC_MESSAGES creating build/lib/neutron_vpnaas_dashboard/locale/ko_KR creating build/lib/neutron_vpnaas_dashboard/locale/ko_KR/LC_MESSAGES copying neutron_vpnaas_dashboard/locale/ko_KR/LC_MESSAGES/django.po -> build/lib/neutron_vpnaas_dashboard/locale/ko_KR/LC_MESSAGES creating build/lib/neutron_vpnaas_dashboard/locale/pt_BR creating build/lib/neutron_vpnaas_dashboard/locale/pt_BR/LC_MESSAGES copying neutron_vpnaas_dashboard/locale/pt_BR/LC_MESSAGES/django.po -> build/lib/neutron_vpnaas_dashboard/locale/pt_BR/LC_MESSAGES creating build/lib/neutron_vpnaas_dashboard/locale/tr_TR creating build/lib/neutron_vpnaas_dashboard/locale/tr_TR/LC_MESSAGES copying neutron_vpnaas_dashboard/locale/tr_TR/LC_MESSAGES/django.po -> build/lib/neutron_vpnaas_dashboard/locale/tr_TR/LC_MESSAGES creating build/lib/neutron_vpnaas_dashboard/locale/zh_CN creating build/lib/neutron_vpnaas_dashboard/locale/zh_CN/LC_MESSAGES copying neutron_vpnaas_dashboard/locale/zh_CN/LC_MESSAGES/django.po -> build/lib/neutron_vpnaas_dashboard/locale/zh_CN/LC_MESSAGES creating build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates creating build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/_add_endpoint_group_help.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/_add_ike_policy_help.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/_add_ipsec_policy_help.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/_add_vpn_service_help.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/_endpointgroup_details.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/_ikepolicy_details.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/_ipsecpolicy_details.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/_ipsecsiteconnection_details.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/_update_endpointgroup.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/_update_ikepolicy.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/_update_ipsecpolicy.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/_update_ipsecsiteconnection.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/_update_vpnservice.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/_vpn_ips.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/_vpnservice_details.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/index.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/update_endpointgroup.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/update_ikepolicy.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/update_ipsecpolicy.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/update_ipsecsiteconnection.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn copying neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn/update_vpnservice.html -> build/lib/neutron_vpnaas_dashboard/dashboards/project/vpn/templates/vpn running install_lib running install_egg_info removing '/usr/lib/python2.7/site-packages/neutron_vpnaas_dashboard-1.4.1.dev10-py2.7.egg-info' (and everything under it) Copying neutron_vpnaas_dashboard.egg-info to /usr/lib/python2.7/site-packages/neutron_vpnaas_dashboard-1.4.1.dev10-py2.7.egg-info running install_scripts [root@controller neutron-vpnaas-dashboard]#
horizonプラグインを有効にします。
[root@controller neutron-vpnaas-dashboard]# cp -rp neutron_vpnaas_dashboard/enabled/_7100_project_vpn_panel.py /usr/share/openstack-dashboard/openstack_dashboard/local/enabled/_7100_project_vpn_panel.py
[root@controller neutron-vpnaas-dashboard]#
openstack ダッシュボードがインストールされているディレクトリへ移動します。
[root@controller neutron_vpnaas_dashboard]# cd /usr/share/openstack-dashboard/ [root@controller openstack-dashboard]#
Neutron VPNaaSダッシュボードのメッセージカタログをコンパイルします。
[root@controller openstack-dashboard]# ./manage.py compilemessages
[root@controller openstack-dashboard]#
Djangoの更新コマンドを実行します(使用している場合)。
[root@controller openstack-dashboard]# DJANGO_SETTINGS_MODULE=openstack_dashboard.settings python manage.py collectstatic --noinput 0 static files copied to '/usr/share/openstack-dashboard/static', 2150 unmodified. [root@controller openstack-dashboard]#
[root@controller openstack-dashboard]# DJANGO_SETTINGS_MODULE=openstack_dashboard.settings python manage.py compress --force Found 'compress' tags in: /usr/share/openstack-dashboard/openstack_dashboard/templates/serial_console.html /usr/share/openstack-dashboard/openstack_dashboard/templates/horizon/_conf.html /usr/share/openstack-dashboard/openstack_dashboard/templates/_stylesheets.html /usr/share/openstack-dashboard/openstack_dashboard/templates/horizon/_scripts.html Compressing... done Compressed 7 block(s) from 4 template(s) for 2 context(s). [root@controller openstack-dashboard]#
httpd サービスを再起動し、新しいパネルを有効にします。
[root@controller openstack-dashboard]# systemctl restart httpd
[root@controller openstack-dashboard]#
local_settings.py の OPENSTACK_NEUTRON_NETWORK に ‘enable_VPNaaS’: True, が登録されていることを確認します。
[root@controller openstack-dashboard]# vi openstack_dashboard/local/local_settings.py OPENSTACK_NEUTRON_NETWORK = { 'enable_router': True, 'enable_quotas': True, 'enable_ipv6': True, 'enable_distributed_router': False, 'enable_ha_router': False, 'enable_fip_topology_check': True, 'enable_lb': True, 'enable_VPNaaS': True,