2012-04-08 14 views
5

Rozpoczęliśmy nowy projekt, który wykorzystuje marklogic do przechowywania dokumentów. Aby uruchomić aplikację, musimy utworzyć bazę danych, las, nowych użytkowników i skonfigurować serwer XDBC. Łatwo to zrobić za pomocą narzędzia administracyjnego dostępnego w Marklogic, ale aby uruchomić go z serwera ciągłej integracji, musimy go zautomatyzować. Czy jest jakiś sposób to zrobić z wiersza polecenia (jak sqlcmd.exe dla sqlserver lub sql plus w Oracle)?Jak utworzyć bazę danych w marklogic ze skryptu

Odpowiedz

5

Dopóki używasz MarkLogic 5.x, najłatwiej jest użyć programu Configuration Manager. To internetowe narzędzie pozwala wyeksportować całą konfigurację serwera DB i serwera aplikacji do pojedynczego pliku xml, który może być kontrolowany w wersji. Można go również zaimportować, aby całkowicie skonfigurować lub ponownie skonfigurować instancję MarkLogic.

Aby użyć tego jako części ciągłej integracji, należy wykonać skrypt importu konfiguracji. Można utworzyć serwer http, który ma jeden punkt końcowy, który wywołuje interfejs API konfiguracji do ładowania, jako documente tutaj: http://community.marklogic.com/pubs/5.0/apidocs/package-api.html. Ta usługa oparta na protokole https może być łatwo wywoływana za pośrednictwem ANT lub dowolnego innego narzędzia CI.

Alternatywnie, szczególnie jeśli nie korzystasz jeszcze z wersji 5.x, możesz skryptować cały proces zamiast używać pakietu konfiguracyjnego. Wszystkie zadania administracyjne są udokumentowane tutaj: http://community.marklogic.com/pubs/5.0/books/adminAPI.pdf. Następnie należy napisać cały kod niezbędny do skonfigurowania bazy danych, serwerów aplikacji itp., A następnie udostępnić go za pośrednictwem serwera http, jak opisano powyżej.

+0

Dzięki za link. używamy 5.x. Na początek próbowałem zaimportować serwer aplikacji do xml i otrzymałem pakiet xml. Następnym krokiem było zainstalowanie pakietu. Użyłem pakietu: install (fn: doc ("/ xdbcserver.xml")) ..... Problem polega na tym, że plik z plikiem uri /xdbcserver.xml powinien znajdować się w bazie danych. Oznacza to, że ktoś musi ręcznie ją tam umieścić. Jest to sprzeczne z celem automatyzacji konfiguracji. Chciałbym funkcji, która ładuje pakiet z systemu plików klienta zamiast istniejącego dokumentu w DB. Any wskazówki? Jeszcze raz dziękuję – uttamkini

1

Dzięki pomocy Clark Richey, mógłbym znaleźć sposób na automatyzację konfiguracji serwera MarkLogic 5.x (choć w żadnym wypadku nie jest to proste).

Na przykład, jeśli chcesz zautomatyzować tworzenie serwera xdbc, Przejdź do konsoli zapytań instancji, w której istnieje ręcznie skonfigurowany serwer xdbc. Użyj następującego xquery do wygenerowania pliku pakietu dla serwera xdbc (w moim przypadek zwany próbnym serwerem).

pakiet nazw modułu importu package = "http://marklogic.com/package/package" at "/MarkLogic/package/package.xqy";

Niech $ my-pakiet: = Pakiet: create()

pakiet

zwrot: dodatek appserver ($ my-pakiet, "Default", "próbka-server")

byś teraz zobacz pakiet xml, który zawiera wszystkie informacje potrzebne do utworzenia i skonfigurowania serwera xdbc. Zapisz to w pliku lub w schowku. Teraz przejdź do konsoli zapytań instancji marklogic, którą chcesz skonfigurować. Użyj następującej xquery, aby faktycznie zainstalować ją na instancji.

pakiet nazw modułu importu package = "http://marklogic.com/package/package" at "/MarkLogic/package/package.xqy";

let $ pakiet: = {wklej xml pakiet zapisany w pliku/schowek STEP1}

pakiet

zwrot: zainstalować ($ pakiet)

Będziesz teraz uzyskać wynik XML, który mówi że pakiet został napisany.

Teraz dla wszystkich ważnych krok automatyzacji tego w moim środowisku CI.Napisałbym niestandardowe zadanie ant/nant (lub w moim konkretnym przypadku cmdlet powershell), który odczytuje plik konfiguracyjny z systemu plików, łączy się z ML przy użyciu XCC (i poświadczeń administracyjnych, ponieważ rzeczy takie jak tworzenie baz danych i serwerów aplikacji potrzebują tego), a następnie wykonuje to samo zdefiniowane powyżej xquery. Mogę wtedy kontrolować plik konfiguracyjny w moim kontrolerze źródłowym iw ten sposób mogę zautomatyzować tworzenie/konfigurację baz danych na świeżej instalacji ML bez jakiejkolwiek ręcznej interwencji. Jakieś inne lepsze sposoby robienia tego?

+0

Tak więc, wiesz, istnieje zestaw mrówek dla MarkLogic na github http: // developer .marklogic.com/code/ant-tasks – derickson

+3

Aplikacja do zarządzania konfiguracją zapewnia również interfejs REST opakowania. Jest URL do POST-owania pakietu do instalacji. Więcej szczegółów tutaj: http://community.marklogic.com/pubs/5.0/apidocs/packageREST.html – grtjn

Powiązane problemy