MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Panduan untuk Penerapan &Pemeliharaan MongoDB Menggunakan Wayang:Bagian 2

Di blog sebelumnya, kami menunjukkan kepada Anda cara mengatur mesin kami dengan Wayang dan kemudian menginstal dan mengkonfigurasi MongoDB. Karena kita akan mengonfigurasi sejumlah node atau lebih tepatnya mesin, kita membutuhkan seorang dalang. Namun dalam kasus kami, kami akan membuat repositori git tempat kami akan mendorong manifes kami dan menerapkannya ke mesin kami.

Untuk membuat repositori git lokal, pertama-tama pilih jalur yang ingin Anda gunakan yaitu /opt/. Kemudian buat repositori git dengan menjalankan repositori  $sudo mkdir. Dapatkan izin pengguna root untuk mengubah konten direktori ini dengan mengeluarkan perintah  $sudo chown vagrant:vagrant repository. Untuk menginisialisasi direktori ini sebagai repositori git setelah mengeluarkan perintah $ cd repository, jalankan $ git init --bare --shared jika Anda menavigasi ke direktori ini, Anda sekarang akan melihat sesuatu seperti

[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

Ini adalah struktur dasar dari repositori git dan opsi --bare dan --share akan memungkinkan kita untuk mendorong dan menarik file dari direktori.

Kita perlu menyiapkan sistem yang memungkinkan komunikasi antara mesin yang terlibat dan server master jarak jauh ini. Sistem dalam hal ini akan disebut sebagai daemon. Daemon akan menerima permintaan dari host jarak jauh untuk menarik atau mendorong file ke repositori ini. Untuk melakukannya, jalankan perintah $git daemon --reuseaddr --base-path=/opt/ --export-all --enable=receive-pack

Namun praktik yang baik adalah membuat file dari mana kita dapat menjalankan ini di latar belakang. Oleh karena itu, kita perlu menyetel layanan dengan mengeluarkan perintah sudo vim /etc/systemd/system/gitd. melayani. Di file baru isi dengan konten ini

[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

Simpan file dan keluar dengan menekan lalu ketik :x dan tekan . Untuk memulai server jalankan perintah $ systemctl start gitd. Untuk otentikasi gunakan kata sandi yang kami tetapkan dalam hal ini gelandangan. Anda harus disajikan dengan sesuatu seperti ini 

[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

Sekarang jika kita menjalankan $ git clone git://198.168.1.100/repository (ingat untuk mengubah alamat IP dengan IP jaringan mesin Anda) di direktori root, Anda akan mendapatkan folder repositori yang baru dibuat . Ingatlah untuk mengonfigurasi kredensial Anda dengan membatalkan komentar pada email dan kata sandi di file konfigurasi. Jalankan $ git config --global --edit untuk mengakses file ini.

Repositori ini akan bertindak sebagai server pusat kami untuk semua manifes dan variabel.

Menyiapkan Lingkungan

Sekarang kita perlu mengatur lingkungan dari mana kita akan mengkonfigurasi node. Pertama, pindah ke direktori gelandangan dan kloning repositori yang baru saja kita buat dengan perintah yang sama seperti di atas.

 Hapus direktori manifes di folder gelandangan dengan menjalankan $rm -r manifest/.

Buat folder produksi baru dengan $ mkdir production dan klon repositori yang sama yang kita buat di atas dengan $ git clone git://198.168.1.100/repository . (jangan lupa titik di akhir)

 Salin dan tempel konten lingkungan produksi puppetlabs ke dalam folder produksi ini dengan mengeluarkan cp -pr /etc/puppetlabs/code/environments/production/* . Direktori produksi Anda sekarang akan terlihat seperti ini

[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

Kami perlu mendorong perubahan ini ke repositori root sehingga kami menjalankan 

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

Untuk menguji apakah konfigurasi git berfungsi, kita dapat menghapus konten di direktori /etc/puppetlabs/code/environments/production/ dengan menjalankan $ sudo rm -r * di direktori ini lalu tarik file dari repositori master sebagai pengguna root yaitu $ git clone git://198.168.1.100/repository . (jangan lupa titik di akhir). Hanya direktori dengan konten yang ditarik dalam kasus ini sehingga Anda mungkin melewatkan folder manifes dan modul. Operasi ini dapat dilakukan di semua mesin yang terlibat baik mesin boneka master atau mesin klien. Jadi tugas kita akan menarik perubahan dari server utama dan menerapkan perubahan menggunakan manifes.

Manifes Eksekusi

Ini adalah skrip yang akan kita tulis untuk membantu kita menarik perubahan dan menerapkannya secara otomatis ke node kita yang lain. Anda tidak hanya harus menggunakan lingkungan produksi,  Anda dapat menambahkan sebanyak mungkin lingkungan kemudian mendiktekan boneka dari mana yang akan ditelusuri. Di direktori root  production/manifests, kami akan membuat manifes eksekusi sebagai puppet_exec.pp dan mengisinya dengan konten berikut

 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'

}

File adalah sumber daya yang telah dijelaskan untuk mengeksekusi manifes boneka. Tambahkan jalur yang sesuai untuk file yang kita buat dan isi dengan perintah yang akan dikeluarkan saat akan dieksekusi.

Perintah dijalankan secara sistematis yaitu, pertama-tama kita menavigasi ke lingkungan produksi, menarik perubahan repositori dan kemudian menerapkannya ke mesin.

Kami menyediakan direktori manifes ke setiap node dari mana ia dapat memilih manifes yang diarahkan ke sana untuk aplikasi.

Durasi di mana file eksekusi akan dijalankan juga disetel. Dalam hal ini untuk setiap jam, jalankan file 4 kali.

Untuk menerapkan ini ke mesin kami saat ini, $ cd /vagrant/production. Tambahkan semuanya ke git dengan menjalankan $ git add * lalu $ git commit -m “tambahkan konfigurasi cron” dan terakhir $ git Push. Sekarang navigasikan ke $ cd /etc/puppetlabs/code/environments/production/ dan $ Sudo git pull

Sekarang jika kita memeriksa folder manifes di direktori ini, Anda akan melihat wayang_exec.pp dibuat seperti yang baru saja kita definisikan.

Sekarang jika kita menjalankan $ sudo doll apply manifests/ dan periksa apakah file exec-puppet telah dibuat $ cat /usr/local/bin/exec-puppet

Isi file ini harus 

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

Pada titik ini kita telah melihat bagaimana kita dapat menarik dan mendorong perubahan ke mesin master kita yang harus diterapkan ke semua node lainnya. Jika kita menjalankan $ sudo crontab -l, beberapa peringatan penting akan disorot pada file exec-puppet yang dibuat.

# 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

Mengonfigurasi Mesin

Misalnya file gelandangan kita terlihat seperti

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

Dalam hal ini kita memiliki mesin boneka di mana kita telah melakukan konfigurasi kita dan kemudian mesin db. Sekarang kita mengotomatiskan mesin sedemikian rupa sehingga setiap kali mesin db dijalankan, ia telah menginstal boneka dan file cron sudah tersedia untuk menarik manifes dan menerapkannya sesuai. Anda perlu merestrukturisasi konten mesin db menjadi sebagai berikut

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

Hingga tahap ini, struktur direktori boneka Anda harus seperti ini

Jika sekarang Anda menjalankan mesin db dengan perintah $ gelandangan up db, beberapa sumber daya akan diinstal dan skrip yang baru saja kita definisikan dapat ditemukan di direktori produksi/manifest. Namun, disarankan untuk menggunakan dalang yang dibatasi hanya 10 node untuk versi gratis jika tidak, Anda harus berlangganan paket. Puppet master menawarkan lebih banyak fitur dan mendistribusikan manifes ke beberapa node, melaporkan log, dan lebih banyak kontrol pada node.

Modul Wayang Mongodb

Modul ini digunakan dalam instalasi MongoDB, mengelola instalasi server mongod, konfigurasi daemon mongod dan manajemen pengaturan Ops Manager selain daemon MongoDB-mms.

Kesimpulan

Di blog berikutnya kami akan menunjukkan kepada Anda cara menerapkan Kumpulan Replika MongoDB dan Pecahan menggunakan Wayang.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. ClusterControl 1.5 Dokumentasi - Yang Baru

  2. Ubah urutan properti yang ditampilkan di MongoDB

  3. MongoDB $ne Operator Pipa Agregasi

  4. Memperbarui jalur 'x' akan membuat konflik di 'x'

  5. MongoDB $bagi