我有一个工作的python程序,由于python-novaclient库,它能够在OpenStack上创建实例。
现在我想在创建时提供一个安装后脚本。我查看了Servers
.create()
方法的文档,但似乎没有实现。
有没有人遇到过这个问题?
修改
在Horizon中,当我们创建一个实例时,textarea旁边会有关于安装后脚本的信息:
"自定义脚本"字段类似于"用户数据"在其他系统中。
这是否意味着userdata
是我需要的参数?
userdata - 要传递给元数据服务器的用户数据,这也可以是文件类型对象或字符串。
答案 0 :(得分:2)
userdata
这是我编写的用于解决问题的Python代码:
## Return the new created instance
# @param name Name of the instance to create in a String format
# @param image OpenStack image to deploy on the virtual machine
# @param flavor OpenStack flavor to use for the virtual machine
# @param keypair Name of the keypair to copy on the instance
# @param sec_groups List of security groups to link to the instance
def create_instance(self,name,image,flavor,keypair=None,sec_groups=None):
instance = self.client.servers.create(
name=name,
image=image,
flavor=flavor,
key_name=keypair,
security_groups=sec_groups,
userdata="#!/bin/bash \n echo 'AMAZING TEST' > /root/test"
)
return instance
答案 1 :(得分:1)
尝试启用配置驱动器。用户数据可以通过配置驱动器发送到VM。