совместное использование местоположения статуса nginx со всеми виртуальными хостами в hiera и puppet

Я использую модуль Jfryman puppet nginx и пытаюсь включить определение статуса с доступными vhosts, поэтому моя иерархия выглядит следующим образом:

---
nginx::nginx_vhosts:
  'default':
    www_root: '/www/default'
    listen_port: 8081

  'default2':
    www_root: '/www/default2'
    listen_port: 8082

  'default3':
    www_root: '/www/default3'
    listen_port: 8083

nginx::nginx_locations:
  'status':
    location: '/status'
    vhost: 'default'...."here wanna include more than one vhost"
    stub_status: true

можно ли как-то сказать, что это место включено в эти виртуальные хосты, не дублируя записи hiera?


person A.Elnaggar    schedule 31.07.2015    source источник


Ответы (1)


Нет, тип location принимает только один < параметр href="https://github.com/jfryman/puppet-nginx/blob/master/manifests/resource/location.pp#L10-11" rel="nofollow">vhost и использует его для определить целевой файл.

Чтобы все было СУХИМ, вам придется воздерживаться от использования параметра nginx_locations класса nginx и самостоятельно объявлять экземпляры nginx::resource::location.

define status_location_for_vhost() {
    nginx::resource::location { "status-for-$name":
        location => '/status',
        vhost    => $name,
        stub_status => true
    }
}

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

person Felix Frank    schedule 03.08.2015
comment
Спасибо за ваш ответ, очень помог, но только что обнаружил, что в этом нет необходимости, поскольку статус является общим для всех виртуальных хостов, поэтому нет смысла включать его для каждого хоста. - person A.Elnaggar; 03.08.2015