Я дважды прочитал документацию по Chef. Я до сих пор не могу осмыслить эту концепцию, потому что они пропускают только основы и переходят к сложным развертываниям с помощью chef-server.
Есть ли простой способ подготовить сервер и развернуть его с помощью шеф-повара и, возможно, ножа?
Я могу ошибаться, но похоже, что с моими готовыми кулинарными книгами это должно быть очень просто.
knife rackspace server create --flavor 1 --image 112
Это подготовит мой сервер. При желании я могу передать --run-list "recipe [mything]", но как мои кулинарные книги в ~ / my_cookbooks действительно попадают на сервер? Нужно ли мне их вручную передавать? Это кажется контрпродуктивным.
Если вы используете chef-solo, вы не сможете использовать нож. Knife - это клиент API для шеф-сервера с некоторыми дополнительными служебными сахарами (например, knife rackspace server create
вы упомянули).
Чтобы настроить сервер с помощью chef-solo, вы должны скопировать репозиторий chef на сервер и запустить там chef-solo через ssh. Я не знаю ни одного готового скрипта или плагина для ножа, который делал бы это автоматически.
Команда knife rackspace server create
создает новый сервер Rackspace, а затем инициализирует его для chef-сервера, о котором знает Knife, путем вызова knife bootstrap
. Это не сработает с chef-solo.
Технически, knife bootstrap
, и поэтому knife rackspace server create
, можно заставить работать с chef-solo, написав собственный шаблон начальной загрузки, который вместо инициализации chef-client будет загружать ваш репозиторий chef и запускать chef-solo - см. knife bootstrap --help
, его страница вики, или источник для получения подробной информации. Вы можете посмотреть примеры шаблонов для установки chef-client Вот. Однако это расширенная функция, и она не очень хорошо документирована.
Если вы не хотите справляться со сложностью установки и управления собственным Chef-сервером, вы можете использовать бесплатный уровень Opscode Hosted Chef, который является предложением SAAS Chef-server и включает до трех узлов бесплатно. Я бы порекомендовал начать любую серьезную работу с сервером в любом случае - chef-solo ничем не хуже хорошего сценария начальной оболочки, не более того, и вы упускаете многие важные / интересные функции, такие как поиск и пакеты данных, которые позволяют вам настройте свои серверы на основе данных.
Проверьте ножевое соло плагин, который может автоматически устанавливать chef-solo на ваш удаленный сервер, загружать на него ваши кулинарные книги, а затем запускать chef-solo. Он в основном автоматизирует то, что предлагали сделать другие люди, ответившие на этот вопрос.
Перед каждым запуском chef-solo на целевой машине должны присутствовать кулинарные книги, либо путем их передачи (через ftp / scp), либо путем указания cookbook_path на общий сетевой ресурс.
Если вы хотите, чтобы кулинарные книги загружались автоматически, вам необходимо запустить Chef Server. Независимо от того, хотите ли вы запустить собственный шеф-сервер или использовать хостинг от OpsCode, решать вам, но это необходимо.
Самый простой, самый простой способ начать работать с Chef-Solo.
Примеры надуманы, и вы должны их модифицировать.
Дополнительная информация о Chef Solo:
Хотя Chef Solo полезен, это действительно ограниченный способ использования Chef. Он не предоставляет информацию об узле за пределами самого узла, поэтому его нельзя использовать для динамического обнаружения или управления инфраструктурой на основе данных почти так же легко, как с Chef Server.
Для этого есть проект git;)
Git-проект с ножом-соло должен позволить вам бежать knife
в сочетании с chef-solo
и позволить вам выполнять удаленную подготовку из вашей локальной среды разработки на удаленные серверы, как это, после того, как вы настроили его локально и установили:
knife solo cook ubuntu@10.0.0.201