最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

horizon部署linux桌面,7

IT圈 admin 24浏览 0评论

horizon部署linux桌面,7

[TOC]

## A-功能介绍

Dashboard(horizon)是一个web接口,使得云平台管理员以及用户可以管理不同的Openstack资源以及服务。

它是使用python django框架开发的,它没有自己的数据库,web页面展示,全程依赖调用其他服务的api。

## B-服务部署

[官方部署文档](.html#install-and-configure-components)

官方是将horizon装在控制节点中,但我们这里讲horizon装在计算节点中,因为horizon没有数据库,装在哪里都可以

### a-安装软件

```sh

yum install openstack-dashboard python-memcached -y

```

### b-修改配置

**方法1:按官方修改**

[官方链接](.html#install-and-configure-components)

编辑文件/etc/openstack-dashboard/local_settings并完成如下动作:

* 在controller节点上配置仪表盘以使用 OpenStack 服务:

~~~

OPENSTACK_HOST = "controller"

~~~

* 允许所有主机访问仪表板:

~~~

ALLOWED_HOSTS = ['*', ]

~~~

* 配置memcached会话存储服务:

~~~

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

CACHES = {

'default': {

'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',

'LOCATION': 'controller:11211',

}

}

~~~

* 启用第3版认证API:

~~~

OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST

~~~

* 启用对域的支持

~~~

OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True

~~~

* 配置API版本:

~~~

OPENSTACK_API_VERSIONS = {

"identity": 3,

"image": 2,

"volume": 2,

}

~~~

* 通过仪表盘创建用户时的默认域配置为default:

~~~

OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "default"

~~~

* 通过仪表盘创建的用户默认角色配置为user:

~~~

OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"

~~~

* 如果您选择网络参数1,禁用支持3层网络服务:

~~~

OPENSTACK_NEUTRON_NETWORK = {

...

'enable_router': False,

'enable_quotas': False,

'enable_distributed_router': False,

'enable_ha_router': False,

'enable_lb': False,

'enable_firewall': False,

'enable_vpn': False,

'enable_fip_topology_check': False,

}

~~~

* 可以选择性地配置时区:

~~~

TIME_ZONE = "TIME_ZONE"

~~~

**方法2:上传已改好的配置**

由于配置文件行数特别多,总共700多行,除去注释和空行还有200多行,因此只将清爽配置贴在最后

### c-修改httpd配置

编辑`/etc/httpd/conf.d/openstack-dashboard.conf`文件,在`WSGISocketPrefix run/wsgi`下面加一行代码: `WSGIApplicationGroup %{GLOBAL} `

```sh

sed -i '/WSGISocketPrefix/a WSGIApplicationGroup %{GLOBAL}' \

/etc/httpd/conf.d/openstack-dashboard.conf

```

### d-启动

```sh

systemctl start httpd.service memcached.service

```

### e-浏览器访问

使用浏览器 ,如果现实登录界面则正确

* 域:default

* 用户名:admin

* 密码:ADMIN_PASS

## 附件:配置文件

```py

[root@controller ~]# egrep -v "#|^$" local_settings

import os

from django.utils.translation import ugettext_lazy as _

from openstack_dashboard import exceptions

from openstack_dashboard.settings import HORIZON_CONFIG

DEBUG = False

TEMPLATE_DEBUG = DEBUG

WEBROOT = '/dashboard/'

ALLOWED_HOSTS = ['*', ]

OPENSTACK_API_VERSIONS = {

"identity": 3,

"image": 2,

"volume": 2,

"compute": 2,

}

OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True

OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'default'

LOCAL_PATH = '/tmp'

SECRET_KEY='65941f1393ea1c265ad7'

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

CACHES = {

'default': {

'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',

'LOCATION': 'controller:11211',

},

}

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

OPENSTACK_HOST = "controller"

OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST

OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"

OPENSTACK_KEYSTONE_BACKEND = {

'name': 'native',

'can_edit_user': True,

'can_edit_group': True,

'can_edit_project': True,

'can_edit_domain': True,

'can_edit_role': True,

}

OPENSTACK_HYPERVISOR_FEATURES = {

'can_set_mount_point': False,

'can_set_password': False,

'requires_keypair': False,

}

OPENSTACK_CINDER_FEATURES = {

'enable_backup': False,

}

OPENSTACK_NEUTRON_NETWORK = {

'enable_router': False,

'enable_quotas': False,

'enable_ipv6': False,

'enable_distributed_router': False,

'enable_ha_router': False,

'enable_lb': False,

'enable_firewall': False,

'enable_vpn': False,

'enable_fip_topology_check': False,

'default_ipv4_subnet_pool_label': None,

'default_ipv6_subnet_pool_label': None,

'profile_support': None,

'supported_provider_types': ['*'],

'supported_vnic_types': ['*'],

}

OPENSTACK_HEAT_STACK = {

'enable_user_pass': True,

}

IMAGE_CUSTOM_PROPERTY_TITLES = {

"architecture": _("Architecture"),

"kernel_id": _("Kernel ID"),

"ramdisk_id": _("Ramdisk ID"),

"image_state": _("Euca2ools state"),

"project_id": _("Project ID"),

"image_type": _("Image Type"),

}

IMAGE_RESERVED_CUSTOM_PROPERTIES = []

API_RESULT_LIMIT = 1000

API_RESULT_PAGE_SIZE = 20

SWIFT_FILE_TRANSFER_CHUNK_SIZE = 512 * 1024

DROPDOWN_MAX_ITEMS = 30

TIME_ZONE = "Asia/Shanghai"

POLICY_FILES_PATH = '/etc/openstack-dashboard'

LOGGING = {

'version': 1,

'disable_existing_loggers': False,

'handlers': {

'null': {

'level': 'DEBUG',

'class': 'logging.NullHandler',

},

'console': {

'level': 'INFO',

'class': 'logging.StreamHandler',

},

},

'loggers': {

'django.db.backends': {

'handlers': ['null'],

'propagate': False,

},

'requests': {

'handlers': ['null'],

'propagate': False,

},

'horizon': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'openstack_dashboard': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'novaclient': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'cinderclient': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'keystoneclient': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'glanceclient': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'neutronclient': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'heatclient': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'ceilometerclient': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'swiftclient': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'openstack_auth': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'nose.plugins.manager': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'django': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'iso8601': {

'handlers': ['null'],

'propagate': False,

},

'scss': {

'handlers': ['null'],

'propagate': False,

},

},

}

SECURITY_GROUP_RULES = {

'all_tcp': {

'name': _('All TCP'),

'ip_protocol': 'tcp',

'from_port': '1',

'to_port': '65535',

},

'all_udp': {

'name': _('All UDP'),

'ip_protocol': 'udp',

'from_port': '1',

'to_port': '65535',

},

'all_icmp': {

'name': _('All ICMP'),

'ip_protocol': 'icmp',

'from_port': '-1',

'to_port': '-1',

},

'ssh': {

'name': 'SSH',

'ip_protocol': 'tcp',

'from_port': '22',

'to_port': '22',

},

'smtp': {

'name': 'SMTP',

'ip_protocol': 'tcp',

'from_port': '25',

'to_port': '25',

},

'dns': {

'name': 'DNS',

'ip_protocol': 'tcp',

'from_port': '53',

'to_port': '53',

},

'http': {

'name': 'HTTP',

'ip_protocol': 'tcp',

'from_port': '80',

'to_port': '80',

},

'pop3': {

'name': 'POP3',

'ip_protocol': 'tcp',

'from_port': '110',

'to_port': '110',

},

'imap': {

'name': 'IMAP',

'ip_protocol': 'tcp',

'from_port': '143',

'to_port': '143',

},

'ldap': {

'name': 'LDAP',

'ip_protocol': 'tcp',

'from_port': '389',

'to_port': '389',

},

'https': {

'name': 'HTTPS',

'ip_protocol': 'tcp',

'from_port': '443',

'to_port': '443',

},

'smtps': {

'name': 'SMTPS',

'ip_protocol': 'tcp',

'from_port': '465',

'to_port': '465',

},

'imaps': {

'name': 'IMAPS',

'ip_protocol': 'tcp',

'from_port': '993',

'to_port': '993',

},

'pop3s': {

'name': 'POP3S',

'ip_protocol': 'tcp',

'from_port': '995',

'to_port': '995',

},

'ms_sql': {

'name': 'MS SQL',

'ip_protocol': 'tcp',

'from_port': '1433',

'to_port': '1433',

},

'mysql': {

'name': 'MYSQL',

'ip_protocol': 'tcp',

'from_port': '3306',

'to_port': '3306',

},

'rdp': {

'name': 'RDP',

'ip_protocol': 'tcp',

'from_port': '3389',

'to_port': '3389',

},

}

REST_API_REQUIRED_SETTINGS = ['OPENSTACK_HYPERVISOR_FEATURES',

'LAUNCH_INSTANCE_DEFAULTS']

```

horizon部署linux桌面,7

[TOC]

## A-功能介绍

Dashboard(horizon)是一个web接口,使得云平台管理员以及用户可以管理不同的Openstack资源以及服务。

它是使用python django框架开发的,它没有自己的数据库,web页面展示,全程依赖调用其他服务的api。

## B-服务部署

[官方部署文档](.html#install-and-configure-components)

官方是将horizon装在控制节点中,但我们这里讲horizon装在计算节点中,因为horizon没有数据库,装在哪里都可以

### a-安装软件

```sh

yum install openstack-dashboard python-memcached -y

```

### b-修改配置

**方法1:按官方修改**

[官方链接](.html#install-and-configure-components)

编辑文件/etc/openstack-dashboard/local_settings并完成如下动作:

* 在controller节点上配置仪表盘以使用 OpenStack 服务:

~~~

OPENSTACK_HOST = "controller"

~~~

* 允许所有主机访问仪表板:

~~~

ALLOWED_HOSTS = ['*', ]

~~~

* 配置memcached会话存储服务:

~~~

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

CACHES = {

'default': {

'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',

'LOCATION': 'controller:11211',

}

}

~~~

* 启用第3版认证API:

~~~

OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST

~~~

* 启用对域的支持

~~~

OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True

~~~

* 配置API版本:

~~~

OPENSTACK_API_VERSIONS = {

"identity": 3,

"image": 2,

"volume": 2,

}

~~~

* 通过仪表盘创建用户时的默认域配置为default:

~~~

OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "default"

~~~

* 通过仪表盘创建的用户默认角色配置为user:

~~~

OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"

~~~

* 如果您选择网络参数1,禁用支持3层网络服务:

~~~

OPENSTACK_NEUTRON_NETWORK = {

...

'enable_router': False,

'enable_quotas': False,

'enable_distributed_router': False,

'enable_ha_router': False,

'enable_lb': False,

'enable_firewall': False,

'enable_vpn': False,

'enable_fip_topology_check': False,

}

~~~

* 可以选择性地配置时区:

~~~

TIME_ZONE = "TIME_ZONE"

~~~

**方法2:上传已改好的配置**

由于配置文件行数特别多,总共700多行,除去注释和空行还有200多行,因此只将清爽配置贴在最后

### c-修改httpd配置

编辑`/etc/httpd/conf.d/openstack-dashboard.conf`文件,在`WSGISocketPrefix run/wsgi`下面加一行代码: `WSGIApplicationGroup %{GLOBAL} `

```sh

sed -i '/WSGISocketPrefix/a WSGIApplicationGroup %{GLOBAL}' \

/etc/httpd/conf.d/openstack-dashboard.conf

```

### d-启动

```sh

systemctl start httpd.service memcached.service

```

### e-浏览器访问

使用浏览器 ,如果现实登录界面则正确

* 域:default

* 用户名:admin

* 密码:ADMIN_PASS

## 附件:配置文件

```py

[root@controller ~]# egrep -v "#|^$" local_settings

import os

from django.utils.translation import ugettext_lazy as _

from openstack_dashboard import exceptions

from openstack_dashboard.settings import HORIZON_CONFIG

DEBUG = False

TEMPLATE_DEBUG = DEBUG

WEBROOT = '/dashboard/'

ALLOWED_HOSTS = ['*', ]

OPENSTACK_API_VERSIONS = {

"identity": 3,

"image": 2,

"volume": 2,

"compute": 2,

}

OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True

OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'default'

LOCAL_PATH = '/tmp'

SECRET_KEY='65941f1393ea1c265ad7'

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

CACHES = {

'default': {

'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',

'LOCATION': 'controller:11211',

},

}

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

OPENSTACK_HOST = "controller"

OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST

OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"

OPENSTACK_KEYSTONE_BACKEND = {

'name': 'native',

'can_edit_user': True,

'can_edit_group': True,

'can_edit_project': True,

'can_edit_domain': True,

'can_edit_role': True,

}

OPENSTACK_HYPERVISOR_FEATURES = {

'can_set_mount_point': False,

'can_set_password': False,

'requires_keypair': False,

}

OPENSTACK_CINDER_FEATURES = {

'enable_backup': False,

}

OPENSTACK_NEUTRON_NETWORK = {

'enable_router': False,

'enable_quotas': False,

'enable_ipv6': False,

'enable_distributed_router': False,

'enable_ha_router': False,

'enable_lb': False,

'enable_firewall': False,

'enable_vpn': False,

'enable_fip_topology_check': False,

'default_ipv4_subnet_pool_label': None,

'default_ipv6_subnet_pool_label': None,

'profile_support': None,

'supported_provider_types': ['*'],

'supported_vnic_types': ['*'],

}

OPENSTACK_HEAT_STACK = {

'enable_user_pass': True,

}

IMAGE_CUSTOM_PROPERTY_TITLES = {

"architecture": _("Architecture"),

"kernel_id": _("Kernel ID"),

"ramdisk_id": _("Ramdisk ID"),

"image_state": _("Euca2ools state"),

"project_id": _("Project ID"),

"image_type": _("Image Type"),

}

IMAGE_RESERVED_CUSTOM_PROPERTIES = []

API_RESULT_LIMIT = 1000

API_RESULT_PAGE_SIZE = 20

SWIFT_FILE_TRANSFER_CHUNK_SIZE = 512 * 1024

DROPDOWN_MAX_ITEMS = 30

TIME_ZONE = "Asia/Shanghai"

POLICY_FILES_PATH = '/etc/openstack-dashboard'

LOGGING = {

'version': 1,

'disable_existing_loggers': False,

'handlers': {

'null': {

'level': 'DEBUG',

'class': 'logging.NullHandler',

},

'console': {

'level': 'INFO',

'class': 'logging.StreamHandler',

},

},

'loggers': {

'django.db.backends': {

'handlers': ['null'],

'propagate': False,

},

'requests': {

'handlers': ['null'],

'propagate': False,

},

'horizon': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'openstack_dashboard': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'novaclient': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'cinderclient': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'keystoneclient': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'glanceclient': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'neutronclient': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'heatclient': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'ceilometerclient': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'swiftclient': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'openstack_auth': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'nose.plugins.manager': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'django': {

'handlers': ['console'],

'level': 'DEBUG',

'propagate': False,

},

'iso8601': {

'handlers': ['null'],

'propagate': False,

},

'scss': {

'handlers': ['null'],

'propagate': False,

},

},

}

SECURITY_GROUP_RULES = {

'all_tcp': {

'name': _('All TCP'),

'ip_protocol': 'tcp',

'from_port': '1',

'to_port': '65535',

},

'all_udp': {

'name': _('All UDP'),

'ip_protocol': 'udp',

'from_port': '1',

'to_port': '65535',

},

'all_icmp': {

'name': _('All ICMP'),

'ip_protocol': 'icmp',

'from_port': '-1',

'to_port': '-1',

},

'ssh': {

'name': 'SSH',

'ip_protocol': 'tcp',

'from_port': '22',

'to_port': '22',

},

'smtp': {

'name': 'SMTP',

'ip_protocol': 'tcp',

'from_port': '25',

'to_port': '25',

},

'dns': {

'name': 'DNS',

'ip_protocol': 'tcp',

'from_port': '53',

'to_port': '53',

},

'http': {

'name': 'HTTP',

'ip_protocol': 'tcp',

'from_port': '80',

'to_port': '80',

},

'pop3': {

'name': 'POP3',

'ip_protocol': 'tcp',

'from_port': '110',

'to_port': '110',

},

'imap': {

'name': 'IMAP',

'ip_protocol': 'tcp',

'from_port': '143',

'to_port': '143',

},

'ldap': {

'name': 'LDAP',

'ip_protocol': 'tcp',

'from_port': '389',

'to_port': '389',

},

'https': {

'name': 'HTTPS',

'ip_protocol': 'tcp',

'from_port': '443',

'to_port': '443',

},

'smtps': {

'name': 'SMTPS',

'ip_protocol': 'tcp',

'from_port': '465',

'to_port': '465',

},

'imaps': {

'name': 'IMAPS',

'ip_protocol': 'tcp',

'from_port': '993',

'to_port': '993',

},

'pop3s': {

'name': 'POP3S',

'ip_protocol': 'tcp',

'from_port': '995',

'to_port': '995',

},

'ms_sql': {

'name': 'MS SQL',

'ip_protocol': 'tcp',

'from_port': '1433',

'to_port': '1433',

},

'mysql': {

'name': 'MYSQL',

'ip_protocol': 'tcp',

'from_port': '3306',

'to_port': '3306',

},

'rdp': {

'name': 'RDP',

'ip_protocol': 'tcp',

'from_port': '3389',

'to_port': '3389',

},

}

REST_API_REQUIRED_SETTINGS = ['OPENSTACK_HYPERVISOR_FEATURES',

'LAUNCH_INSTANCE_DEFAULTS']

```

发布评论

评论列表 (0)

  1. 暂无评论