setUserData 不执行 aws 脚本

问题描述 投票:0回答:1

我正在尝试弄清楚如何让 cloud-init 执行脚本。目前我有一个名为 myscript 的文件,其内容为

#!/bin/sh   
echo 'Hello world - I just executed user-data!' > /root/helloworld
sudo mkdir scripttest

然后在我的 Java 代码中我有:

String usrdata = new String();
usrdata= "myscript";
req.setUserData(usrdata);
req.setUserData(
org.apache.commons.codec.binary.Base64.encodeBase64String(
    usrdata.getBytes()));
result= client.runInstances(req);

当我 ssh 进入我正在运行的实例时,这似乎不起作用。有什么想法吗?

amazon-ec2 user-data cloud-init
1个回答
0
投票

这个问题有一些格式问题,所以我希望我理解正确......

我从未使用过 java 中的 cloud-init,但我可以看到一些问题:

  • 脚本将以 root 身份运行。所以
    sudo mkdir scripttest
    应该是
    mkdir scripttest
  • usrdata 似乎是一个值为
    myscript
    的字符串。我希望它应该是 myscript 的 base64 编码的
    contents
© www.soinside.com 2019 - 2024. All rights reserved.