在哪里可以找到cloud-init用户数据脚本的日志?

cba*_*are 19 cloud-init

我正在通过将shell脚本粘贴到用户数据字段来初始化运行标准Ubuntu 13.04 AMI衍生物的spot实例.

这有效.该脚本运行.但它很难调试,因为我无法弄清楚脚本输出的记录位置,如果在任何地方.

我查看了/var/log/cloud-init.log,它似乎包含了一些与调试cloud-init相关的东西本身,但与我的脚本无关.我在/ var/log中搜索并没有发现任何内容.

是否有一些特殊的东西我必须做以打开登录?

Mic*_*ael 14

您可以为您的用户数据创建一个cloud-config文件(顶部带有"#cloud-config"),使用runcmd调用脚本,然后启用输出日志记录,如下所示:

output: {all: '| tee -a /var/log/cloud-init-output.log'}
Run Code Online (Sandbox Code Playgroud)


mik*_*ana 7

/var/log/cloud-init-output.log在AWS,DigitalOcean和大多数其他云提供商中,云初始化用户数据的默认位置已经存在.您无需设置任何其他日志记录即可查看输出.

  • 是的 - 请参阅我对上面答案的评论,在提出这个问题时,这还不是所有发行版中的默认设置。 (2认同)
  • @迈克尔 是的。当情况发生变化且旧答案不再适用时,我会编写新答案,以保持 Stack Overflow 的相关性。欢迎您保留自己的答案以执行相同的操作。 (2认同)

cjd*_*iro 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
Run Code Online (Sandbox Code Playgroud)

请注意,使用CloudInit shell脚本时,用户数据"将在首次启动时以类似rc.local的级别执行.rc.local-like意味着'在启动序列中很晚'"登录到我的实例后(a科学Linux机器)我首先去了/var/log/boot.log,在那里我发现:

你好,世界.现在时间是星期三,2013年9月11日10:21:37 +0200!我是

出文件.日志文件在哪里?加载的插件:由于存储库优先级保护而排除的更改日志,内核模块,优先级,保护库,安全性,:tsflags,版本锁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丢失+找到mnt proc sbin srv tmp var

boot dev home lib64 media opt root selinux sys usr

(其他不相关的东西)

所以,正如你所看到的,我的脚本运行并正确记录.另外,正如预期的那样,我在/root/output.txt中使用内容强制记录'output.txt':

你好,世界.现在时间是星期三,2013年9月11日10:21:37 +0200!

所以...我不确定你的剧本中发生了什么.确保您正在退出脚本

exit 0   #or some other code
Run Code Online (Sandbox Code Playgroud)

如果它仍然不起作用,您应该提供更多信息,例如您的脚本,boot.log,/etc/rc.local和您的cloudinit.log.顺便说一下:你的cloudinit版本是什么?