MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tự động hóa MongoDB với SaltStack

Việc triển khai cơ sở dữ liệu cho nhiều máy chủ trở nên phức tạp hơn và tốn thời gian hơn khi thêm tài nguyên mới hoặc thực hiện thay đổi. Ngoài ra, có khả năng xảy ra lỗi do con người có thể dẫn đến kết quả thảm khốc bất cứ khi nào hệ thống được cấu hình theo cách thủ công.

Một công cụ tự động hóa triển khai cơ sở dữ liệu sẽ cho phép chúng tôi triển khai cơ sở dữ liệu trên nhiều máy chủ khác nhau, từ môi trường phát triển đến sản xuất. Kết quả từ việc triển khai tự động là đáng tin cậy, hiệu quả hơn và có thể dự đoán được bên cạnh việc cung cấp thông tin trạng thái hiện tại của các nút có thể được sử dụng thêm để lập kế hoạch cho các tài nguyên bạn sẽ cần thêm vào máy chủ của mình. Với việc triển khai được quản lý tốt, năng suất của cả nhóm phát triển và vận hành được cải thiện, do đó cho phép doanh nghiệp phát triển nhanh hơn, hoàn thành nhiều hơn và do dễ dàng triển khai thường xuyên, thiết lập phần mềm tổng thể cuối cùng sẽ tốt hơn và hoạt động đáng tin cậy cho người dùng cuối.

MongoDB có thể được triển khai theo cách thủ công nhưng nhiệm vụ ngày càng trở nên cồng kềnh hơn khi bạn phải cấu hình một cụm gồm nhiều thành viên được lưu trữ trên các máy chủ khác nhau. Do đó, chúng ta cần quyết tâm sử dụng một công cụ ô tô có thể giúp chúng ta giảm bớt căng thẳng. Một số công cụ có sẵn có thể được sử dụng bao gồm Puppet, Chef, Ansible và SaltStack.

Các lợi ích chính của việc triển khai MongoDB của bạn với bất kỳ công cụ nào trong số này là:

  1. Tiết kiệm thời gian. Hãy tưởng tượng có 50 nút cho cơ sở dữ liệu của bạn và bạn cần cập nhật phiên bản MongoDB cho mỗi nút. Điều này sẽ khiến bạn mất nhiều thời gian để trải qua quá trình này. Tuy nhiên, với một công cụ tự động, bạn sẽ chỉ cần viết một số hướng dẫn và ra lệnh để thực hiện phần còn lại của bản cập nhật cho bạn. Sau đó, các nhà phát triển sẽ có thời gian để làm việc trên các tính năng mới thay vì sửa lỗi triển khai thủ công.
  2. Các lỗi được giảm thiểu do đó làm hài lòng khách hàng. Thực hiện các bản cập nhật mới có thể gây ra lỗi cho hệ thống cơ sở dữ liệu, đặc biệt nếu cấu hình phải được thực hiện thủ công. Với một công cụ như SaltStack, việc loại bỏ các bước thủ công sẽ giảm thiểu sai sót của con người và cập nhật thường xuyên các tính năng mới sẽ giải quyết nhu cầu của khách hàng, do đó duy trì tính cạnh tranh của tổ chức.
  3. Chi phí cấu hình thấp hơn. Với một công cụ triển khai, bất kỳ ai cũng có thể triển khai ngay cả chính bạn vì bản thân quá trình này sẽ dễ dàng hơn nhiều. Điều này sẽ loại bỏ sự cần thiết của các chuyên gia để thực hiện công việc và giảm thiểu sai sót

SaltStack là gì

SaltStack là một công cụ thực thi từ xa mã nguồn mở và một hệ thống quản lý cấu hình được phát triển bằng Python.

Các tính năng thực thi từ xa được sử dụng để chạy các lệnh trên nhiều máy khác nhau song song với một hệ thống nhắm mục tiêu linh hoạt. Ví dụ:nếu bạn có 3 máy chủ và bạn muốn cài đặt MongoDB cho mỗi máy, bạn có thể chạy đồng thời các lệnh cài đặt trên các máy này từ một nút chính.

Về mặt quản lý cấu hình, giao diện máy khách-máy chủ được thiết lập để chuyển đổi dễ dàng và an toàn các thành phần cơ sở hạ tầng sang trạng thái mong muốn.

Kiến trúc SaltStack

Mô hình thiết lập cơ bản cho SaltStack là Máy khách-Máy chủ trong đó máy chủ có thể được coi là máy chủ và Máy khách là máy chủ. Lệnh tổng thể ban hành lệnh hoặc đúng hơn là các lệnh như là hệ thống điều khiển cần được thực thi bởi các máy khách / tay sai là hệ thống được điều khiển.

Thành phần SaltSack

Sau đây là những gì SaltStack được tạo ra

  1. Thạc sĩ :Chịu trách nhiệm đưa ra hướng dẫn cho nô lệ và thay đổi chúng sang trạng thái mong muốn sau khi thực hiện.
  2. Minion :Đó là hệ thống được kiểm soát cần được chuyển đổi sang một số trạng thái mong muốn.
  3. Hạt muối :Đây là dữ liệu tĩnh hoặc siêu dữ liệu liên quan đến minion và nó tạo thành thông tin như kiểu máy, số sê-ri, dung lượng bộ nhớ và Hệ điều hành. Chúng được thu thập khi minion lần đầu tiên kết nối với máy chủ. Chúng có thể được sử dụng để nhắm mục tiêu một nhóm tay sai nhất định liên quan đến một số khía cạnh. Ví dụ, bạn có thể chạy một lệnh nêu rõ, cài đặt MongoDB cho tất cả các máy có hệ điều hành Windows.
  4. E x Thực thi Mô-đun / hướng dẫn :Đây là các lệnh đặc biệt được cấp cho một hoặc nhiều tay sai mục tiêu và được thực thi từ dòng lệnh.
  5. Trụ cột :là các biến do người dùng định nghĩa được phân phối giữa các minion. Chúng được sử dụng cho:cấu hình minion, dữ liệu có độ nhạy cao, dữ liệu tùy ý và các biến. Không phải tất cả các trụ đều có thể tiếp cận được lính, người ta có thể hạn chế trụ nào dành cho một nhóm lính nhất định.
  6. Tệp trạng thái . Đây là cốt lõi của Hệ thống trạng thái muối (SLS) và nó đại diện cho trạng thái mà hệ thống phải ở trong đó. Nó tương đương với một cuốn sách chơi trong trường hợp Ansible vì chúng cũng ở định dạng YAML, tức là
