puppet как управлять сервисом только если

Может ли кто-нибудь помочь мне с марионеткой, я хочу запустить свой сервис с помощью smt, например:

service {"my_service":
    ensure     => running,
    enable     => true,
    hasstatus  => true,
    hasrestart => true,
}

но для этого требуется какая-то папка, которая может появиться в любое время, и я не могу ее контролировать. Так что я хочу что-то вроде onlyif => для service

кажется, что если мой сервис требует exec с onlyif, это не работает...


person Roman Iuvshin    schedule 20.11.2013    source источник


Ответы (1)


Почему бы вам не использовать «требовать» exec, который проверяет существование папки?

service {"my_service":
    ensure     => running,
    enable     => true,
    hasstatus  => true,
    hasrestart => true,
    require => Exec['checkForDir'],
}

exec {'checkForDir':
    command => "/bin/bash -e if [ -d "$DIRECTORY" ]; then; exit 0; fi;",
    returns => '0', #error will be thrown if the command doesn't return zero
}

Возможно, нужно поиграться, чтобы заставить работать синтаксис встроенной команды, но это должно сработать.

person Alan Smith    schedule 22.11.2013
comment
Вы уверены, что это предотвратит выполнение оператора службы? если в exec определены returns => '0' и command выполнение завершится с другим кодом, который заблокирует службу? - person Roman Iuvshin; 22.11.2013