Выполнить код куклы в зависимости от статуса услуги - PullRequest
1 голос
/ 30 декабря 2011

Как мы можем написать код манифеста марионетки, который определяет, работает ли служба (httpd) на клиентах / агентах марионеток.А если нет, он должен запустить эту службу и отправить электронное письмо?

class apache {
    package { mysql-server: ensure => installed }
    if hasstatus == "false" {
        service { "mysql":
            ensure => running,
            require => Package["mysql-server"],
        }
    }
}

node default {
    include apache
}

Я знаю, что это неправильный код.Но сначала я хочу проверить hasstatus, и если статус сервиса ложный, я хочу запустить сервис и отправить электронное письмо.

Спасибо, Санкет Данги


Я настроил tagmail.conf в мастере puppet, а также включил отчеты о марионетках, но не смог получать письма на мою учетную запись gmail.Я могу видеть отчеты агента марионеток о марионетке, но не получаю письма.Нужно ли для этого настроить почтовый сервер?

My Tagmail Conf : 
all: xxxxxxx@gmail.com

1 Ответ

7 голосов
/ 30 декабря 2011

Puppet не является обязательным сценарием оболочки, в котором необходимо проверить значение X перед выполнением действия Y, которое переводит вас в состояние Z. Вместо этого вы указываете, что хотите состояние Z, а Puppet проверяет текущее состояние и обрабатывает переход .

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

Просто укажите это в своем манифесте рядом с линией package:

service { "mysql":
  ensure  => running,
  enable  => true,
  require => Package["mysql-server"],
}

Строка require обеспечивает установку пакета перед оценкой или запуском службы.

Для отправки уведомлений вы можете использовать функцию отчетов tagmail в Puppet. Сначала настройте файл tagmail ( справочные документы ), например, на /etc/puppet/tagmail.conf на главном сервере:

mysql, apache: wwwadmins@example.com

И в puppet.conf мастера установите:

[master]
reports = tagmail

Убедитесь, что у клиентов включен отчет в puppet.conf:

[agent]
report = true

После этого должны запускаться электронные письма, связанные с любыми ресурсами, с тегами «mysql» или «apache» (имена классов, имена модулей и т. Д.).

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