【版本】
当前版本号v20230313
版本 | 修改说明 |
---|---|
v20230313 | 增加后台进程(服务)说明 |
v20230310 | 更新了常见问题 |
v20230308 | 更新系统信息截图 |
v20220304 | 修复Unable to create a new session key,Openstack的一个bug。参考https://chowdera.com/2021/07/20210721114330164T.html |
v20220301 | 学号后4位修改为学号后3位 |
v20220208 | 修正相关步骤 |
v20210310 | 修改步骤14,提醒注意}符号的结束位置 |
v20210309 | 修改步骤19,去掉重启memcached命令 |
v20210304 | 初始化版本 |
【实验名称】
云计算部署实战 Part 7 - 安装 Dashboard(Horizon)
【实验目的】
- 掌握搭建 Openstack Dashboard(Horizon) 组件
【实验环境】
- 内存:至少4G
- 硬盘:至少空余40G
- 操作系统: 64位 Windows系统。
【实验资源】
- FinalShell
- CentOS 7 系统镜像
- VirtualBox
- Openstack 源
【实验步骤】
- 使用 root 用户登录控制节点(Controller)。输出 Hostname ,确认所在节点是计算节点。
hostname
结果:
controller+你的学号后3位
注意以下步骤在控制节点(Controller)上执行!
安装 Dashboard
- 安装 Dashboard。
yum install -y openstack-dashboard
备份和编辑 Dashboard 配置文件 local_settings
- 备份Dashboard 配置文件,并进行编辑。
cp /etc/openstack-dashboard/local_settings /etc/openstack-dashboard/local_settings.bak
vim /etc/openstack-dashboard/local_settings
按下
esc
键,进入 Vim 的命令模式。启用 Vim 的显示行数。
:set nu
- 在
local_settings
配置文件中找到OPENSTACK_HOST
(约在158行),配置 Openstack 控制节点 主机名,注意替换为你的学号。
OPENSTACK_HOST = "controller+你的学号后3位"
- 在
local_settings
配置文件中找到ALLOWED_HOSTS
(约在30行),配置为允许所有主机访问 Dashboard。
ALLOWED_HOSTS = ['*', ]
- 在
local_settings
配置文件中找到CACHES
(约在135行),配置 memcached 会话存储服务。注意替换为你的学号。
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'controller+你的学号后3位:11211',
}
}
- 在
local_settings
配置文件中找到OPENSTACK_KEYSTONE_URL
(约在159行),启用第3版认证API。
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
- 在
local_settings
配置文件中找到OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT
(约在64行),去掉注释的#号,并启用对域的支持。
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
- 在
local_settings
配置文件中找到OPENSTACK_API_VERSIONS
(约在55行),配置API版本,去掉注释的#号。
OPENSTACK_API_VERSIONS = {
"data-processing": 1.1,
"identity": 3,
"image":2,
"volume": 2,
"compute": 2,
}
- 在
local_settings
配置文件中找到OPENSTACK_KEYSTONE_DEFAULT_DOMAIN
(约在72行),去掉注释的#号,通过仪表盘创建用户时的默认域配置为 default。
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'default'
- 在
local_settings
配置文件中找到OPENSTACK_KEYSTONE_DEFAULT_ROLE
(约在160行),通过仪表盘创建的用户默认角色配置为 user。
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"
- 在
local_settings
配置文件中找到OPENSTACK_NEUTRON_NETWORK
(约在260行),禁用支持3层网络服务。注意代码中的…表示省略了部分不需要代码。此段代码需要注意{}
符号的结束位置。
OPENSTACK_NEUTRON_NETWORK = {
'enable_router': False,
'enable_quotas': False,
'enable_ipv6': True,
'enable_distributed_router': False,
'enable_ha_router': False,
'enable_lb': False,
'enable_firewall': False,
'enable_vpn': False,
'enable_fip_topology_check': False,
#以下部分不需要修改,所以省略
- 在
local_settings
配置文件中找到TIME_ZONE
,修改时区为重庆时间。
TIME_ZONE = "Asia/Chongqing"
- 保存
local_settings
配置文件。
编辑 Apache 的配置文件
- 编辑 Apache 的配置文件。
vim /etc/httpd/conf.d/openstack-dashboard.conf
- 配置文件第1行加入以下代码。
WSGIApplicationGroup %{GLOBAL}
- 重启 Apache。
systemctl enable httpd.service
systemctl restart httpd.service
控制节点验证
打开宿主机浏览器,访问 http://10.0.0.11/dashboard。第一次访问加载时间会比较长。
使用在 Part3 创建的 admin 账户登录。
域(Domain):default 用户名:admin 密码:ADMIN_PASS
- 查看系统信息,各项服务是否启用
【思考和探索】
- 在使用vi或vim过程中,如何直接使用命令跳转到某行?
【常见错误解决办法】
1. 登录 Dashboard(Horizon) Web界面提示身份验证令牌已经过期
请使用 date -s
命令校准控制节点和计算节点的时间。或者参考Part1步骤55,通过宿主机同步时间来进行校准。
2. 登录 Dashboard(Horizon) 提示无法连接 Keystone
请检查计算节点下 /var/log/httpd/error_log 查看具体信息进行诊断。可能原因有:
- 计算节点访问不了控制节点的 Keystone Endpoint(端口5000和35357)
- 控制节点关于 Keystone 的 service 或 endpoint 配置重复或错误。
3. 登录 Dashboard(Horizon) 的页面没有显示域(Domain)
在local_settings
配置文件中找到OPENSTACK_KEYSTONE_DEFAULT_DOMAIN
(约在72行),去掉注释的#号,通过仪表盘创建用户时的默认域配置为 default。
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'default'
4. 使用 admin 账号登录 Dashboard(Horizon) 的页面显示“凭据无效”
- 首先检查 openstack 中关于 keystone 的endpoint是否有问题。
source /etc/keystone/admin-openrc
openstack endpoint list|grep -E 'ID|keystone'
可以看到类似以下结果(其中XXX是你学号后3位):
| Service Name | Service Type | Interface | URL |
| keystone | identity | admin | http://controllerXXX:35357/v3|
| keystone | identity | public | http://controllerXXX:5000/v3 |
| keystone | identity | internal | http://controllerXXX:5000/v3 |
- 检查是否能够查看 keystone 的 token,
source /etc/keystone/admin-openrc
openstack token issue
类似结果:
+------------+-------------------------------------------------+
| Field | Value |
+------------+-------------------------------------------------+
| expires | 2021-03-24T08:27:30.000000Z |
| id | gAAAAABgWunifA_DeD3mcJMerIIFLqXy7tajYuAmAVvM1pM |
| | 9yTeRaM5gXVDImlqbrivC1IwtpxtJR2Gq6EHMJ1iSZ10iRa |
| | dJzqZWYjoWLha-bSlbqb3y0Iyzo- |
| | liAC02tVsiv6ZPge4KXndvwxTk79_dkw-- |
| | zvXUlKmM5SY68n2eQZttddTcPSQ |
| project_id | 70667e2a19c640b796c9e2de6571a33c |
| user_id | 5b74a6845f264ae9912b78d4a32f5f73 |
+------------+-------------------------------------------------+
- 打开
local_settings
配置文件,在OPENSTACK_API_VERSIONS
(约在55行)检查配置。
vim /etc/openstack-dashboard/local_settings
配置如下:
OPENSTACK_API_VERSIONS = {
"data-processing": 1.1,
"identity": 3,
"image":2,
"volume": 2,
"compute": 2,
}