4.17. cloud-init 故障排除

运行 cloud-init 工具后,您可以通过检查配置和日志文件来对实例进行故障排除。在确定问题后,在您的实例上重新运行 cloud-init。您可以从命令行运行 cloud-init。详情请参阅 cloud-init --help 命令。

以下流程提供了识别 cloud-init 问题的步骤,以及重新运行程序的示例。

流程

  1. 查看 cloud-init 配置文件:

    1. 检查 /etc/cloud/cloud.cfg 配置文件。检查 cloud_init_modulescloud_config_modulescloud_final_modules 下包含哪些模块。
    2. 检查 /etc/cloud/cloud.cfg.d 目录中的指令(*.cfg 文件)。
  2. 查看 /var/log/cloud-init.log/var/log/cloud-init-output.log 文件以了解特定问题的详情。例如,如果 root 分区没有自动扩展,请检查 growpart 工具的日志消息。如果文件系统没有扩展,请检查 resizefs 的日志消息。例如:

    # grep resizefs /var/log/cloud-init.log
    注意

    growpart 不支持 LVM。如果您的 root 分区基于 LVM,在第一次引导时不会自动扩展 root 分区。

  3. 以 root 身份重新运行 cloud-init 命令:

    1. 只使用 init 模块重新运行 cloud-init

      # /usr/bin/cloud-init -d init
    2. 使用配置中的所有模块重新运行 cloud-init

      # /usr/bin/cloud-init -d modules
    3. 删除 cloud-init 缓存,并强制 cloud-init 在引导后运行:

      # rm -rf /var/lib/cloud/ && /usr/bin/cloud-init -d init
    4. 清理目录并模拟一个干净的实例:

      # rm -rf /var/lib/cloud/instances/
      # rm -rf /var/lib/cloud/instance
      # rm -rf /var/lib/cloud/data/
      # reboot
    5. 重新运行 cloud-init 工具:

      # cloud-init init --local
      # cloud-init init

其他资源