Foreman
無法使用 Foreman API 創建新主機 - 缺少整理模板
我希望這屬於伺服器故障…
我正在嘗試使用工頭 API 創建主機(使用錘子,但發布主機有效負載會給我相同的結果)。每次,它都會抱怨我缺少整理模板。
來自 API 的錯誤消息是:沒有找到此主機的完成模板,請確保您在 CentOS 6.7 設置中至少定義了一個
通過 Foreman API 創建主機時如何指定整理模板?
文件中沒有任何內容告訴我如何在創建主機時提供完成模板選擇。在 Foreman UI 中使用相同的設置執行此操作就可以了。當我在配置模板部分點擊“解決”時,我也可以看到我的完成模板。
一些細節:這是針對 VMWare 集群的 Foreman 1.10.1
這是我的主機有效負載
"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" ] }
只是回到這一點,我最終將問題解決為權限問題。也就是說,我發布的有效負載不會正確創建主機,因為它實際上有些錯誤。但是,如果您使用管理員使用者呼叫 API(或使用錘子),我發布的錯誤就會消失。
這裡的問題是您使用的作業系統沒有與之關聯的完成模板。這不是您在創建主機時必須做的事情,而是在創建作業系統時要做的事情。
轉到主機 > 作業系統 > CentOS 6.7,然後從那裡的列表中選擇一個完成模板。如果你沒有,我建議選擇 Kickstart 完成。它所做的只是安裝 Puppet 並告訴 Foreman ‘嘿!我完成了安裝:)’
這是您要查找的內容:
如果您沒有看到任何完成模板,請轉到主機 > 配置模板,查找“Kickstart 預設完成”並將其與 CentOS 6.7 關聯。之後,您應該可以設置它。這是你應該看到的:
一旦你的作業系統有一個與之關聯的完成模板,它應該可以很好地解決。如果即使在這種情況下也找不到完成模板,請確保您提供了正確的作業系統選項。