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

Hướng dẫn triển khai và bảo trì MongoDB bằng Puppet:Phần 2

Trong blog trước, chúng tôi đã hướng dẫn bạn cách thiết lập máy của chúng tôi với Puppet, sau đó cài đặt và định cấu hình MongoDB. Vì chúng ta sẽ cấu hình một số nút hoặc đúng hơn là máy, chúng ta cần một bậc thầy bù nhìn. Tuy nhiên, trong trường hợp của chúng tôi, chúng tôi sẽ tạo một kho lưu trữ git, nơi chúng tôi sẽ đẩy các tệp kê khai của mình và áp dụng chúng vào máy của chúng tôi.

Để tạo kho lưu trữ git cục bộ, trước tiên hãy chọn đường dẫn bạn muốn sử dụng, tức là / opt /. Sau đó, tạo kho lưu trữ git bằng cách chạy kho lưu trữ $ sudo mkdir. Nhận quyền của người dùng root để thay đổi nội dung của thư mục này bằng cách ra lệnh $ sudo chown vagrant:kho lưu trữ vagrant. Để khởi tạo thư mục này dưới dạng kho lưu trữ git sau khi phát hành lệnh $ cd repository, hãy chạy $ git init --bare --shared nếu bạn điều hướng đến thư mục này, bây giờ bạn sẽ thấy một cái gì đó giống như

[email protected]:/vagrant/repository$ ls -l

total 12

-rw-rw-r-- 1 vagrant vagrant  23 Jul 15 07:46 HEAD

drwxr-xr-x 1 vagrant vagrant  64 Jul 15 07:46 branches

-rw-rw-r-- 1 vagrant vagrant 145 Jul 15 07:46 config

-rw-rw-r-- 1 vagrant vagrant  73 Jul 15 07:46 description

drwxr-xr-x 1 vagrant vagrant 352 Jul 15 07:46 hooks

drwxr-xr-x 1 vagrant vagrant  96 Jul 15 07:46 info

drwxr-xr-x 1 vagrant vagrant 128 Jul 15 07:46 objects

drwxr-xr-x 1 vagrant vagrant 128 Jul 15 07:46 refs

-rw-r--r-- 1 vagrant vagrant   0 Jul 1 15:58 test.pp

Đây là cấu trúc cơ bản của kho lưu trữ git và các tùy chọn --bare và --share sẽ cho phép chúng tôi đẩy và kéo các tệp từ thư mục.

Chúng ta cần thiết lập một hệ thống cho phép giao tiếp giữa các máy liên quan và máy chủ chính từ xa này. Hệ thống trong trường hợp này sẽ được gọi là daemon. Daemon sẽ chấp nhận các yêu cầu từ máy chủ từ xa để kéo hoặc đẩy tệp vào kho lưu trữ này. Để làm như vậy, hãy sử dụng lệnh $ git daemon --reuseaddr --base-path =/ opt / --export-all --enable =accept-pack

Tuy nhiên, phương pháp hay là tạo một tệp mà từ đó chúng ta có thể chạy tệp này trong nền. Do đó, chúng ta cần thiết lập dịch vụ bằng cách sử dụng lệnh sudo vim / etc / systemd / system / gitd. dịch vụ. Trong tệp mới, hãy điền nó với những nội dung này

[Unit]

Description=Git Repo Server Daemon

[Service]

ExecStart=/usr/bin/git daemon --reuseaddr --base-path=/opt/ --export-all --enable=receive-pack

[Install]

WantedBy=getty.target

DefaultInstance=ttyl

Lưu tệp và thoát bằng cách nhấn , sau đó gõ:x và nhấn . Để khởi động máy chủ, hãy chạy lệnh $ systemctl start gitd. Để xác thực, hãy sử dụng mật khẩu mà chúng tôi đặt trong trường hợp này là mơ hồ. Bạn sẽ được giới thiệu những thứ như thế này

[email protected]:/opt/repository$ systemctl start gitd

==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===

Authentication is required to start 'gitd.service'.

Authenticating as: vagrant,,, (vagrant)

Password: 

==== AUTHENTICATION COMPLETE ===

To check if the service is running $ ps -ef | grep git and you will get: 

[email protected]:/opt/repository$ ps -ef | grep git

root      1726 1  0 07:48 ?     00:00:00 /usr/bin/git daemon --reuseaddr --base-path=/opt/ --export-all --enable=receive-pack

root      1728 1726  0 07:48 ?     00:00:00 git-daemon --reuseaddr --base-path=/opt/ --export-all --enable=receive-pack

vagrant   1731 1700  0 07:48 pts/0    00:00:00 grep --color=auto git

Bây giờ nếu chúng ta chạy $ git clone git://198.168.1.100/repository (nhớ thay đổi địa chỉ IP bằng IP mạng của máy tính của bạn) trong thư mục gốc, bạn sẽ nhận được một thư mục kho lưu trữ mới được tạo . Hãy nhớ định cấu hình thông tin đăng nhập của bạn bằng cách bỏ ghi chú email và mật khẩu trong tệp cấu hình. Chạy $ git config --global --edit để truy cập tệp này.

