我正在通过将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)
/var/log/cloud-init-output.log在AWS,DigitalOcean和大多数其他云提供商中,云初始化用户数据的默认位置已经存在.您无需设置任何其他日志记录即可查看输出.
所以我试图复制你的问题.通常我在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版本是什么?
| 归档时间: |
|
| 查看次数: |
26879 次 |
| 最近记录: |