Как добавить модуль кукол в Gepetto при использовании git?

Я следовал некоторым "лучшим практикам" из Puppet 2.7 Cookbook и создал среду агента - puppet master с git cvs. К сожалению, книга не охватывает Гепетто, поэтому я вынужден импровизировать эту часть.

У меня есть один главный репозиторий Git, который содержит manifests а также modules папки. Я хочу добавить пользовательский модуль в modules, но при этом я столкнулся с проблемами.

Прежде всего, я не могу найти ничего похожего на тип проекта "основная конфигурация", который по умолчанию будет содержать manifests а также modules папки. Поэтому я создал голый проект "Puppet project" и создал папки вручную.

Потому что - насколько я понимаю, - в этой конфигурации Gepetto на самом деле не знает, что этот проект на самом деле будет содержать все модули, он не предоставляет опцию для создания подпроекта"Puppet module project", который будет вложен в " Кукольный проект "х modules папка.

Когда я вкладываю его вручную (указав в New Puppet Module Project мастер), я получаю 'Auto share git projects' has encountered a problem ошибка:

Невозможно игнорировать ресурсы. Попытка beginRule: F/puppet@puppetmaster/modules/ без имени, не соответствует правилу внешней области действия: MultiRule[P/mymodule]

Кому-нибудь из вас удалось заставить Gepetto работать с модулями, когда все покрыто чем-то вроде "главного проекта", который инкапсулирует всю конфигурацию?

1 ответ

Вот ответ, который я получил от Томаса Халлгрена:

В настоящее время Geppetto не поддерживает проекты с вложенными модулями в них. Предполагается, что у вас есть один проект на модуль. Однако проект - это не то же самое, что физическое расположение на диске, поэтому большинство макетов могут быть успешно сопоставлены с рабочей областью Geppetto. Для случая использования, который вы упомянули ниже (репозиторий Git с папкой "modules"), я думаю, что лучший способ отобразить его - это выполнить следующие шаги:

  1. Откройте представление "Git Repositories". Вы найдете его в "Окно" -> "Показать представление" -> "Другое..." -> "Git"
  2. Добавьте нужный репозиторий к представлению, назначив существующий локальный клон (желтый барабан с зеленым знаком плюс) или клонируя удаленный репозиторий (два желтых барабана с зеленой стрелкой)
  3. Разверните хранилище, а затем разверните "Рабочий каталог" и папку "модули".
  4. Щелкните правой кнопкой мыши по одному из модулей и выберите "Импортировать проекты...". Волшебник всплывает
  5. Выберите "Импортировать как общий проект" и нажмите "Готово". Проект теперь отображается в представлении Project Explorer.
  6. Щелкните правой кнопкой мыши по проекту и выберите "Добавить проект Puppet Nature"

Повторите шаги 4-6 для всех требуемых модулей.

Теперь вы можете работать с модулями по отдельности, и Geppetto распознает проекты как проекты модулей и соответственно отображает их так, чтобы перекрестные ссылки и т. Д. Работали правильно.

Чтобы добавить новый модуль в каталог "modules" в том же репозитории Git:

  1. Щелкните правой кнопкой мыши в Project Explorer и выберите "New" -> "Project" -> "Puppet Module Project"
  2. Введите имя для проекта, оставьте флажок "Использовать местоположение по умолчанию" и нажмите "Готово".
  3. Щелкните правой кнопкой мыши по проекту и выберите "Команда" -> "Поделиться проектом".
  4. Выберите "Git" в появившемся мастере
  5. Нажмите "Далее", а затем выберите хранилище в раскрывающемся списке.
  6. Введите "модули" в поле "Путь в хранилище"
  7. Нажмите Готово

Дополнительную информацию можно найти в документации Geppetto здесь: http://docs.puppetlabs.com/geppetto/4.0/

Идеи о том, как улучшить этот поток, очень приветствуются.

Другие вопросы по тегам