Шаблон разработки Chef Desktop
Установка кулинарной книги Chef Desktop
Скопируйте кулинарную книгу Chef Desktop, полученную от Chef, и распакуйте этот файл в свой каталог кулинарных книг. Теперь у вас есть две кулинарные книги.
Обновите файл metadata.rb для кулинарной книги Chef Desktop, чтобы добавить свои контактные данные.
Выбор настроек Chef Desktop
Chef Desktop поставляется с большим количеством параметров для настройки ваших настольных компьютеров Windows и Mac. Просмотрите файлы mac.rb и windows.rb, чтобы изучить настройки, которые вы хотите включить для тестирования и оценки. Для ресурсов, которые вы пока не хотите изучать, установите их действие в «:nothing». Для получения дополнительной информации о настройках см. документацию по кулинарной книге Chef Desktop.
Тестирование кулинарной книги Chef Desktop
Запуск виртуальных устройств
Вы скачали два виртуальных устройства, также называемых тестовыми образами. Теперь выполните следующую команду, чтобы запустить их:
kitchen create
Применение кулинарной книги Desktop к виртуальным машинам
Далее выполните следующую команду, чтобы «слить» кулинарные книги с тестовым образом базовой операционной системы:
kitchen converge
Проверка настроек
Подтвердите, что объединённый код — это код, который вы хотели применить. В каталоге Chef Desktop в VSCode перейдите в каталог test\integration\default и просмотрите сгенерированные интеграционные тесты. Внимательно изучите их и скорректируйте их, чтобы они соответствовали настройкам, которые вы выбрали в файлах mac.rb и windows.rb. Затем выполните:
kitchen verify
Если какой-либо из тестов завершился неудачно, проверьте вывод и сравните свои настройки в файлах mac.rb или windows.rb с соответствующими тестами.
Очистка Test Kitchen
После завершения тестирования вы можете выполнить следующую команду для удаления запущенных тестовых образов:
kitchen destroy
Объединённая команда Kitchen
В будущем, когда вы станете увереннее, вы можете выполнить kitchen test для одновременного выполнения всех вышеперечисленных шагов, включая шаг очистки.
kitchen test
Загрузка кулинарной книги Chef Desktop
Загрузите кулинарную книгу Chef Desktop на свой сервер Chef Infra. Из командной строки среды разработки перейдите в каталог /cookbooks и выполните:
knife cookbook upload <your cookbook name>
Инструменты Knife и другие инструменты Chef используют имя кулинарной книги, указанное в файле metadata.rb или policyfile.rb, регистр имеет значение. Наиболее простой способ избежать конфликтов с командами knife или chef — это использование кулинарных книг с именами в нижнем регистре.
Теперь ваш сервер Chef Infra имеет кулинарную книгу и настройки, необходимые для применения к узлам.
Настройка файла политики для сервера Chef Infra
Проверьте файл политики и примените его к нашим тестовым узлам. Политики — удобная стратегия для управления узлами. Подробнее о политиках читайте на странице .
Проверка файла политики
Ваш файл политики Chef Desktop Policyfile.rb должен быть похожим на:
name 'desktop-config'
# default_source :supermarket, 'https://supermarket.chef.io' do |s|
# s.preferred_for 'chef-client'
# end
# run_list: chef-client will run these recipes in the order specified.
# cookbook::recipe
run_list 'desktop-config::default'
# Specify a custom source for a single cookbook:
cookbook 'desktop-config', path: '.'
Загрузка файла политики
Загрузите файл политики на сервер Chef Infra. Сначала вызовите chef update, чтобы выполнить необходимую подготовку вашего файла политики.
Если вы используете файл политики впервые, используйте команду chef install для генерации файла блокировки:
chef install Policyfile.rb
Выполняйте chef update и chef push каждый раз, когда обновляете версию кулинарной книги:
chef update
chef push 'my_Policy_Group' 'Policyfile.rb'
Развертывание кулинарной книги Desktop на узел
Теперь вы готовы опробовать кулинарную книгу Chef Desktop на своём первом тестовом узле. Перед началом вам необходимо:
Инициализация первого тестового узла
- Создайте файл
client.rbс базовой информацией, необходимой для подключения к экземпляру сервера Chef Infra - Определите «тестовый узел» — виртуальную машину или ноутбук/настольный компьютер, на котором вы можете протестировать работоспособность кулинарной книги
- Получите серийный номер своего «тестового узла»
С рабочего стола настройте сервер и файл client.rb для своего узла. S90T7HK2 — пример серийного номера узла.
Создание client.rb
Создайте локальный файл client.rb с настройками, похожими на:
log_level :info
log_location STDOUT
validation_client_name 'my_org-validator'
validation_key File.expand_path('c:\chef\my_org-validator.pem')
chef_server_url "https://my.fqdn.com/my_chef_server_instance"
ssl_verify_mode :verify_peer
local_key_generation true
rest_timeout 30
http_retry_count 3
chef_license 'accept'
node_name 'S90T7HK2'
Идентификация тестового узла
C:\> knife node create S90T7HK2
Created node [S90T7HK2]
Применение политики Chef Desktop
Используйте knife node policy set для применения политики к узлу.
Используйте имя политики, указанное в файле Policyfile.rb, который был загружен на сервер Chef Infra.
knife node policy set S90T7HK2 'Windows_Node_Policy_Group' 'desktop-config'
Установка клиента Chef Infra
Перейдите к тестовому узлу и установите клиент Chef Infra из окна повышенных привилегий PowerShell или используйте sudo , если вы устанавливаете его с MacOS. Дополнительную информацию см. в документации Сценарий установки Chef.
В Windows
. { iwr -useb https://omnitruck.chef.io/install.ps1 } | iex; install -project chef
В macOS
curl -L https://omnitruck.chef.io/install.sh | sudo bash
Загрузка client.rb
После завершения установки клиента Chef Infra скопируйте файл client.rb с правильными данными для вашего узла и сервера Chef Infra и поместите его в c:\chef.
Загрузка ключа
Затем скопируйте файл validator.pem , который вы загрузили с сервера Chef Infra в начале руководства, и поместите его в ту же папку.
Развертывание кулинарной книги Chef Desktop на тестовом узле
Запустите клиент:
chef-client
- Далее: Бесконтактное развертывание с Azure
- В заключение: Среда разработки кулинарной книги Chef Desktop
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/desktop/desktop_pattern/