Марионеточный поставщик бродяги, не читающий hiera.yaml бэкенд правильно?

Если два пользователя США и другой не американский запрос на тот же файл static.html и Вы захотите показать другую версию каждому из них затем, то сквид не поможет. Можно использовать GeoIP MaxMind с nginx.

http://wiki.nginx.org/HttpGeoIPModule

3
задан 20 June 2014 в 17:33
1 ответ

Ладно, похоже, я столкнулся с двумя разными проблемами. Самая большая проблема заключалась в том, что хотя у меня был созданный мной модуль под названием «hieraconfig», который копировал мои предварительно созданные файлы hiera.yaml и common.json в / etc / puppet, модуль jboss, который вызывает hiera, выполнялся первым (хотя я включил это после hieraconfig в манифесте - см. ниже). Я попытался исправить это, чтобы сначала оценить hierasetup в манифесте site.pp, но он все равно сначала запустил модуль jboss:

stage { 'pre':
  before => Stage['main']
}

# add the hierasetup module to the new 'pre' run stage
class { 'hierasetup':
  stage => 'pre'
}

include ::hierasetup
include ::jboss

У меня нет текущего исправления для этого. Но по крайней мере я знаю, что часть отказа заключалась в том, что /etc/puppet/hiera.yaml и /etc/puppet/hieradata/common.json даже не присутствовали на виртуальной машине, когда hiera вызывалась из модуля jboss, поскольку hierasetup еще не бегал. Я сделал эту работу временно, используя Vagrant ' s script provisioner вместо puppet, чтобы скопировать файлы туда для меня.

Вторая проблема заключалась в том, что, поскольку я думал, что эти файлы присутствуют все время, я сильно запутался в том, что должен был делать "puppet.hiera_config_path". Путем различных попыток проб и ошибок я обнаружил следующее:

  1. puppet.manifests_path , puppet.modules_path и puppet.hiera_config_path указывает только на пути на хост-машине (в мой случай на OSX). Не дайте себя обмануть, если вы используете относительные пути, что это связано с монтированием / vagrant на виртуальной машине, а не скорее относительно каталога, содержащего ваш Vagrantfile на хост-машину (хотя это, очевидно, то, что монтируется на / бродяга).

  2. Каждая из этих _path переменных, ЕСЛИ и ТОЛЬКО ЕСЛИ они на самом деле установлен в Vagrantfile (в противном случае каталоги марионеток по умолчанию будут найден), заставит Vagrant скопировать модули, манифесты и hiera config в подкаталоги в / tmp / vagrant-puppet [-X] (с -X, возможно, является дополнительным суффиксом числа, например / tmp / vagrant-puppet-1) и скажите puppet искать их в / tmp.

    Если у вас есть файлы марионеток на виртуальной машине , которые вы хотите используйте, но установите переменные _path , тогда команда марионетки Vagrant будет не собираюсь их найти, потому что он перенаправляет марионетку на / tmp / vagrant-puppet [-X], когда вы их устанавливаете. Вы не можете это изменить пункт назначения на виртуальной машине, хотя вывод "vagrant up" уведомит вы, где они отображаются, вот так:

    default: / tmp / vagrant-puppet-1 / manifest => / Users // vm_stuff / vagrant-fresh / puppet_files / manifestests

    default: / tmp / vagrant-puppet -1 / modules-0 => / Users // vm_stuff / vagrant-fresh / puppet_files / modules

    Путь после стрелки => - это исходный каталог на вашем хосте. машина, которую вы указали с помощью переменных _path в Vagrantfile. Путь перед стрелкой => - это местоположение на виртуальной машине. куда будет скопировано содержимое исходного каталога.

    Если вместо этого вы предпочитаете, чтобы Vagrant по умолчанию выглядел как марионетка каталоги для файлов, которые вы уже разместили на виртуальной машине (которые вы не нужно копировать Vagrant для вас в / tmp), тогда не указывайте любые переменные _path в Vagrant. В качестве альтернативы, если ни расположение по умолчанию или расположение / tmp удовлетворительное, вы можете полностью переопределить поведение Vagrant по умолчанию, явно указав, где искать каждый, с помощью puppet.options переменная, например:

    puppet.options = "--hiera_config = / path / to / hiera.yaml если вы вручную не переопределите puppet.options.

2
ответ дан 3 December 2019 в 07:02

Теги

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