Kho lưu trữ này sẽ hoạt động như máy chủ trung tâm của chúng tôi cho tất cả các tệp kê khai và biến.

Thiết lập Môi trường

Bây giờ chúng ta cần thiết lập môi trường mà từ đó chúng ta sẽ cấu hình các nút. Đầu tiên, chuyển sang thư mục vagrant và sao chép kho lưu trữ mà chúng ta vừa tạo bằng lệnh tương tự như trên.

Xóa thư mục tệp kê khai trong thư mục vagrant bằng cách chạy $ rm -r tệp kê khai /.

Tạo một thư mục sản xuất mới với $ mkdir production và sao chép cùng một kho lưu trữ mà chúng tôi đã tạo ở trên với $ git clone git://198.168.1.100/repository. (đừng quên dấu chấm ở cuối)

Sao chép và dán nội dung của môi trường sản xuất rốilabs vào thư mục sản xuất này bằng cách cấp cp -pr / etc / rốilabs / mã / môi trường / sản xuất / *. Thư mục sản xuất của bạn bây giờ sẽ giống như thế này

[email protected]:/vagrant/production$ ls -l

total 8

drwxr-xr-x 1 vagrant vagrant  64 Apr 26 18:50 data

-rw-r--r-- 1 vagrant vagrant 865 Apr 26 18:50 environment.conf

-rw-r--r-- 1 vagrant vagrant 518 Apr 26 18:50 hiera.yaml

drwxr-xr-x 1 vagrant vagrant  96 Jul 2 10:45 manifests

drwxr-xr-x 1 vagrant vagrant  64 Apr 26 18:50 modules

-rw-r--r-- 1 vagrant vagrant   0 Jul 1 16:13 test.pp

Chúng tôi cần đẩy những thay đổi này vào kho lưu trữ gốc để chúng tôi chạy

$ git add * && git commit -m "adding production default files" && git push

Để kiểm tra xem cấu hình git có hoạt động hay không, chúng ta có thể xóa nội dung trong thư mục / etc / rốilabs / code / environment / production / bằng cách chạy $ sudo rm -r * trong thư mục này rồi kéo các tệp từ kho lưu trữ chính với tư cách là người dùng gốc, tức là $ git clone git://198.168.1.100/repository. (đừng quên dấu chấm ở cuối). Chỉ các thư mục có nội dung mới được kéo trong trường hợp này, vì vậy bạn có thể bỏ lỡ tệp kê khai và thư mục mô-đun. Các hoạt động này có thể được thực hiện trên tất cả các máy liên quan đến con rối chủ hoặc máy khách. Vì vậy, nhiệm vụ của chúng tôi sẽ là kéo các thay đổi từ máy chủ chính và áp dụng các thay đổi bằng cách sử dụng tệp kê khai.

Tệp kê khai Thực thi

Đây là tập lệnh chúng ta sẽ viết để giúp chúng ta kéo các thay đổi và áp dụng chúng tự động cho các nút khác của chúng ta. Bạn không chỉ phải sử dụng môi trường sản xuất, bạn có thể thêm nhiều môi trường nhất có thể sau đó ra lệnh cho con rối tìm kiếm từ đó. Trong thư mục sản xuất / tệp kê khai gốc, chúng tôi sẽ tạo tệp kê khai thực thi dưới dạng rối_exec.pp và điền nó với các nội dung sau

 file { "This script will be pulling and applying the puppet manifests":

path => '/usr/local/bin/exec-puppet',

content => 'cd /etc/puppetlabs/code/environments/production/ && git pull; /opt/puppetlabs/bin/puppet apply manifests/'

mode => "0755"

}

cron {'exec-puppet':

command => '/usr/local/bin/exec-puppet',

hour => '*',

minute => '*/15'

}

Tệp là tài nguyên đã được mô tả để thực thi các tệp kê khai con rối. Thêm một đường dẫn thích hợp cho tệp chúng tôi đang tạo và điền vào tệp đó với các lệnh sẽ được ban hành khi tệp sẽ được thực thi.

Các lệnh được thực thi một cách có hệ thống, tức là trước tiên chúng ta điều hướng đến môi trường sản xuất, kéo các thay đổi trong kho lưu trữ và sau đó áp dụng chúng vào máy.

Chúng tôi cung cấp thư mục tệp kê khai cho mỗi nút mà từ đó nó có thể chọn tệp kê khai hướng đến nó để ứng dụng.

Khoảng thời gian mà tệp thực thi sẽ được chạy cũng được đặt. Trong trường hợp này, cứ mỗi giờ, hãy thực thi tệp 4 lần.

Để áp dụng điều này cho máy hiện tại của chúng tôi, $ cd / vagrant / production. Thêm mọi thứ vào git bằng cách chạy $ git add * sau đó $ git commit -m “thêm các cấu hình cron” và cuối cùng là $ git push. Bây giờ điều hướng đến $ cd / etc / rốilabs / mã / môi trường / sản xuất / và $ sudo git pull

