2017-01-02 7 views
0

Как я могу использовать марионетку для сборки из исходного кода без использования нескольких команд Exec ?. У нас есть модули для него на кузнице, которую я мог бы использовать?Использование марионетки для сборки из исходного кода

+1

Это прецедент, который очень далек от того, что делает Puppet. Вместо этого используйте что-то вроде CMake, autotools, GNUMake и т. Д. –

ответ

1

Можно использовать Puppet для создания приложений из источника без использования execs, возможно, с использованием специального письменного типа и поставщика. В противном случае, да, это должно быть несколько различных ресурсов exec с onlyif, creates и т. Д. Инструкциями, чтобы остановить их при каждом запуске агента.

Модель управления конфигурацией Puppet известна как желаемая модель состояния: вы определяете конечное состояние системы и позволяете системе. Вот почему exec обычно избегают в Puppet: они не соответствуют желаемой модели состояния. Он также делает такие вещи, как обновление приложения или работа с неизвестными, как частичный сбой компиляции, которая создает требуемый файл.

По-моему, Я бы не рекомендовал использовать управление конфигурацией для создания приложений из источника вообще. Есть несколько проблемы присущей с этим способом (это не только для кукол, но большинство языков управления конфигурацией):

  • Медленнее работает, как работает компиляцию может быть длиннее и обнаружение того, что это полное, как правило, немного сложнее, Задачи
  • Проблемы с половинным полным состоянием или сбоем: если компиляция разрывается на полпути, то еще сложнее обнаружить и решить
  • Выполнение компиляции idempotent: вы должны обернуть эту команду в логике, которая определяет, была ли эта установка уже выполнена , Однако это сложно, поскольку такие вещи, как обнаружение файла флага или конкретного двоичного файла, могут возникать даже тогда, когда компиляция заканчивается сбоем.
  • Модернизация или изменение: нет простого способа обновления или изменения приложения. С пакетом было бы легче сделать это.

Это похоже на то, что лучше обслуживать упаковкой, используя такие инструменты, как FPM или только собственные инструменты для сборки пакетов, такие как rpmbuild.

+0

Я понимаю, что мы не должны строить из источника, используя марионетку, но это небольшая часть большого кукольного модуля для конфигурации сервера. Использует «Exec» лучший способ сделать это? –

+1

Exec был бы лучшим способом в этом случае да. Какое приложение это? На кузнице могут быть существующие модули, которые могли бы сделать это за вас –