Как работать с зависимостями Puppet при установке Nginx 1.0.5 на Ubuntu 11.04

Я новичок в Puppet, и у меня есть вопрос о работе с зависимостями.

Я использую Puppet для установки Nginx 1.0.5 в Ubuntu 11.04 . Это требует добавления нового репозитория apt, поскольку natty обычно поставляется с Nginx 0.8. В командной строке установка происходит следующим образом:

# apt-get install python-software-properties
# add-apt-repository ppa:nginx/stable
# apt-get update
# apt-get install nginx

Итак, я написал этот сценарий Puppet:

class nginx::install {
  package { "nginx":
    ensure => present,
    require => Exec["nginx_repository"],
  }

  exec { "add-apt-repository ppa:nginx/stable && apt-get update":
    alias => "nginx_repository",
    require => Package["python-software-properties"],
  }

  package { "python-software-properties":
    ensure => installed,
  }
}

Сценарий работает, но директива exec {} запускается каждый раз, а не только тогда, когда фактически устанавливается nginx. В идеале я бы хотел, чтобы команды "apt" выполнялись только перед фактической установкой nginx, а не тогда, когда установка nginx просто проверяется.

У меня есть элементарное представление о модели уведомления / подписки, но я не был уверен как сделать так, чтобы директива nginx отправляла сигнал "уведомить" только при фактической установке nginx.

9
задан richardkmiller 26 August 2011 в 20:55
поделиться