Я використовую стиснення Debian з PostgreSQL 9.1 з заднього списку. Лялька має версію 2.7.14. На жаль, скрипт init повертає неправильний код виходу для статусу. Тому я написав спеціальну status
команду, щоб визначити, працює чи ні postgresql.
service { 'postgresql':
ensure => running,
enable => true,
hasstatus => false,
hasrestart => true,
status => "pg_lsclusters -h | awk 'BEGIN {rc=0} {if ($4 != \"online\") rc=3} END { exit rc }'",
provider => debian,
}
Моя команда працює як шарм, але лялечка, здається, має проблеми. Я завжди отримую, notice: /Stage[main]/Postgresql/Service[postgresql]/ensure: ensure changed 'stopped' to 'running'
хоча це вже працює.
Тому спробували наступне:
service { 'postgresql':
ensure => running,
enable => true,
hasstatus => false,
hasrestart => true,
status => "exit 0",
provider => debian,
}
Як я зрозумів цю власну status
команду, лялечка завжди повинна думати, що виконується postgresql. Тим не менш, лялька намагається почати postgresql - кожен раз.
У чому я винен? Або це клоп у ляльці?
status
команда лялькових працює як очікується!
provider => init
(і видалітьenable
параметр).