我一直在阅读有关部署 OpenStack 集群以创建大量实例的资料。我找不到有关如何一次启动 100 多个实例的脚本/博客/模板指南。有没有办法在 Horizon 中做到这一点?用例是实验室环境。
谢谢,NP
答案1
您可以使用热量来创建大量实例。
如何使用热量?我从 cli 开始。
加热使用模板文件。我创建模板文件来创建 3 个实例:
heat_template_version: 2013-05-23
parameters:
image_name:
type: string
label: Image Name
default: centos7
network_id:
type: string
default: 80bcc12b-b546-47be-8a24-0c0e278e57dd
resources:
my_instance1:
type: OS::Nova::Server
properties:
image: { get_param: image_name }
flavor: min
networks:
- network : { get_param : network_id }
my_instance2:
type: OS::Nova::Server
properties:
image: { get_param: image_name }
flavor: min
networks:
- network : { get_param : network_id }
my_instance3:
type: OS::Nova::Server
properties:
image: { get_param: image_name }
flavor: min
networks:
- network : { get_param : network_id }
我将此文件保存为template.yaml。
我在这里使用风格 min、图像 centos7 和网络 ID 80bcc12b-b546-47be-8a24-0c0e278e57dd。
现在我创建了 3 个实例。我执行
# heat stack-create --template-file template.yaml test
+--------------------------------------+------------+--------------------+----------------------+
| id | stack_name | stack_status | creation_time |
+--------------------------------------+------------+--------------------+----------------------+
| e39c8d65-b135-4d75-a800-2c35715ce792 | test | CREATE_IN_PROGRESS | 2015-12-31T20:39:23Z |
+--------------------------------------+------------+--------------------+----------------------+
# heat stack-list
+--------------------------------------+------------+-----------------+----------------------+
| id | stack_name | stack_status | creation_time |
+--------------------------------------+------------+-----------------+----------------------+
| e39c8d65-b135-4d75-a800-2c35715ce792 | test | CREATE_COMPLETE | 2015-12-31T20:39:23Z |
+--------------------------------------+------------+-----------------+----------------------+
已创建堆栈测试。已创建以下图像:
# nova list
+--------------------------------------+--------------------------------+---------+------------+-------------+-------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+--------------------------------+---------+------------+-------------+-------------------+
| 81b3ef22-f993-4ba0-bc9d-804afdf2ab5d | test-my_instance1-u3qmm73wlmtd | ACTIVE | - | Running | net1=192.168.0.18 |
| a6bf0400-8ec9-4d7e-867b-5e3238f48943 | test-my_instance2-5275ytbk33dj | ACTIVE | - | Running | net1=192.168.0.17 |
| 7f52fdb1-7414-45bd-aa9e-293d45ee22c4 | test-my_instance3-i2mynv5p6tq5 | ACTIVE | - | Running | net1=192.168.0.19 |
+--------------------------------------+--------------------------------+---------+------------+-------------+-------------------+
您可以更改模板文件并添加更多实例。所有实例将通过 1 次调用创建:使用 heat stack-create。
现在删除可以使用热堆栈删除调用的实例:
# heat stack-delete test
+--------------------------------------+------------+--------------------+----------------------+
| id | stack_name | stack_status | creation_time |
+--------------------------------------+------------+--------------------+----------------------+
| e39c8d65-b135-4d75-a800-2c35715ce792 | test | DELETE_IN_PROGRESS | 2015-12-31T20:39:23Z |
+--------------------------------------+------------+--------------------+----------------------+
它来自 cli。我们如何使用仪表板?
您可以打开http://ip_address/dashboard/project/stacks/页。
堆栈页面已打开。单击启动堆栈按钮:打开选择模板表单。选择模板源:直接输入。进入 template.json 文件的模板数据集内容。按下一步按钮,进入下一页输入堆栈名称、管理员密码并按启动按钮。将创建新的热堆栈。它与 heat stack-create 调用相同。
答案2
您可以直接从 Horizon 完成此操作。启动新实例时,会出现数数参数,只需确保您的项目配额允许您使用必要的资源即可。顺便说一句,我不建议一次创建 100 个实例。我宁愿逐步创建它们。