#/srv/salt/mongodbInstall.sls (file root)

install_mongodb: (task id)

pkg.installed: (state declaration)

-name:mongodb  (name of package to install)
  1. Tệp hàng đầu :Được sử dụng để ánh xạ một nhóm máy và xác định tệp trạng thái nào nên được áp dụng. tức là

#/srv/salt/top.sls

  base:

   ‘minion1’:

     -mongodb
  1. Salt Proxy :Đây là tính năng cho phép điều khiển các thiết bị không chạy được muối minion tiêu chuẩn. Chúng bao gồm các thiết bị mạng có API chạy trên hệ điều hành độc quyền, các thiết bị có giới hạn về CPU và bộ nhớ hoặc các thiết bị không thể chạy minion vì lý do bảo mật. Một proxy Junos phải được sử dụng để khám phá, điều khiển, thực thi từ xa và quản lý trạng thái của các thiết bị này.

Cài đặt SaltStack

Chúng ta có thể sử dụng lệnh pip để cài đặt SaltStack dưới dạng

$ pip install salt

Để xác nhận cài đặt, hãy chạy lệnh $ salt --version và bạn sẽ nhận được một cái gì đó giống như salt 2019.2.2 (Flo)

Trước khi kết nối với cái chính, minion sẽ yêu cầu cấu hình tối thiểu của địa chỉ ip chính và id minion sẽ được cái chủ sử dụng để tham khảo. Các cấu hình này có thể được thực hiện trong tệp / etc / salt / minion.

Sau đó, chúng ta có thể chạy chương trình chính ở các chế độ khác nhau là daemon hoặc trong chế độ gỡ lỗi. Đối với trường hợp daemon, bạn sẽ có $ salt-master -d và đối với chế độ gỡ lỗi, $ salt-master -l debug. Bạn cần phải chấp nhận khóa của minion trước khi bắt đầu bằng cách chạy $ salt-key -a nameOfMinion. Để liệt kê các khóa khả dụng, hãy chạy $ salt-key -l

Trong trường hợp của minion, chúng ta có thể bắt đầu nó với gỡ lỗi $ salt-minion -l.

Ví dụ:nếu chúng ta muốn tạo một tệp trong tất cả các minion từ master, chúng ta có thể chạy lệnh

$ salt ‘’*” file.touch ‘/tmp/salt_files/sample.text

Tất cả các nút sẽ có tệp sample.text mới trong thư mục salt_files. Tùy chọn * được sử dụng để chỉ tất cả các tay sai. Để chỉ định ví dụ:tất cả các minion có tên id có minion chuỗi, chúng tôi sẽ sử dụng biểu thức regex như bên dưới

$ salt “minion*” file.touch ‘/tmp/salt_files/sample.text

Để xem siêu dữ liệu được thu thập cho một minion nhất định, hãy chạy:

$salt ‘minion1’ grains.items.

Thiết lập MongoDB với SaltStack

Chúng ta có thể tạo cơ sở dữ liệu có tên myAppdata bằng setDatabase.sls với nội dung bên dưới

Các lớp
classes:

- service.mongodb.server.cluster

parameters:

   _param:

     mongodb_server_replica_set: myAppdata

     mongodb_myAppdata_password: myAppdataPasword

     mongodb_admin_password: cloudlab

     mongodb_shared_key: xxx

   mongodb:

     server:

       database:

         myAppdata:

           enabled: true

           password: ${_param:mongodb_myAppdata_password}

           users:

           -  name: myAppdata

              password: ${_param:mongodb_myAppdata_password}

Khởi động một máy chủ MongoDB duy nhất

mongodb:

  server:

    enabled: true

    bind:

      address: 0.0.0.0

      port: 27017

    admin:

      username: admin

      password: myAppdataPasword

    database:

      myAppdata:

        enabled: true

        encoding: 'utf8'

        users:

        - name: 'username'

          password: 'password'

Thiết lập Cụm MongoDB với SaltStack

mongodb:

  server:

    enabled: true

    logging:

      verbose: false

      logLevel: 1

      oplogLevel: 0

    admin:

      user: admin

      password: myAppdataPasword

    master: mongo01

    members:

      - host: 192.168.100.11

        priority: 2

      - host: 192.168.101.12

      - host: 192.168.48.13

    replica_set: default

    shared_key: myAppdataPasword

Kết luận

Giống như ClusterControl, SaltStack là một công cụ tự động hóa có thể được sử dụng để dễ dàng triển khai và vận hành các tác vụ. Với công cụ tự động hóa, sẽ giảm thiểu lỗi, giảm thời gian cấu hình và kết quả đáng tin cậy hơn.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. dịch vụ mongodb không khởi động

  2. Bắt đầu với MongoDB Go Driver

  3. MongoDB C #:ID Serialization mẫu tốt nhất

  4. MongoDB - Đặt câu lệnh điều kiện trong .find ()

  5. Hiệu suất tổng hợp tra cứu kém