Ubuntu 在cloud init期间,MIME多部分内部的x-shellscript文件未执行

Ubuntu 在cloud init期间,MIME多部分内部的x-shellscript文件未执行,ubuntu,amazon-ec2,mime-types,cloud-init,Ubuntu,Amazon Ec2,Mime Types,Cloud Init,我在一个非常类似EC2的环境(开放堆栈euca2ools环境)中运行一台Ubuntu12.04机器 基本上,我启动我的实例并给它一个gzip多部分文件是可能的。下面是如何转换为多部分文件的代码: write-mime-multipart -z -o multipart.txt.gz \ $PART_HANDLER:text/part-handler \ $IPTXT/serverIP.txt:text/plain \ $CREDS/$CERT.pem:text/plain \ $SCRIPT_D

我在一个非常类似EC2的环境(开放堆栈euca2ools环境)中运行一台Ubuntu12.04机器

基本上,我启动我的实例并给它一个gzip多部分文件是可能的。下面是如何转换为多部分文件的代码:

write-mime-multipart -z -o multipart.txt.gz \
$PART_HANDLER:text/part-handler \
$IPTXT/serverIP.txt:text/plain \
$CREDS/$CERT.pem:text/plain \
$SCRIPT_DIR/client_script.sh:text/x-shellscript
问题是shell脚本永远不会执行。在shell脚本工作之前,我需要mime文件中包含的其他文件。根据CloudInit发布的消息

有人知道如何执行这个shell脚本吗


编辑:

我在我的
/var/log/cloud init.log
中发现了这个错误:

Sep 25 22:30:31 server-49412b24-276f [CLOUDINIT] cc_scripts_user.py[WARNING]: failed to run-parts in /var/lib/cloud/instance/scripts
Sep 25 22:30:31 server-49412b24-276f [CLOUDINIT] __init__.py[WARNING]: Traceback (most recent call last):#012  File "/usr/lib/python2.7/dist-packages/cloudinit/CloudConfig/__init__.py", line 117, in run_cc_modules#012    cc.handle(name, run_args, freq=freq)#012  File "/usr/lib/python2.7/dist-packages/cloudinit/CloudConfig/__init__.py", line 78, in handle#012    [name, self.cfg, self.cloud, cloudinit.log, args])#012  File "/usr/lib/python2.7/dist-packages/cloudinit/__init__.py", line 326, in sem_and_run#012    func(*args)#012  File "/usr/lib/python2.7/dist-packages/cloudinit/CloudConfig/cc_scripts_user.py", line 31, in handle#012    util.runparts(runparts_path)#012  File "/usr/lib/python2.7/dist-packages/cloudinit/util.py", line 223, in runparts#012    raise RuntimeError('runparts: %i failures' % failed)#012RuntimeError: runparts: 1 failures

这似乎表明(当然)多部分文件的一部分没有被执行……这对调试没有什么帮助。所讨论的脚本
client\u script.sh
在终端中运行良好。

但它似乎可以识别您的shell脚本…您可以将其发布到此处吗?如果不适合将其发布到此处,请尝试仅将脚本传递到您的实例,并查看它是否开始运行。我知道脚本在没有其他部分的情况下是不会运行的,但我认为它至少会开始运行……所以在开始时输入一些输出,看看会发生什么。如果它一直失败,这是您的脚本或cloudinit安装的问题,我会说…:pI刚刚尝试了这个,我使用了一个简单的脚本,它只做wget,但是它不能作为多部分的一部分运行。但是单独运行呢?这个脚本本身就是一个例子。因为如果在这种情况下失败,则意味着用于读取和处理用户脚本的CloudInit模块已损坏…这与您无关,因为脚本本身功能正常。因此,问题是cloud init仅在它是mime多部分的一部分时才执行shell文件