В настоящее время я размещаю набор масштабов Azure под управлением Windows Server 2012 R2, который настроен с расширением Chef (Chef.Bootstrap.WindowsAzure.ChefClient).Когда виртуальная машина подготовлена, расширение сообщает, что оно успешно выполнено через портал Azure, однако зарегистрированный узел на сервере Chef не обновляется, чтобы сохранить предоставленный список выполнения, и первый запуск не полностью завершен.Это вызывает выполнение последующих запусков chef-client с пустым списком запусков.Когда я наблюдаю за отчетами на сервере chef, я вижу запуск с состоянием прервано без ошибок.
При просмотре файла chef-client.log плагинов WindowsAzure я вижу, что он пытается выполнить список выполнения, но, похоже, он прерывается следующим FATAL
FATAL: Errno::EINVAL: Invalid argument @ io_writev - <STDOUT>
Также не создан файл chef-stacktrace.out.Определение расширения ARM выглядит следующим образом:
{
"type": "extensions",
"name": "ChefClient",
"properties": {
"publisher": "Chef.Bootstrap.WindowsAzure",
"type": "ChefClient",
"typeHandlerVersion": "1210.12",
"autoUpgradeMinorVersion": true,
"settings": {
"client_rb": "ssl_verify_mode :verify_none\nnode_name ENV[\"COMPUTERNAME\"]",
"runlist": "recipe[example]",
"autoUpdateClient": "false",
"deleteChefConfig": "false",
"bootstrap_options": {
"chef_server_url": "https://mychefserver.com/organizations/myorg",
"validation_client_name": "myorg-validator",
"environment": "dev"
}
},
"protectedSettings": {
"validation_key": "-----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY----"
}
}
}
Чтобы устранить неполадки, я попытался сократить мою поваренную книгу example
до одного сценария DSC, который устанавливает IIS.Даже на этом шаге я выполнил его несколькими способами, такими как использование windows_feature, powershell_script и dsc_script.Все результаты заканчиваются одной и той же ошибкой.Вот текущий скрипт
powershell_script 'Install IIS' do
code 'Add-WindowsFeature Web-Server'
guard_interpreter :powershell_script
not_if "(Get-WindowsFeature -Name Web-Server).Installed"
end
Если я переопределю список запуска и вызову chef-client вручную, все пройдет успешно.У меня возникают проблемы с уточнением, является ли это расширение Azure Chef, клиент Chef или поваренная книга.
Насколько я могу судить, связь с сервером Chef выглядит хорошо, так как необходимые файлы pemПосле обмена установлен chef-клиент, а поваренная книга загружается и кэшируется с сервера.Кеш удаляется при последующем запуске, однако с пустым списком выполнения.Вот содержимое файла first-boot.json:
{"run_list":["recipe[example]"]}
Вот версии в игре:
- версия chef-client: 14.1.12
- Версия расширения Azure Chef: 1210.12.110.1001
- Версия сервера: Windows Server 2012 R2
Есть идеи, что может произойти?