1

由于python-novaclient库,我有一个可以在 OpenStack 上创建实例的工作 python 程序。

现在我想在创建时提供一个安装后脚本。我查看了该方法的文档,但似乎没有实现。Servers.create()

有人遇到过这个问题吗?


编辑

在 Horizo​​n 中,当我们创建实例时,安装后脚本的文本区域旁边有以下信息:

“自定义脚本”字段类似于其他系统中的“用户数据”。

这是否意味着userdata我需要的参数?

userdata – 传递给元数据服务器公开的用户数据,这也可以是文件类型对象或字符串。

4

2 回答 2

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
于 2015-04-08T11:45:17.927 回答
1

尝试启用配置驱动器。用户数据可以通过配置驱动器发送到虚拟机。

于 2015-04-08T12:24:37.987 回答