[TOC]

## A-功能介绍

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

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

## B-服务部署

[官方部署文档](https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/horizon-install.html#install-and-configure-components)

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

### a-安装软件

```sh

yum install openstack-dashboard python-memcached -y

```

### b-修改配置

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

[官方链接](https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/horizon-install.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-浏览器访问

使用浏览器 http://10.0.0.31/dashboard ,如果现实登录界面则正确

* 域: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-horizon仪表盘服务部署相关推荐

  1. 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借助TopSelf、服务类】)【转载】...

    第十二节: 总结Quartz.Net几种部署模式(IIS.Exe.服务部署[借助TopSelf.服务类]) 一. IIS部署 比如在MVC框架中集成了Quartz.Net定时调度,此时该调度系统会随着 ...

  2. 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借助TopSelf、服务类】)

    一. IIS部署 比如在MVC框架中集成了Quartz.Net定时调度,此时该调度系统会随着MVC框架被挂在IIS下,IIS会进程回收,所以大部分开发都会遇到Quartz挂在IIS下一段时间不好用. ...

  3. 微服务开发及部署_基于 Kubernetes 的微服务部署即代码

    在基于 Kubernetes 的基础设施即代码一文中,我概要地介绍了基于 Kubernetes 的 .NET Core 微服务和 CI/CD 动手实践工作坊使用的基础设施是如何使用代码描述的,以及它的 ...

  4. linux系统部署静态网站,Linux笔记15 使用Apache服务部署静态网站。

    转一篇简洁的UIView动画编程方法 iOS  中的 UIView 动画编程其实还是很简单的,像 CSS3 一样,在给定的时间内完成状态连续性的变化呈现.比如背景色,Frame 大小,位移.翻转,特明 ...

  5. linux svn 自动部署,linux下svn安装和自动部署

    liunx系统下安装svn并自动更新到项目中 三部分:[1.安装 2.建立svn库 3.配置文件]html 查看是否安装了svn [svn –version] 若是安装了svn能够先进行卸载 [sud ...

  6. Linux在高铁项目的部署环境

    因为Linux和Java像开源.所以,现在在server基本上使用部署Linux平台即server.然后部署项目.在开发项目的过程中.程序员绝大多数仍采用最经典windows操作系统,尽管Linux也 ...

  7. 服务部署-Samba服务器

    关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 目录 1 基础知识 1.1 Samba 服务介绍 1987年,微软公司和英特尔公司共同制定了S ...

  8. 解析Linux 多应用程序docker自动部署脚本

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: Linux 多应用程序docker自动部署脚本可以结合jenkins分布式部署 Linux 多应用程序docker自动 ...

  9. 阿里云Kuberneters微服务部署案例

    3. 如何安装Docker Desktop for Mac 如何安装Docker Desktop for Mac 4. SpringCloud微服务应用 SpringCloud微服务应用 5. Kub ...

最新文章

  1. 谷歌 NAS + 目标检测:SpineNet论文详解
  2. 异常 Cannot resolve class or package
  3. 北斗导航 | RDSS短报文之数据解压缩算法:LZ77
  4. 把linux插足到域
  5. 练习mvc做一个知识库(二)
  6. 如何修改php的网页文件,php如何修改php文件内容
  7. intellij IDEA 关于src等某些文件夹不能右键新建class文件问题
  8. 计算机和口腔医学都不错的学校,人民日报推荐“各省”好大学,并非只有985/211,普本也有好大学...
  9. Linux中的文件查找技巧
  10. ELMAH--Using HTTP Modules and Handlers to Create Pluggable ASP.NET Components 77 out of 90 rated th
  11. Java instanceof用法
  12. python print sep,Python3.x语句print(1,2,3,sep=’:’)的输出结果为()。
  13. 深圳端午节骑行活动,欢迎大家参加
  14. windows打开属性就显示资源管理器重启(解决方法)
  15. windows server 2008r2下搭建***服务器
  16. Arduino颜色分类器
  17. java macd指标_Java 验证 MACD 底背离是否真的有效
  18. vue3 出现 Component inside <Transition> renders non-element root node that cannot be animated.
  19. 宇宙飞机(space plane)
  20. 向excel里面插入网络图片

热门文章

  1. MATLAB学习笔记:定积分与广义积分
  2. 嵌入式ARM系统实战开发教程下载
  3. 隐藏office web app打印和在word中打开等功能
  4. Linux 入门常用命令(ZT)
  5. 全球CRM管理软件排名
  6. 云计算机怎么打游戏,云即玩游戏盒怎么用 云即玩游戏盒电脑版使用教程
  7. CSS-ul制作表格,BFC,CSS书写顺序
  8. 年底必用!活动复盘“七步成诗法”
  9. 周涛:在人工智能时代,做一个警觉的乐观主义者
  10. 安装nagios+监控Linux客户端服务端+监控windows客户端