Я надеюсь, что это связано с ошибкой сервера ...
Я пытаюсь создать хост с помощью API-интерфейса мастера (с помощью молотка, но отправка полезных данных хоста дает тот же результат). Каждый раз жалуется, что мне не хватает шаблона отделки.
Сообщение об ошибке от API следующее: для этого хоста не найдены шаблоны отделки, убедитесь, что вы указали хотя бы один в настройках CentOS 6.7.
Как указать шаблон отделки при создании хоста через Foreman API?
Ничего в документации не говорит мне, как выбрать окончательный шаблон при создании хоста. Выполнение этого в пользовательском интерфейсе Foreman с теми же настройками отлично работает. Когда я нажимаю «Разрешить» в разделе шаблонов подготовки, я также вижу свой окончательный шаблон.
Некоторые детали: это Foreman 1.10.1 против кластера VMWare
Вот мой хост
"host" => {
"name" => "ez-apitesthost",
"location_id" => 1,
"organization_id" => 5,
"environment_id" => 9,
"architecture_id" => 1,
"operatingsystem_id" => 2,
"compute_resource_id" => 2,
"root_pass" => "password",
"hostgroup_id" => 73,
"image_id" => 19,
"build" => true,
"enabled" => true,
"provision_method" => "image",
"managed" => true,
"compute_profile_id" => 11,
"compute_attributes" => {
"cpus" => "1",
"corespersocket" => "2",
"memory_mb" => "4096",
"cluster" => "MYCLUSTER01",
"path" => "/Datacenters/MYDC/vm",
"guest_id" => "centos64Guest",
"scsi_controller-type" => "ParaVirtualSCSIController"
"volumes_attributes" => {
"0" => {
"datastore" => "dc_sata_01"
}
}
},
"owner_id" => "75",
"overwrite" => true,
"host_parameters_attributes" => {},
"interfaces_attributes" => {
"0" => {
"type" => "interface",
"name" => "ez-apitesthost",
"domain_id" => "1",
"subnet_id" => "2",
"managed" => "false",
"primary" => "true",
"provision" => "true",
"compute_attributes" => {
"type" => "VirtualVmxnet3",
"network" => "internal vlan"
}
}
}
}
вот ответ
{
"error" => {
"id" => nil,
"errors" => {
"base" => [
[0] "No finish templates were found for this host, make sure you define at least one in your CentOS 6.7 settings"
],
"conflict" => [],
"interfaces.conflict" => []
},
"full_messages" => [
[0] "No finish templates were found for this host, make sure you define at least one in your CentOS 6.7 settings"
]
}
Проблема здесь в том, что используемая вами ОС не имеет связанного с ней шаблона отделки. Это не то, что вам нужно делать при создании хоста, а при создании ОС.
Перейдите в Хосты> Операционные системы> CentOS 6.7 и выберите готовый шаблон из списка. Если у вас их нет, я бы рекомендовал выбрать отделку Kickstart. Он просто устанавливает Puppet и говорит Форману: «Эй! Я закончил установку :) '
Вот что вы ищете:
Если вы не видите никаких шаблонов завершения, перейдите в Host> Provisioning Templates, найдите «Kickstart default finish» и свяжите его с CentOS 6.7. После этого вы сможете установить его. Вот что вы должны увидеть:
После того, как с вашей ОС будет связан шаблон отделки, он должен нормально разрешиться. Если даже в этом случае он не может найти готовый шаблон, убедитесь, что вы предоставляете правильные параметры ОС.
Чтобы вернуться к этому, я решил проблему как проблему с разрешениями. Тем не менее, опубликованная мной полезная нагрузка НЕ будет правильно создавать хост, потому что на самом деле это несколько ошибочно. Однако опубликованная мною ошибка исчезнет, если вы вызовете API (или воспользуетесь молотком) с правами администратора.