在我们最新的标题为《Nutanix Calm DSL –创建自定义蓝图》的文章中,我们讨论了很多不同的内容。以下为这里所涵盖内容的重点:
透过手动编写所需的Python代码来创建自定义蓝图演示如何创建安全的蓝图凭据将蓝图拆分为用于所需安装脚本的模组化结构将VM规範分解为易于管理的模组化YAML文件而今天将为大家示範展示避免手动编写YAML的程序。
**请注意,需要在工作站/电脑与已配置的Prism Central之间建立连接。
规格示例
下图显示的是上一篇文章中使用的YAML的规範。我们不会详细介绍每行的功能(可以回顾绍上一篇文章),该特定规範适用于LAMP应用程序中的HA代理服务器。
categories: {}name: HAPROXYresources: boot_config: boot_device: disk_address: adapter_type: SCSI device_index: 0 disk_list: - data_source_reference: kind: app_package name: CENTOS_7_CLOUD device_properties: device_type: DISK disk_address: adapter_type: SCSI device_index: 0 disk_size_mib: 0 guest_customization: cloud_init: user_data: | #cloud-config users: - name: centos ssh-authorized-keys: - '@@{CENTOS.public_key}@@' sudo: - ALL=(ALL) NOPASSWD:ALL memory_size_mib: 4096 nic_list: - ip_endpoint_list: [] network_function_nic_type: INGRESS nic_type: NORMAL_NIC subnet_reference: kind: subnet uuid: f5606fed-2c33-45e8-9ccf-303db6eb93d8 num_sockets: 2 num_vcpus_per_socket: 2
一统天下
如果我们不想「乱逛」并手动输入提供商规範怎么办?Nutanix Calm工程团队花费大量时间来确保Calm DSL中提供最有用的功能。
看下面的程式命令:
calm create provider_spec
非常的容易!默认情况下,该命令将逐步生成YAML格式且有效Calm DSL所提供程序规範,而无需自己设定YAML。让我们来看看:
查看上面的萤幕快照,我们可以看到DSL在生成YAML提供程序规範时,将提示的各种所需讯息。这也是我们可以引用过去发表的评论之处。执行指令时,必须与已配置的Prism Central实例建立连接。如果您仔细观察,您会发现DSL在每一步都为我们提供了编号选择,这些选择是通过向Prism Central请求实体列表来动态生成。如果没有与Prism Central连接,则列表将失败。
为了方便操作,在此将命令的完整输出分为两部分。第二部分如下所示-基于输入的完整YAML规範。
从这里开始,将生成的YAML放在上面,并将其添加到準备在蓝图中使用的YAML规範文件。上一篇文章Nutanix Calm –创建自定义蓝图中概述了此过程。
重要提示
在这一点上,重点是要注意上面的YAML规範专门用于AHV。换句话说,如果您未指定提供程序类型,则假定为AHV。
calm create provider_spec --type AHV_VM
如果将-h或–help开关传递给命令,则可以轻鬆查看我们所提供程序类型:
仅作为範例,在输出被截断的情况下,DSL创建一个AWS VM提供程序规範会发生什么事:
总结
根据这篇相当精简的文章,可以看到Calm工程团队如何建立功能,意味着并不总是需要编写代码。实际上,Nutanix工程副总裁说:「人类应该好好运用DSL。」这为DSL下了一个完美的的总结。