Ubuntu 每个启动脚本的云初始化不做任何操作

Ubuntu 每个启动脚本的云初始化不做任何操作,ubuntu,amazon-ec2,cloud-init,Ubuntu,Amazon Ec2,Cloud Init,我是cloud init的新手,我的最终目标是在每次EC2 Spot实例激活时运行一个R脚本,但为了测试它,我创建了一个按需Ubuntu 12.04实例,并创建了一个简单的脚本,但重启后什么也没有发生。以下是我采取的步骤: 启动了新的Ubunut 12.04实例 导航到/var/lib/cloud/scripts/per boot sudo vi script.sh 添加了以下代码: #!/bin/sh 回声“测试” sudo重启 此时,我认为应该在实例重新启动时看到一个“test”打印

我是cloud init的新手,我的最终目标是在每次EC2 Spot实例激活时运行一个R脚本,但为了测试它,我创建了一个按需Ubuntu 12.04实例,并创建了一个简单的脚本,但重启后什么也没有发生。以下是我采取的步骤:

  • 启动了新的Ubunut 12.04实例
  • 导航到
    /var/lib/cloud/scripts/per boot
  • sudo vi script.sh
  • 添加了以下代码:
#!/bin/sh
回声“测试”

  • sudo重启
此时,我认为应该在实例重新启动时看到一个“test”打印,但没有显示任何内容。我去看了一下
/var/log/cloud init.log
,但没有任何错误或异常

我显然错过了一些东西,所以任何正确方向的提示都将不胜感激


谢谢

除非脚本用户设置为始终运行,否则它不会运行。有关更多详细信息,请参阅(以及有关如何在重新启动时运行脚本的说明)。

如果要在cloud init中调试用户数据,可以尝试以下步骤:

  • rm-rf/var/lib/cloud/*
  • 云初始化初始化
  • 云初始化模块-m最终版本
  • 使用上述命令,将重新运行cloudinit。我们可以在/var/log/cloud-init.log下检查cloud-init.log以检查它是否成功执行。

    查看,脚本必须是可执行的。这会成功的


    sudo chmod 744 script.sh

    我最终使用
    rc.local
    实现了这一点,这并没有回答我最初的问题,因为我仍然不知道为什么脚本没有加载,但在我遇到错误后,这样做可能会帮助与我处境相同的人
    isDirectoryError:[Errno 21]是一个目录:'/var/lib/cloud/instance'
    ,用于重复运行模块。我不想丢失/重新创建我的
    /var/lib/cloud/scripts/per boot
    脚本,所以我尝试并发现
    sudo rm-rf/var/lib/cloud/instance/var/lib/cloud/instances/*;sudo cloud init modules-m final
    是允许我重新测试所需的最小清理。谢谢你的领导!这是正确的吗?这个问题是关于
    /var/lib/cloud/scripts/per boot/*
    的,您链接到的问题是关于在每次启动时运行
    /var/lib/cloud/instance/user data.txt
    。答案中的最后一句话建议用前者代替后者。