Documentation/training-labs
目录
关于训练实验室
Openstack 训练实验室是一系列脚本的集合,这些脚本几乎可以一键在您的计算机上安装一个可用的 OpenStack 集群。 它是遵循 OpenStack 安装指南,使用 VirtualBox/KVM 虚拟机 (VM) 创建集群的一种自动化、快速、可靠且可重现的方式,并且应该可以在大多数常见硬件(台式机/笔记本电脑)上开箱即用。
支持的平台
这些脚本支持 GNU/Linux、MacOS 和 Windows 作为宿主机操作系统 (OS)。 它们当前在 Ubuntu 16.04 长期支持 (LTS) 上安装 Newton 或 Ocata 版本的 OpenStack。
任何相当现代的笔记本电脑或台式个人电脑 (PC) 应该能够运行训练实验室。 最可能的瓶颈是主内存 - 在 8 GB 的 PC 上,在启动集群之前关闭主要的内存消耗者,如浏览器。 集群和安装它们所需的 CD-ROM 镜像将消耗少于 10GB 的磁盘空间。
依赖项
VirtualBox 在任何支持的平台上,或 GNU/Linux 上的 KVM/Quick Emulator (QEMU)。
如果您只想部署给定的 OpenStack 版本,最简单的方法是为您的平台下载 tarball 或 zip 文件,并开始使用 OpenStack。 请在此处查看 training-labs 页面:在此处获取训练实验室
或者,您可以使用 git 下载训练实验室开发仓库,例如(仅推荐给高级用户和开发人员)
git clone git://git.openstack.org/openstack/training-labs.git
Openstack Victoria 的更新脚本
Openstack Victoria 在 CentOS 8 上的更新脚本可从以下位置下载
https://github.com/Sangwan70/openstack.git
这些脚本包括 SELinux 设置、防火墙设置以及特定于 CentOS 8 的其他自定义设置。
Windows 用户附加说明
可供下载的 zip 文件包含构建 OpenStack 集群所需的一切(VirtualBox 除外)。 如果您想使用 ssh 与集群节点通信,而不是使用 VirtualBox 控制台窗口,则需要一个 ssh 客户端,例如免费的 Putty。
开发仓库不包含 Windows 批处理脚本,您需要一个 POSIX 环境(GNU/Linux、OS X、UNIX、Cygwin、...)来创建它们(如下所示)。
代理
如果您的网络需要设置代理才能访问 Internet,请将 VM_PROXY 设置在 "training-labs/labs/config/localrc" 中,如下所示
VM_PROXY="http://your_proxy_host:port"
构建集群
在所有平台上,集群构建时会将日志文件写入 training-labs/labs/log 目录。
集群构建分为三个阶段
- 下载 OS 镜像。 如果镜像已经存在于 training-labs/labs/img 目录中,则跳过此阶段。
- 构建基本磁盘,大约 30 到 40 分钟。 如果基本磁盘已经存在,则跳过此阶段。
- 基于基本磁盘构建节点 VM,大约 25 到 30 分钟。
使用 KVM 时的额外步骤
默认情况下,集群是在 Virtualbox VM 上构建的。 要使用 KVM/QEMU,请将环境变量 PROVIDER 设置为 kvm。
cd training-labs/labs
sed -i.bak 's/${PROVIDER:=virtualbox}/${PROVIDER:=kvm}/' config/localrc
GNU/Linux 和 MacOS
cd training-labs/labs ./st.py -b cluster
该命令构建一个包含 OS 和 OpenStack 集群所需软件的基本磁盘。 在基本磁盘之后,该命令构建两个节点 VM(控制器、计算)。
如果您再次执行相同的命令,现有的节点 VM 将被删除并基于现有的基本磁盘重新创建。 如果您想重建基本磁盘,也可以删除 labs/img 目录中的磁盘文件,或使用此命令
./st.py -b basedisk
Windows
获取 Windows 批处理文件
获取所需的一切(VirtualBox 除外)的最简单和推荐方法是从 训练实验室页面 下载 Windows 平台的 zip 文件。 zip 文件包含预生成的 Windows 批处理文件。 如果您的 Windows 机器上有 zip 文件的内容,您可以直接跳到下一步“在 Windows 下创建集群”。
如果您更喜欢自己生成创建集群的批处理文件,您需要一个包含 bash 的 POSIX 环境 - GNU/Linux 或 UNIX 安装都可以,但 Cygwin 也可以工作。
在 POSIX 环境中
cd training-labs/labs ./st.py -w cluster
Windows 批处理文件将创建在一个名为 wbatch 的新目录中。 将 training-labs/labs 目录复制到 Windows。
在 Windows 下创建集群
请按此顺序运行以下三个脚本。 前两个脚本只需要运行一次
- create_hostnet.bat
- 创建节点 VM 用于通信的主机专用网络。 该脚本要求具有执行此任务所需的提升权限。 您只需要运行此脚本一次, 网络配置将由 VirtualBox 保存。 您可以在 VirtualBox GUI 中验证配置的网络:文件->首选项->网络->主机专用网络。
- create_base.bat
- 创建基本磁盘。 您只需要运行此脚本一次(以及每次您想要更新基本磁盘时)。 此脚本将下载构建基本磁盘所需的 OS 镜像到 training-labs\labs\img(如果它不存在),并在下载后要求用户按下任意键才能继续。
- create_ubuntu_cluster_node.bat
- 基于基本磁盘创建节点 VM。
注意:Windows 批处理脚本仍然有一些限制。 例如,如果它们找到具有相同名称的现有节点 VM,它们会打印错误并退出。 不要在另一个脚本仍在运行时启动批处理脚本。
使用集群
VirtualBox
默认情况下,集群以无头模式构建。 在这种情况下,访问集群节点的方式是通过安全 shell (ssh)。 localhost 的 TCP 端口 2230 和 2232 将转发到节点。
要获取集群节点的 shell 提示符
ssh -p 2230 osbash@localhost # controller (note the network node is incorporated here since OpenStack Liberty) ssh -p 2232 osbash@localhost # compute node
密码是 osbash。 要成为 root,请使用 sudo。
Putty 客户端允许您在连接之前在 设置->会话 页面上设置端口号。
VirtualBox VM 的控制台窗口可以通过停止 VM 并从 VirtualBox 图形用户界面 (GUI) 重新启动它们来显示。 或者,为了始终在构建期间显示控制台,请将 "-g gui" 选项添加到 st.py 命令。 例如
./st.py -g gui -b cluster ./st.py -g gui -b basedisk ./st.py -g gui -w cluster # generate DOS batch files which will always display console windows
Horizon 也通过转发的端口访问。 使用此 URL 访问 GUI
http://127.0.0.1:8888/horizon
配置了两个帐户:admin/admin_user_secret 和 demo/demo_user_pass。 登录所需的默认域是“default”。 这些和其他密码在 config/credentials 中配置。
KVM/QEMU
与 VirtualBox 类似,默认情况下,集群以无头模式构建。 在这种情况下,访问集群节点的方式是通过安全 shell (ssh)。 但是,与 VirtualBox 不同,没有重定向到特殊端口来访问节点 shell。 因此,需要通过公共网络“virbr0” Internet 协议 (IP) 地址通过 ssh 连接到节点。
IP 地址记录在 log/node_ip.db 中。 例如
52:54:00:ac:37:da 192.168.122.215 controller 52:54:00:06:6a:b7 192.168.122.3 compute1
IP 地址也可以通过获取与“virbr0”关联的节点媒体访问控制 (MAC) 地址并使用它来解析地址解析协议 (ARP) 表以获取 IP 地址来获取。
virsh -c 'qemu:///system' domiflist controller | grep virbr0 | awk '{print $5}'
52:54:00:ee:b0:e4
现在使用 MAC 地址使用 ARP 提取节点的 IP 地址。
arp -e | grep 52:54:00:ee:b0:e4 | awk '{print $1}'
192.168.122.82
为了简化流程,这里有一个提取“controller”和“compute”节点 IP 地址的简单脚本
cat get_ip.sh
#!/bin/bash
CONTROLLER_MAC=`virsh -c qemu:///system domiflist controller | grep virbr0 | awk '{print $5}'`
COMPUTE1_MAC=`virsh -c qemu:///system domiflist compute1 | grep virbr0 | awk '{print $5}'`
CONTROLLER_IP=`arp -e | grep $CONTROLLER_MAC | awk '{print $1}'`
COMPUTE1_IP=`arp -e | grep $COMPUTE1_MAC | awk '{print $1}'`
echo "Controller IP: $CONTROLLER_IP"
echo "Compute1 IP: $COMPUTE1_IP"
这是脚本运行的示例
./get_ip.sh Controller IP: 192.168.122.82 Compute1 IP: 192.168.122.139
要获取集群节点的 shell 提示符
ssh osbash@192.168.122.82 # controller, note the network node is incorporated here since OpenStack Liberty) ssh osbash@192.168.122.139 # compute node
密码是 osbash。 要成为 root,请使用 sudo。
KVM/QEMU VM 的控制台窗口可以通过停止 VM 并从虚拟机管理器 (VMM) 重新启动它们来显示。
Horizon 通过 IP 地址 10.0.0.11 在“virbr1”管理网络上访问
http://10.0.0.11/horizon
配置了两个帐户:admin/admin_user_secret 和 demo/demo_user_pass。 登录所需的默认域是“default”。 这些和其他密码在 config/credentials 中配置。
第三方文档
- OpenStack 实验室指南 v5.0.1。 Diarmuid O'Briain of the netLabs!UG OpenStack 用户组提供的 training-labs 详细说明。(2017-10-02)
管理和维护我们的项目
只是核心开发人员的起点。 对于我们分享有关项目的重要但非功能相关工作的知识来说,这更容易。 如果给定任务的原始作者不可用,这将使团队能够运行并且不会错过项目的重要方面,例如发布、反向移植等。
请遵循编写良好且维护良好的 [项目驱动程序指南](https://docs.openstack.org/infra/manual/drivers.html) 以获取更多信息。 上述文档可能涵盖项目的一些区域,这些区域可能需要您成为 **核心团队**。 但大多数任务不应需要相同。
快速链接
- Training-Labs 网页:https://docs.openstack.org/training_labs/
- 我们在 2015 年东京 OpenStack Summit 上展示的幻灯片:https://docs.google.com/presentation/d/1PYe1SQnAL8DxOXcnGI8O-1YAW-Z45P2IXj4NMb3VTNo/
- training-labs 仓库:http://git.openstack.org/cgit/openstack/training-labs/
- Launchpad 错误跟踪器 https://launchpad.net/labs
- 审核队列:https://review.openstack.org/#/q/status:open+project:openstack/training-labs,n,z
- 旧实验室部分在训练指南中:http://git.openstack.org/cgit/openstack/training-guides/tree/labs
- 规范:https://specs.openstack.org/openstack/docs-specs/specs/liberty/training-labs.html
- 开发人员指南:https://docs.openstack.org/infra/manual/developers.html
会议信息
- 有关更多信息,请访问此链接:训练实验室团队会议
团队成员
- Pranav Salunke,IRC:dguitarbite
- Roger Luethi,IRC:rluethi
- Julen Larrucea,IRC:julen
- 姓名,IRC:昵称,角色/兴趣。
- Ram Niwas Sangwan,SkillPedia