存储在 Debian 上的用户提供的配置运行的 cloud-init 日志在哪里?

问题描述 投票:0回答:1

我正在尝试调试一些复杂的云配置用户数据,但无法找到 cloud-init 为用户数据运行的特定命令的日志条目的位置。

作为示例,我正在启动一个 EC2 实例并提供一些简单的云配置用户数据

## template: jinja
#cloud-config
runcmd:
  - echo 'unique-1234'
  - echo 'Hello Cloud' > /tmp/cloud.log

我可以确认 cloud-init 正在运行我的用户数据命令:

  • 文件
    /tmp/cloud.log
    存在并具有提供的文本
  • var/log/cloud-init-output.log
    文件包含回显的“unique-1234”

但是,我想要的是有关实际运行的用户数据模块和命令的一些日志信息。

该数据应该

/var/log/cloud-init.log
中,但我找不到任何证据。有很多条目看起来像:

  • Running command ['lsb_release', '--all'] with allowed return codes [0] (shell=False, capture=True)

但是与用户数据无关,提供了我想要运行的命令。

grep 'echo' /var/log/cloud-init.log
结果为零。

阅读了 cloud-init 的日志记录文档后,我尝试将以下内容添加到我的 cloud-config yaml 中

reporting:
  debug_log:
    level: DEBUG
    type: log

但结果是一样的——没有新条目

cloud-init.log

amazon-ec2 debian cloud-init
1个回答
0
投票

runcmd
获取指定的命令并将它们写入 shell 脚本:

2024-06-17 15:32:54,101 - modules.py[DEBUG]: Running module runcmd (<module 'cloudinit.config.cc_runcmd' from '/usr/lib/python3/dist-packages/cloudinit/config/cc_runcmd.py'>) with frequency once-per-instance
2024-06-17 15:32:54,101 - handlers.py[DEBUG]: start: modules-config/config-runcmd: running config-runcmd with frequency once-per-instance
2024-06-17 15:32:54,101 - util.py[DEBUG]: Writing to /var/lib/cloud/instances/1ecf32de-49ab-47db-87f8-e0a20807c402/sem/config_runcmd - wb: [644] 24 bytes
2024-06-17 15:32:54,101 - helpers.py[DEBUG]: Running config-runcmd using lock (<FileLock using file '/var/lib/cloud/instances/1ecf32de-49ab-47db-87f8-e0a20807c402/sem/config_runcmd'>)
2024-06-17 15:32:54,101 - util.py[DEBUG]: Shellified 2 commands.
2024-06-17 15:32:54,101 - util.py[DEBUG]: Writing to /var/lib/cloud/instances/1ecf32de-49ab-47db-87f8-e0a20807c402/scripts/runcmd - wb: [700] 65 bytes
2024-06-17 15:32:54,102 - handlers.py[DEBUG]: finish: modules-config/config-runcmd: SUCCESS: config-runcmd ran successfully

我们可以看到它被写入

/var/lib/cloud/instance/scripts/runcmd

#!/bin/sh
echo 'unique-1234'
echo 'Hello Cloud' > /tmp/cloud.log

查看 runcmd 文档,我们看到

注意runcmd模块只编写稍后运行的脚本。实际运行脚本的模块是Final boot阶段的scripts_user。

如果我们从

scripts_user
搜索日志,我们可以看到我们的脚本正在运行:

2024-06-17 15:32:54,722 - modules.py[DEBUG]: Running module scripts_user (<module 'cloudinit.config.cc_scripts_user' from '/usr/lib/python3/dist-packages/cloudinit/config/cc_scripts_user.py'>) with frequency once-per-instance
2024-06-17 15:32:54,722 - handlers.py[DEBUG]: start: modules-final/config-scripts_user: running config-scripts_user with frequency once-per-instance
2024-06-17 15:32:54,722 - util.py[DEBUG]: Writing to /var/lib/cloud/instances/1ecf32de-49ab-47db-87f8-e0a20807c402/sem/config_scripts_user - wb: [644] 24 bytes
2024-06-17 15:32:54,722 - helpers.py[DEBUG]: Running config-scripts_user using lock (<FileLock using file '/var/lib/cloud/instances/1ecf32de-49ab-47db-87f8-e0a20807c402/sem/config_scripts_user'>)
2024-06-17 15:32:54,722 - subp.py[DEBUG]: Running command ['/var/lib/cloud/instance/scripts/runcmd'] with allowed return codes [0] (shell=False, capture=False)
2024-06-17 15:32:54,723 - handlers.py[DEBUG]: finish: modules-final/config-scripts_user: SUCCESS: config-scripts_user ran successfully

不幸的是,如果脚本遇到错误,我们只能在

cloud-init.log
中看到有关脚本的任何信息。否则,运行脚本的标准输出将进入
/var/log/cloud-init-output.log

您可以看到您回显的文本出现在那里:

root@me:~# tail -3 /var/log/cloud-init-output.log 
Cloud-init v. 24.1.6 running 'modules:final' at Mon, 17 Jun 2024 15:32:54 +0000. Up 3.32 seconds.
unique-1234
Cloud-init v. 24.1.6 finished at Mon, 17 Jun 2024 15:32:54 +0000. Datasource DataSourceLXD.  Up 3.48 seconds
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.