无法使用Foreman API创build新主机 – 缺less完成模板

我希望这属于服务器故障…

我试图创build一个使用工头API的主机(使用锤子,但POST主机有效载荷给了我相同的结果)。 每一次,它都抱怨我缺less一个整理模板。

来自API的错误信息是:没有find这个主机的完成模板,确保你至less在你的CentOS 6.7设置中定义了一个

如何通过Foreman API创build主机时指定整理模板?

文档中没有任何内容告诉我如何在创build主机时提供整理模板select。 在Foreman UI中使用相同的设置做到这一点工作得很好。 当我在configuration模板部分点击“解决”时,我也可以看到我的整理模板。

一些细节:这是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" ] } 

这里的问题是,你正在使用的操作系统没有关联完成模板。 在创build主机时,这不是您必须执行的操作,而是在创build操作系统时。

转到主机>操作系统> CentOS 6.7并从那里的列表中select一个完成模板。 如果你没有,我build议selectKickstart完成。 它所做的只是安装Puppet并告诉Foreman'嗨! 我完成安装:)'

这是你要找的东西:

OS完成模板选择

如果您没有看到任何完成模板,请转至主机>configuration模板,查找“Kickstart默认完成”并将其与CentOS 6.7关联。 之后,你应该可以设置它。 这是你应该看到的:

配置模板与操作系统相关联


一旦你的操作系统有一个完成模板关联,它应该解决得很好。 如果即使在这种情况下仍然无法find完成模板,请确保您提供了正确的操作系统选项。

只是回到这个,我最终解决了这个问题,作为一个权限问题。 也就是说,我发布的有效载荷不会正确创build主机,因为它实际上有些错误。 但是,如果您使用pipe理员用户调用API(或使用锤子),则发布的错误消失。