Bây giờ, nếu chúng ta kiểm tra thư mục kê khai trong thư mục này, bạn sẽ thấy ngụy_tử_xec.pp được tạo như chúng ta vừa xác định.

Bây giờ, nếu chúng ta chạy $ sudo con rối áp dụng tệp kê khai / và kiểm tra xem tệp thực thi đã được tạo chưa $ cat / usr / local / bin / exec-con rối

Nội dung của tệp này phải là

cd /etc/puppetlabs/code/environments/production/ && git pull; /opt/puppetlabs/bin/puppet apply manifests/

Tại thời điểm này, chúng tôi đã thấy cách chúng tôi có thể kéo và đẩy các thay đổi đối với máy chủ của chúng tôi, những thay đổi này sẽ được áp dụng cho tất cả các nút khác. Nếu chúng tôi chạy $ sudo crontab -l, một số cảnh báo quan trọng sẽ được đánh dấu trên tệp thực thi đã tạo.

# HEADER: This file was autogenerated at 2019-07-02 11:50:56 +0000 by puppet.

# HEADER: While it can still be managed manually, it is definitely not recommended.

# HEADER: Note particularly that the comments starting with 'Puppet Name' should

# HEADER: not be deleted, as doing so could cause duplicate cron jobs.

# Puppet Name: exec-puppet

*/15 * * * * /usr/local/bin/exec-puppet

Định cấu hình Máy

Giả sử tệp vagrant của chúng tôi trông giống như

Vagrant.configure("2") do |config|

  config.vm.define "puppet" do |puppet|

   puppet.vm.box = "bento/ubuntu-16.04"

   #puppet.vm.hostname = "puppet"

   #puppet.vm.network "private_network", ip: "192.168.1.10"

  end

  config.vm.define "db" do |db|

    db.vm.box = "bento/ubuntu-16.04"

  end

end

Trong trường hợp này, chúng ta có máy con rối nơi chúng ta đang thực hiện các cấu hình của mình và sau đó là máy db. Bây giờ chúng ta tự động hóa máy sao cho bất cứ khi nào máy db được khởi động, nó đã cài đặt con rối và tệp cron đã có sẵn để kéo các tệp kê khai và áp dụng chúng cho phù hợp. Bạn sẽ cần phải cấu trúc lại nội dung của máy db như sau

config.vm.define "db" do |db|

    db.vm.box = "bento/ubuntu-16.04"

    vm.provision "shell", inline: <<-SHELL

      cd /temp

      wget  https://apt.puppetlabs.com/puppet5-release-xenial.deb

      dpkg -i puppet5-release-xenial.deb

      apt-get update

      apt-get install -y puppet-agent

      apt-get install -y git

      rm -rf /etc/puppetlabs/code/environments/production/*

      cd /etc/puppetlabs/code/environments/production/

      git clone git://198.168.1.100/repository .

      /opt/puppetlabs/bin/puppet apply /etc/puppetlabs/code/environments/production/manifests/puppet_exec.pp

    SHELL

  End

Cho đến giai đoạn này, cấu trúc của thư mục con rối của bạn sẽ giống như sau

Nếu bây giờ bạn chạy máy db bằng lệnh $ vagrant up db, một số tài nguyên sẽ được cài đặt và tập lệnh mà chúng tôi vừa xác định có thể được tìm thấy trong thư mục sản xuất / tệp kê khai. Tuy nhiên, bạn nên sử dụng trình điều khiển con rối chỉ được giới hạn ở 10 nút cho phiên bản miễn phí, nếu không bạn sẽ cần phải đăng ký một gói. Puppet master cung cấp nhiều tính năng hơn và phân phối tệp kê khai cho nhiều nút, nhật ký báo cáo và nhiều quyền kiểm soát hơn trên các nút.

Mô-đun Con rối Mongodb

Mô-đun này được sử dụng để cài đặt MongoDB, quản lý cài đặt máy chủ mongod, cấu hình daemon mongod và quản lý thiết lập Ops Manager bên cạnh daemon MongoDB-mms.

Kết luận

Trong blog tiếp theo, chúng tôi sẽ hướng dẫn bạn cách triển khai Bộ bản sao MongoDB và các mảnh bằng cách sử dụng Con rối.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Định cấu hình cảnh báo trên chỉ số MongoDB

  2. MongoDB trên AWS:Làm thế nào để Chọn Loại Phiên bản EC2 Phù hợp cho Máy chủ MongoDB của bạn?

  3. ánh xạ trong tạo chỉ mục trong tìm kiếm đàn hồi thông qua sông mongodb không có hiệu lực

  4. Tôi nên sử dụng cơ sở dữ liệu NoSQL nào để ghi nhật ký?

  5. Làm cách nào để kiểm tra xem một trường mảng có phải là một phần của một mảng khác trong MongoDB hay không?