Ресурс Puppet Exec для применения только при изменении файла - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть два типа ресурсов марионеток, Файл и Exec:

file { 'folder_a':
  source  => 'puppet:///modules/folder_a',
  ensure  => 'directory',
  recurse => true,
  path    => 'C:/folder_a',
  source_permissions => ignore,
  notify  => Exec['install.bat'],
}

exec { 'test_cmd':
  path      => $::path,
  command   => 'cmd.exe /c C:/test.cmd',
  provider  => windows,
  subscribe => File['folder_a'],
  logoutput => true,
}

Если ресурс файла не применяется, я не хочу, чтобы ресурс Exec также запускался.Но если исходные файлы обновляются, то должен запускаться Exec.

Возможно ли это?

1 Ответ

0 голосов
/ 12 февраля 2019

Да.Как отмечено в документах для типа Exec, есть атрибут refreshonly:

refreshonly

Команда должна толькозапускаться как механизм обновления при изменении зависимого объекта.

Похоже, это именно то, что вам нужно:

exec { 'test_cmd':
  path      => $::path,
  command   => 'cmd.exe /c C:/test.cmd',
  provider  => windows,
  subscribe => File['folder_a'],
  logoutput => true,
  refreshonly => true, # Add this line.
} 

Имейте в виду, что некоторые настоятельно рекомендуем refreshonly использовать только в крайнем случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...