Где в Debian хранятся журналы облачной инициализации для запуска предоставленной пользователем конфигурации?

Я пытаюсь отладить некоторые сложные пользовательские данные облачной конфигурации, и у меня возникли проблемы с поиском местоположения записей журнала конкретных команд, которые 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, я попытался добавить следующее в свой yaml-файл Cloud-config:

reporting:
  debug_log:
    level: DEBUG
    type: log

но результат был тот же — новых записей в cloud-init.log не было.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

runcmd принимает указанные команды и записывает их в сценарий оболочки:

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 записывает только сценарий, который будет запущен позже. Модуль, который фактически запускает сценарий, — это 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

Другие вопросы по теме