Назад | Перейти на главную страницу

Невозможно создать новый хост с помощью Foreman API - отсутствует шаблон отделки

Я надеюсь, что это связано с ошибкой сервера ...

Я пытаюсь создать хост с помощью 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 (или воспользуетесь молотком) с правами администратора.