Как я могу добавить несколько хостов начальной загрузки в кластер MarkLogic с помощью MarkLogic API?

Мне нужно создать несколько хостов начальной загрузки в кластерах с помощью marklogic API во время развертывания с использованием ml-gradle.

Я знаю, что могу настроить его с помощью консоли администратора (порт 8001), но я не могу понять, как добавить несколько хостов начальной загрузки в кластер MarkLogic с помощью MarkLogic API?

Изменить конфигурацию локального кластера


person Manish Narang    schedule 13.05.2020    source источник


Ответы (3)


В Почтальоне работал следующий кейс:

HTTP Verb:
PUT

Authorization:
Digest Auth admin:admin

Header: 
Content-Type application/json

URI:
{ml-host}:8002/manage/v2/hosts/{new-bootstrap-host}/properties

Body:
{
    "bootstrap-host": true
}  
person Manish Narang    schedule 15.05.2020

Я предполагаю, что вы имеете в виду Management API. В этом случае вы можете выполнить POST для конечной точки хостов, чтобы определить хосты начальной загрузки.

https://docs.marklogic.com/REST/POST/manage/v2/hosts

cat myHost.json
==> 

{
  "host-name": "hostname1",
  "group": "",
  "bind-port": 8090,
  "foreign-bind-port": 9091,
  "zone": "",
  "bootstrap-host": true
}

curl -X POST --digest -u admin:admin -H "Content-type: application/json" \
-d @myHost.json http://localhost:8002/manage/v2/hosts 

==>  Defines the host, named "hostname1," as the bootstrap host in 
     the cluster. 
person Michael Gardner    schedule 13.05.2020
comment
Получение статуса ошибки: 405 Метод запрещен REST-UNSUPPORTEDMETHOD: (err: FOER0000) Конечная точка не поддерживает метод: POST - person Manish Narang; 15.05.2020

Хост начальной загрузки -> dh5a

Целевой присоединяющийся хост -> dh5b

  1. Сохраните конфигурацию dh5b как dh5b-config.xml
curl -o dh5b-config.xml --user {authen-user:passwd} \
-X GET -H "Content-type:application/xml" \
http://dh5b:8001/admin/v1/server-config
  1. Отправьте конфигурацию dh5b на dh5a как cluster-config.zip
curl --digest --user {authen-user:passwd} -X POST -o cluster-config.zip -d "group=Default" \
--data-urlencode "server-config@./dh5b-config.xml" \
-H "Content-type: application/x-www-form-urlencoded" \
http://dh5a:8001/admin/v1/cluster-config
  1. Отправьте cluster-config.zip на dh5b и завершите процесс присоединения.
curl --anyauth --user {authen-user:passwd} -X POST -H "Content-type: application/zip" \
--data-binary @./cluster-config.zip \
http://dh5b:8001/admin/v1/cluster-config

Для производственного развертывания:

1) Используйте Gradle для развертывания дополнительных хостов, если Gradle разрешен

2) Написать / выполнить сценарий оболочки для включения вышеуказанных операций API

(Этот подход намного интереснее: сочетание старой оболочки и современного API)

Затем вы можете использовать инструмент автоматизации для вызова Shell или Gradle.

person Fiona Chen    schedule 13.05.2020