任务一 熟悉OpenStack图形界面操作
1.1 Horizon项目
•各OpenStack服务的图形界面都是由Horizon提供的。
•Horizon提供基于Web的模块化用户界面。
•Horizon为云管理员提供一个整体的视图。
•Horizon为终端用户提供一个自主服务的门户。
•Horizon由云管理员进行管理与控制,云管理员可以通过Web界面管理OpenStack平台上的资源。
1.2 Horizon与Django****框架
•Horizon是一个基于Django框架的Web应用。
•Django基于MVC(模型---视图---控制器)模式设计实现。
模型 ( Models ) 文件 ------model.py ,使用 Python 类来描述数据表及其操作 。
视图 ( Views ) 文件 ------views.py ,包含页面的业务逻辑,该文件中的函数被称为视图。
Urls 文件 ------urls.py ,指出使用 URL 地址访问时需要调用的视图。
模板 ( Templates ) 文件 ------HTML 网页,定义 HTML 模板。
•Horizon秉承Django的设计理念,注重可重用性,致力于开发可扩展性的面板框架。
1.3•Horizon****功能架构
1.4 项目与用户
• 项目是OpenStack服务调度的基本单元。
• 用户 又称云用户,是指使用 OpenStack 云服务的个人、系统或服务的账户名称 。
• 可以 将用户分配给特定的项目,用户作为该项目的成员就拥有该项目的权限,而权限由用户的角色决定。
• 一个项目可以有多个用户(项目成员),一个用户可以操作和管理多个项目。
• OpenStack 用户要访问云资源,必须通过项目发出请求,项目中必须包括相关的用户 。
• 用户 用于身份认证,项目用于资源管理,而两者又是相互关联的。
1.5 自定义仪表板和面板
• Horizon负责OpenStack管理的统一Web界面 , 其源代码分布在两个位置 。
Ø / usr /lib/python2.7/site-packages/horizon :存放最 基本的、可以共享的类、表格和模板等。
Ø / usr /share/ openstack -dashboard :存放与 界面有直接关系、更加具体的类、表格和模板等,这些文件可以由用户修改以实现界面定制。
• Horizon 提供 4 个仪表板,对应着图形界面的一级 节点,其中 每个仪表板目录中又定义其下级节点(面板)。
Ø admin (管理员 )
Ø identity (身份管理 )
Ø project (项目 )
Ø settings (设置 )
任务二 创建和操作虚拟机实例
2.1 •创建虚拟机实例的前提条件
• 实例 的 源 ------ 镜像、实例快照 (镜像快照) 、卷或卷快照。
• 实例类型 ------ 实例 规格,表示一组特定的虚拟 资源。
• 密钥对 ------ 虚拟机 实例启动时注入镜像中的 SSH 凭据。
• 安全组 ------ 一 组特定防火墙规则的集合 。
• 网络 ------ 虚拟 网络,在云中为虚拟机实例提供网络通信,使实例能够访问内部网络和外部网络 。
2.2 •虚拟机实例与镜像
• 实例是在云中的物理节点上运行的虚拟机个体。
• 镜像 是由特定的一系列文件按照规定格式制作,便于用户下载和使用的单一文件 。
• 创建虚拟机实例所用的镜像是一个完整的操作系统。
• 镜像 包括一个持有可启动操作系统的虚拟磁盘 。
• 实例 运行过程中的任何改变都不会影响其基础镜像 ,基础 镜像是只读的。
任务三 实现虚拟机与外部网络的通信
3.1 •OpenStack****的虚拟网络
• OpenStack 的网络 服务为 虚拟机实例提供网络 连接。
• Neutron 为整个 OpenStack 环境提供软件定义网 络( SD N )支持。
• 开放式虚拟交换机( OVS ) 成为 OpenStack 部署中非常受欢迎的虚拟交换机 。
• 开放式 虚拟网络 ( OVN )增加 了对虚拟网络的原生支持 ,提高 OVS 在实际应用环境中的性能和规模 。
• 只要 能够运行 OVS ,就可以运行 OVN ,从 OVS 升级到 OVN 非常容易 。
• 典型的 Neutron 虚拟网络包括外部网络、内部网络和路由器 。
3.2 •浮动IP地址
• 私有地址是由 DHCP 服务器自动分配给虚拟机实例网络接口的 IP 地址 。
• 浮动 IP 地址是 由 Neutron 组件提供的 服务。
• 将数据包发送到分配有浮动 IP 地址的网络接口的工作由 Neutron 负责。
• 分配 有浮动 IP 地址的实例能够通过浮动 IP 地址从外部网络被访问。
• 要从外部网络中的其他计算机访问实例,需为实例分配浮动 IP 地址。
3.3 •将OpenStack主机网卡添加到br-ex****网桥上
(1)将ens33网卡的配置文件复制一份到ifcfg-br-ex接口配置文件中。
(2)使用文本编辑器修改br-ex网桥的配置文件,其中关键是要将TYPE的值修改为OVSBridge,将DEVICETYPE的值设为ovs,将NAME和DEVICE的值都改为br-ex。
(3)使用文本编辑器修改ens33网卡的配置文件,其中关键是将TYPE值修改为OVSPort。
(4)重启network服务使上述修改生效。
★ ★外部网桥br-ex获得原ens33网卡的IP配置,而ens33网卡作为该网桥上的一个端口后,可以没有IP地址。
3.4 在Linux计算机上通过SSH访问虚拟机实例
• 测试 SSH 密码 登录
[root@node-a ~]# ssh cirros@192.168.199.87
The authenticity of host '192.168.199.87 (192.168.199.87)' can't be established.
ECDSA key fingerprint is SHA256:f/rI4UsneTZD/1B4S3GmxsbMJRVa/HK7hsvuHipExAg.
ECDSA key fingerprint is MD5:0d:35:2f:03:30:26:f3:6b:6a:59:52:c0:d9:16:83:5c.
Are you sure you want to continue connecting (yes/no)? yes #加入可信主机列表中
Warning: Permanently added '192.168.199.87' (ECDSA) to the list of known hosts.
cirros@192.168.199.87's password: #默认密码为gocubsgo
$ date #登录成功后测试
Fri Aug 28 05:01:20 UTC 2020
$ exit #退出登录
Connection to 192.168.199.87 closed.
3.5 •在Linux计算机上通过SSH访问虚拟机实例
• SSH 证书 登录
Ø 基本用法
ssh -i 私钥文件 <用户名>@<实例IP地址>
Ø 示范
[root@node-a ~]# cp Downloads/demo-key.pem ~/.ssh
[root@node-a ~]# ssh -i ~/.ssh/demo-key.pem cirros@192.168.199.87
$ date #免密码登录成功后测试
Fri Aug 28 05:05:55 UTC 2020
$ exit
Connection to 192.168.199.87 closed.