Запустить перезапуск NTP после «бродячего возобновления»

Я управляю некоторыми виртуальными машинами сервера Debian 11 с помощью Vagrant. Иногда мне нужноvagrant suspendих, и я заметил, что после , их системное время отключено. Бегsystemctl status ntpпоказывает, что служба NTP отключена из-за сбоя. Я мог бы решить эту проблему, перезапустив NTP вручную после , поэтому я хотел добавить триггер в Vagrantfile:

      config.trigger.after :resume do |trigger|
  trigger.info = "Restart NTP"
  trigger.run = {inline: "bash -c 'systemctl start ntp'"}
end

...но сейчасvagrant resumeвыдает ошибку:

      ==> xxx-vm: Running action triggers after resume ...
==> xxx-vm: Running trigger...
==> xxx-vm: Restart NTP
    xxx-vm: Running local: Inline script
    xxx-vm: bash -c 'systemctl start ntp'
    xxx-vm: System has not been booted with systemd as init system (PID 1). Can't operate.
    xxx-vm: Failed to connect to bus: Host is down
==> xxx-vm: Trigger run failed

Я думал, что этот триггер должен сработать после возобновления работы виртуальной машины, но, видимо, виртуальная машина все еще не работает во время работы. Можно ли автоматически запустить сценарий при возобновлении работы виртуальной машины?

1 ответ

Я понял:runзапускает скрипт на хосте, чтобы запустить его на госте (виртуальной машине),run_remoteнеобходимо использовать:

      config.trigger.after :resume do |trigger|
  trigger.info = "Restart NTP"
  trigger.run_remote = {inline: "bash -c 'systemctl start ntp'"}
end
Другие вопросы по тегам