Я следовал некоторым "лучшим практикам" из Марионетка 2.7 Поваренная книга и создал агент - основу марионетки с git cvs. К сожалению, в книге не рассматривается Джепетто, поэтому я вынужден импровизировать эту часть.
У меня есть один основной репозиторий git, содержащий manifests
и modules
папки. Я хочу добавить настраиваемый модуль в modules
, но при этом я столкнулся с проблемами.
Во-первых, я не могу найти ничего похожего на тип проекта "основная конфигурация", который по умолчанию содержал бы manifests
и modules
папки. Итак, я создал простой проект «Puppet project» и создал папки вручную.
Поскольку - насколько я понимаю - в этой конфигурации Gepetto на самом деле не знает, что этот проект фактически будет содержать все модули, он не предоставляет возможность создать «проект модуля Puppet» подпроект, который будет вложен в "Марионеточный проект" modules
папка.
Когда я вкладываю его вручную (указав произвольное местоположение в New Puppet Module Project
волшебник), я получаю 'Auto share git projects' has encountered a problem
ошибка:
Невозможно игнорировать ресурсы Попытка beginRule: F / puppet @ puppetmaster / modules / un named, не соответствует правилу внешней области: MultiRule [P / mymodule]
Удалось ли кому-нибудь из вас заставить Gepetto работать с модулями, когда все охвачено чем-то вроде «главного проекта», который инкапсулирует всю конфигурацию?
Это ответ, который я получил от Томаса Халлгрена:
Geppetto в настоящее время не поддерживает проекты с вложенными в них модулями. Предполагается, что у вас есть один проект на модуль. Однако проект - это не то же самое, что физическое расположение на диске, поэтому большинство макетов можно успешно сопоставить с рабочим пространством Geppetto. Для случая использования, который вы упомянули ниже (репозиторий Git с папкой "modules"), я думаю, что лучший способ сопоставить его - это выполнить следующие шаги:
- Откройте представление «Репозитории Git». Вы найдете его в «Окно» -> «Показать вид» -> «Другое ...» -> «Git».
- Добавьте рассматриваемый репозиторий в представление, либо назначив существующий локальный клон (желтый барабан с зеленым знаком плюса), либо клонируя удаленный репозиторий (два желтых барабана с зеленой стрелкой)
- Разверните репозиторий, а затем разверните папку «Рабочий каталог» и «модули».
- Щелкните правой кнопкой мыши один из модулей и выберите «Импортировать проекты ...». Появляется волшебник
- Выберите «Импортировать как общий проект» и нажмите «Готово». Теперь проект отображается в представлении Project Explorer.
- Щелкните проект правой кнопкой мыши и выберите «Добавить характер марионеточного проекта».
Повторите шаги 4-6 для всех желаемых модулей.
Теперь вы можете работать с модулями по отдельности, и Geppetto распознает проекты как проекты модулей и сопоставит их соответствующим образом, чтобы перекрестные ссылки и т. Д. Работали правильно.
Чтобы добавить новый модуль в каталог «modules» того же репозитория Git:
- Щелкните правой кнопкой мыши в Project Explorer и выберите «New» -> «Project» -> «Puppet Module Project».
- Введите имя проекта, оставьте флажок "Использовать местоположение по умолчанию" и нажмите "Готово".
- Щелкните проект правой кнопкой мыши и выберите «Команда» -> «Поделиться проектом».
- В появившемся мастере выберите «Git».
- Нажмите «Далее», а затем выберите репозиторий в раскрывающемся списке.
- Введите «модули» в поле «Путь в репозитории».
- Нажмите Готово
Дополнительную информацию можно найти в документации Geppetto здесь: http://docs.puppetlabs.com/geppetto/4.0/#geppetto-and-pe
Мы очень приветствуем идеи о том, как улучшить этот поток.