ножная бутстрап родных расширений - PullRequest
1 голос
/ 30 декабря 2011

Я пытаюсь настроить chef на узле через knife bootstrap IP.Кажется, он работает нормально, пока нативное расширение (mkmf) не потребует build-основы.Пользователь, который использует нож для входа в систему, является пользователем root, поэтому он должен иметь возможность устанавливать основные сборки.

Кто-нибудь знает, может ли это быть автоматизировано, или мне нужно войти на каждую машину, которую я хочу загрузить и установитьэти пакеты раньше?

Спасибо,
Робин

1 Ответ

2 голосов
/ 02 января 2012

Есть пара вещей, которые вы можете сделать.

  1. Поместите основы сборки в вашу установку ОС или базовый образ, чтобы он был там перед попыткой установить что-либо, компилирующее собственные расширения (это, вероятно, JSON RubyGem при установке Chef).

  2. Добавьте пакет build-essentials в список, установленный в скрипте начальной загрузки. Шаблон начальной загрузки по умолчанию, ubuntu10.04-gems делает это уже , хотя.

  3. Используйте установщик полного кода Opscode . Opscode собирает скомпилированные, нативные пакеты со всем, что выше libc, необходимое для запуска клиента Chef (или соло). На этой странице содержатся инструкции о том, как использовать небольшой скрипт для определения платформы и загрузки нужного пакета из корзины S3. Например, если вы работаете в Ubuntu 10.04, он обнаружит платформу, версию и архитектуру, а затем найдет соответствующий пакет .deb. Это можно сделать с помощью knife bootstrap, используя этот шаблон (это будет в следующей выпущенной версии Chef.

...