марионетка параметризовала классы

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

корректный mrdenny's, согласование со сжатым каталогом моментальных снимков является вычислительной мощностью, требуемой сжиматься для издателя и распаковки для подписчика. Для меньших снимков Вы вытащите лучшую производительность из несжатого снимка, но для большего (как Ваш) Вы, вероятно, получите лучшую производительность с помощью сжатия, пробные версии помогут определить лучший метод.

2
задан 25 February 2011 в 22:42
2 ответа

Параметризованные классы не работают с include, к сожалению. Необходимо использовать новый альтернативный синтаксис объявления класса, который был представлен в то же время, что и параметризованные классы:

node 'dev-internal-000008.domain.com' {
    # include software($version="dev-2011.02.11") # (doesn't work)
    class {'software':
        version => "dev-2011.02.11",
    } # works
}

Вещи:

  • Обратите внимание, что это похоже на ресурс (file, service, и т.д.) объявление.
  • То, что определение и объявление и запускаются с части речи, сбивает с толку, но быть осторожными и Вы будете в порядке.
  • Вы не можете объявить класс этот путь несколько раз, способ, с которым Вы можете include. Это, как ожидают, изменится в 2,7, и некоторый более дружественный синтаксис будет, вероятно, представлен.
7
ответ дан 3 December 2019 в 09:09

Вы также можете использовать селектор на основе имени хоста:

class {'software':
    version         => $::hostname ? {
      /hostname1/   => 'dev-2011.02.11',
      default       => 'dev-2011.02.04b',
    },
}
0
ответ дан 3 December 2019 в 09:09

Теги

Похожие вопросы