一体化单虚拟机¶
用云构建云!使用您的云在约 5 分钟内启动 OpenStack 的新版本。如果出现问题,重新开始!在云中启动的虚拟机将运行缓慢,因为它们在 QEMU(模拟器)中运行,但它们的主要用途是测试 OpenStack 的开发和运维。
先决条件 云 & 镜像¶
虚拟机¶
DevStack 应该在运行受支持的 Linux 发行版的任何虚拟机中运行。它在具有 4GB 或更多 RAM 的情况下性能最佳。
OpenStack 部署 & cloud-init¶
如果云服务具有预安装 cloud-init 的镜像,请使用它。如果需要,您可以从 Ubuntu 的每日构建 站点获取一个。这将使您能够使用 userdata 启动虚拟机,在启动时安装所有内容。下面的 userdata 脚本将安装并运行 DevStack,并使用最小配置。使用 cloud-init 超出了本文档的范围,请参阅 cloud-init 文档以获取更多信息。
如果您直接使用 Xen、kvm 或 VirtualBox 等 hypervisor,您可以手动以非 root 用户身份在精简的服务器安装中启动下面的脚本。
安装摇摇欲坠¶
使用 Cloud-Init 启动¶
此云配置通过 git 获取 DevStack 的最新版本,创建一个最小的 local.conf 文件并启动 stack.sh。它应该作为 user-data 文件传递给启动的虚拟机。
#cloud-config
users:
- default
- name: stack
lock_passwd: False
sudo: ["ALL=(ALL) NOPASSWD:ALL\nDefaults:stack !requiretty"]
shell: /bin/bash
write_files:
- content: |
#!/bin/sh
DEBIAN_FRONTEND=noninteractive sudo apt-get -qqy update || sudo dnf update -qy
DEBIAN_FRONTEND=noninteractive sudo apt-get install -qqy git || sudo dnf install -qy git
sudo chown stack:stack /home/stack
cd /home/stack
git clone https://opendev.org/openstack/devstack
cd devstack
echo '[[local|localrc]]' > local.conf
echo ADMIN_PASSWORD=password >> local.conf
echo DATABASE_PASSWORD=password >> local.conf
echo RABBIT_PASSWORD=password >> local.conf
echo SERVICE_PASSWORD=password >> local.conf
./stack.sh
path: /home/stack/start.sh
permissions: 0755
runcmd:
- su -l stack ./start.sh
由于 DevStack 将拒绝以 root 用户身份运行,因此此配置将 cloud-init 配置为创建一个非 root 用户并以该用户身份运行 start.sh 脚本。
如果您正在使用 cloud-init 并且尚未 启用堆栈输出的自定义日志记录,那么堆栈输出默认情况下可以在 /var/log/cloud-init-output.log 中找到。
手动启动¶
直接使用 hypervisor,启动虚拟机并手动执行上述嵌入式 shell 脚本中的步骤,或将脚本复制到虚拟机中。
使用 OpenStack¶
此时,您应该能够访问仪表板。启动虚拟机,如果赋予它们浮动 IP,则可以从网络上的其他机器访问这些虚拟机。
一个有趣的用例是为在笔记本电脑上运行虚拟机的开发人员。一旦 stack.sh 完成一次,所有先决条件包都将安装在虚拟机中,并且源代码树已检出。在 local.conf 中设置 OFFLINE=True 允许 stack.sh 在没有互联网连接的情况下多次运行。DevStack,自 2012 年以来,让湖边黑客成为可能!