Как добавить модуль кукол в 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"), я думаю, что лучший способ отобразить его - это выполнить следующие шаги:
- Откройте представление "Git Repositories". Вы найдете его в "Окно" -> "Показать представление" -> "Другое..." -> "Git"
- Добавьте нужный репозиторий к представлению, назначив существующий локальный клон (желтый барабан с зеленым знаком плюс) или клонируя удаленный репозиторий (два желтых барабана с зеленой стрелкой)
- Разверните хранилище, а затем разверните "Рабочий каталог" и папку "модули".
- Щелкните правой кнопкой мыши по одному из модулей и выберите "Импортировать проекты...". Волшебник всплывает
- Выберите "Импортировать как общий проект" и нажмите "Готово". Проект теперь отображается в представлении Project Explorer.
- Щелкните правой кнопкой мыши по проекту и выберите "Добавить проект Puppet Nature"
Повторите шаги 4-6 для всех требуемых модулей.
Теперь вы можете работать с модулями по отдельности, и Geppetto распознает проекты как проекты модулей и соответственно отображает их так, чтобы перекрестные ссылки и т. Д. Работали правильно.
Чтобы добавить новый модуль в каталог "modules" в том же репозитории Git:
- Щелкните правой кнопкой мыши в Project Explorer и выберите "New" -> "Project" -> "Puppet Module Project"
- Введите имя для проекта, оставьте флажок "Использовать местоположение по умолчанию" и нажмите "Готово".
- Щелкните правой кнопкой мыши по проекту и выберите "Команда" -> "Поделиться проектом".
- Выберите "Git" в появившемся мастере
- Нажмите "Далее", а затем выберите хранилище в раскрывающемся списке.
- Введите "модули" в поле "Путь в хранилище"
- Нажмите Готово
Дополнительную информацию можно найти в документации Geppetto здесь: http://docs.puppetlabs.com/geppetto/4.0/
Идеи о том, как улучшить этот поток, очень приветствуются.