2012-09-02 42 views
0

我是新来的云初始化,我的最终目标是每一个EC2现货实例激活时运行的R脚本,但为了测试我创建了一个点播Ubuntu 12.04实例并创建了一个简单的脚本,但重启后没有任何反应。下面是我所采取的步骤:云初始化每启动脚本无所事事

  • 推出新Ubunut 12.04实例
  • 导航到/var/lib/cloud/scripts/per-boot
  • sudo vi script.sh
  • 添加以下代码:

#!/bin/sh
echo "test"

  • sudo reboot

在这一点上,我想我应该会看到一个“测试”打印当实例重新启动,但什么也没有。我去看看/var/log/cloud-init.log,但没有任何错误或任何不寻常的事情。

我清楚地失去了一些东西,以便在正确的方向上没有任何提示将不胜感激!

谢谢!

+0

我终于成功地做到这一点使用'rc.local',这并没有回答我原来的问题,我仍然不知道为什么脚本不加载,但它可能帮助别人同样的情况矿山 – JordanBelf

回答

1

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

+0

它是否正确?这个问题是关于'/ var/lib/cloud/scripts/per-boot/*'的,你链接到的问题是关于让'/ var/lib/cloud/instance/user-data.txt'在每次启动时运行。答案中的最后一个陈述表明使用前者代替后者。 –

2

如果我们要调试的用户数据在云初始化,我们可以尝试以下步骤:

  1. 室射频的/ var/lib中/云/ *
  2. 云INIT INIT
  3. cloud-init modules -m final

通过上述命令,cloud-init将重新运行。我们可以检查/var/log/cloud-init.log下的cloud-init.log以检查它是否成功执行。

+0

一旦这样做后,我收到一个错误'IsADirectoryError:[错误21]是一个目录:“在/ var/lib中/云/模块的重复运行instance''。我不想丢失/重新创建我的'/ var/lib/cloud/scripts/per-boot'脚本,所以我尝试了一下,发现''sudo rm -rf/var/lib/cloud/instance/var/lib/cloud /实例/ *; sudo cloud-init模块-m final是最少的清理工作,可以让我重新测试。感谢领先! –