我正在通过将shell脚本粘贴到用户数据字段来初始化运行标准Ubuntu 13.04 AMI派生的spot实例。
这很有效。该脚本运行。但它很难调试,因为我无法弄清楚脚本输出的记录位置,如果在任何地方。
我查看了/var/log/cloud-init.log,它似乎包含了一些与调试cloud-init相关的东西本身,但与我的脚本无关。我在/ var / log中找到了没找到的东西。
我有什么特别的事情可以打开登录吗?
答案 0 :(得分:14)
您可以为您的userdata创建一个cloud-config文件(顶部带有“#cloud-config”),使用runcmd调用脚本,然后启用这样的输出日志记录:
output: {all: '| tee -a /var/log/cloud-init-output.log'}
答案 1 :(得分:7)
在AWS,DigitalOcean和大多数其他云提供商中,cloud init用户数据的默认位置已经 /var/log/cloud-init-output.log
。您不需要设置任何其他日志记录来查看输出。
答案 2 :(得分:5)
所以我试图复制你的问题。通常我在Cloud Config中工作,因此我只创建了一个简单的测试用户数据脚本,如下所示:
#!/bin/sh
echo "Hello World. The time is now $(date -R)!" | tee /root/output.txt
echo "I am out of the output file...somewhere?"
yum search git # just for fun
ls
exit 0
请注意,使用CloudInit shell脚本时,用户数据“将在首次启动时以类似rc.local的级别执行.rc.local-like意味着'在启动序列中很晚'” 登录到我的实例(Scientific Linux机器)后,我首先访问了/var/log/boot.log,然后我找到了:
Hello World。现在时间是星期三,2013年9月11日10:21:37 +0200!我是
文件外。日志文件在哪里?加载插件:更改日志, 内核模块,优先级,保护库,安全性, :由于存储库优先级保护而排除的tsflags,versionlock 126软件包由于存储库而排除了9个软件包 保护^ Mepel / pkgtags
| 581 kB 00:00=============================== N / S配对:git ========== ===================== ^ [[1mGit ^ [[0; 10mPython.noarch:Python ^ [[1mGit ^ [[0; 10m Library c ^ [[ 1mgit ^ [[0; 10m.x86_64:快速网络 接口^ [[1mgit ^ [[0; 10m
...
...(更多yum搜索输出)
...
bin等lib lib lost + found mnt proc sbin srv tmp var
boot dev home lib64 media opt root selinux sys usr
(其他不相关的东西)
因此,正如您所看到的,我的脚本已经运行并且已正确记录。 另外,正如预期的那样,我在/root/output.txt中使用内容强制记录'output.txt':
Hello World。现在时间是星期三,2013年9月11日10:21:37 +0200!
所以......我不确定你的剧本中发生了什么。 确保您使用
退出脚本exit 0 #or some other code
如果它仍然不起作用,您应该提供更多信息,例如您的脚本,boot.log,/etc/rc.local和您的cloudinit.log。 顺便说一下:你的cloudinit版本是什么?