2012-04-08 36 views
5

Chúng tôi đã bắt đầu một dự án mới sử dụng marklogic để lưu trữ tài liệu. Để ứng dụng chạy, chúng tôi cần tạo cơ sở dữ liệu, rừng, người dùng mới và thiết lập máy chủ XDBC. Nó là khá dễ dàng để làm điều đó từ công cụ quản trị web được cung cấp bởi Marklogic, nhưng để chạy nó từ một máy chủ tích hợp liên tục, chúng tôi cần phải tự động hóa nó. Có cách nào để làm điều đó từ dòng lệnh (như sqlcmd.exe cho sqlserver hoặc sql cộng trong oracle) ??Làm cách nào để tạo cơ sở dữ liệu trong marklogic từ tập lệnh

Trả lời

5

Miễn là bạn đang sử dụng MarkLogic 5.x, điều dễ nhất để làm là sử dụng Trình quản lý cấu hình. Công cụ dựa trên web này cho phép bạn xuất toàn bộ cấu hình máy chủ ứng dụng và DB sang một tệp xml duy nhất có thể được kiểm soát phiên bản. Nó cũng có thể được nhập vào để hoàn toàn thiết lập hoặc cấu hình lại cá thể MarkLogic của bạn.

Để sử dụng tính năng này như là một phần của tích hợp liên tục, bạn sẽ phải nhập tập lệnh cấu hình. Bạn có thể tạo một máy chủ http có một điểm cuối gọi API cấu hình để thực hiện việc tải, như tài liệu ở đây: http://community.marklogic.com/pubs/5.0/apidocs/package-api.html. Dịch vụ dựa trên https này có thể dễ dàng được gọi thông qua ANT hoặc bất kỳ công cụ CI nào khác.

Ngoài ra, đặc biệt nếu bạn chưa chạy trên 5.x, bạn có thể viết toàn bộ quá trình thay vì sử dụng gói cấu hình. Tất cả các tác vụ quản trị được ghi lại ở đây: http://community.marklogic.com/pubs/5.0/books/adminAPI.pdf. Sau đó, bạn sẽ phải viết tất cả mã cần thiết để định cấu hình cơ sở dữ liệu, máy chủ ứng dụng, v.v. sau đó hiển thị nó qua máy chủ http như được mô tả ở trên.

+0

Cảm ơn bạn đã liên kết. chúng tôi đang sử dụng 5.x. Để bắt đầu, tôi đã thử nhập máy chủ ứng dụng vào xml và tôi nhận được gói xml. Bước tiếp theo là cài đặt gói. Tôi đã sử dụng gói: install (fn: doc ("/ xdbcserver.xml")) ..... Vấn đề là tệp có uri /xdbcserver.xml được mong đợi có mặt trong cơ sở dữ liệu. Điều này có nghĩa là ai đó phải tự đặt nó vào đó. Nó là loại mâu thuẫn với mục đích tự động hóa cấu hình. Tôi muốn một chức năng tải gói từ hệ thống tập tin khách hàng thay vì một tài liệu hiện có trong DB.Any gợi ý? Cảm ơn một lần nữa – uttamkini

1

Nhờ sự giúp đỡ của Clark Richey, tôi có thể đã tìm ra cách tự động hóa cấu hình của máy chủ MarkLogic 5.x (mặc dù không có nghĩa là đơn giản).

Ví dụ: nếu bạn muốn tự động hóa việc tạo máy chủ xdbc, Truy cập bảng điều khiển truy vấn của một cá thể có máy chủ xdbc được định cấu hình thủ công. Sử dụng xquery sau để tạo tệp gói cho máy chủ xdbc (trong trường hợp được gọi là máy chủ mẫu).

import namespace package = "http://marklogic.com/package/package" tại "/MarkLogic/package/package.xqy";

hãy $ my-gói: = gói: tạo()

gói

trở lại: add-appserver ($ my-gói, "Default", "mẫu-server")

Bạn sẽ bây giờ thấy một gói xml chứa tất cả các thông tin cần thiết để tạo và cấu hình máy chủ xdbc. Lưu tệp này vào một tệp hoặc trên khay nhớ tạm của bạn. Bây giờ hãy vào giao diện điều khiển truy vấn của cá thể marklogic mà bạn muốn cấu hình. Sử dụng xquery sau đây để thực sự cài đặt nó trên cá thể.

import namespace package = "http://marklogic.com/package/package" tại "/MarkLogic/package/package.xqy";

let $ gói: = {dán xml gói bạn đã lưu trong tập tin/vào clipboard bước 1}

gói

trở lại: cài đặt ($ gói)

Bạn sẽ bây giờ là một nhận một kết quả xml mà nói rằng gói đã được viết.

Bây giờ cho tất cả các bước quan trọng để tự động hóa điều này trong môi trường CI của tôi.Tôi sẽ viết một nhiệm vụ kiến ​​/ nant tùy chỉnh (hoặc trong trường hợp cụ thể của tôi là lệnh ghép ngắn PowerShell) đọc tệp cấu hình từ hệ thống tệp, kết nối với ML bằng cách sử dụng XCC (và thông tin quản trị viên, vì các công cụ như tạo cơ sở dữ liệu và máy chủ ứng dụng cần nó) và sau đó thực hiện cùng một xquery được định nghĩa ở trên. Sau đó, tôi có thể kiểm soát phiên bản tệp cấu hình trong điều khiển nguồn của mình và cách đó tôi có thể tự động hóa việc tạo/cấu hình cơ sở dữ liệu trên bản cài đặt ML mới mà không cần bất kỳ sự can thiệp thủ công nào. Bất kỳ cách nào tốt hơn để làm điều đó ??

+0

Vì vậy mà bạn biết, có một bộ ant taks cho MarkLogic trên github http: // developer .marklogic.com/code/ant-tasks – derickson

+3

Ứng dụng quản lý cấu hình cũng cung cấp giao diện REST đóng gói. Có một url cho POST-ing một gói để cài đặt. Chi tiết tại đây: http://community.marklogic.com/pubs/5.0/apidocs/packageREST.html – grtjn

Các vấn đề liên quan