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

Mengotomatiskan MongoDB dengan SaltStack

Penyebaran database untuk beberapa server menjadi lebih kompleks dan memakan waktu seiring waktu saat menambahkan sumber daya baru atau membuat perubahan. Selain itu, ada kemungkinan kesalahan manusia yang dapat menyebabkan hasil bencana setiap kali sistem dikonfigurasi secara manual.

Alat otomatisasi penyebaran basis data akan memungkinkan kami menerapkan basis data di beberapa server mulai dari lingkungan pengembangan hingga produksi. Hasil dari penerapan otomatis dapat diandalkan, lebih efisien, dan dapat diprediksi selain memberikan informasi status terkini dari node Anda yang dapat digunakan lebih lanjut untuk merencanakan sumber daya yang perlu Anda tambahkan ke server Anda. Dengan penerapan yang dikelola dengan baik, produktivitas tim pengembangan dan operasional meningkat sehingga memungkinkan bisnis berkembang lebih cepat, mencapai lebih banyak, dan karena penerapan yang sering dan mudah, pengaturan perangkat lunak keseluruhan pada akhirnya akan lebih baik dan berfungsi dengan andal bagi pengguna akhir.

MongoDB dapat digunakan secara manual tetapi tugas ini menjadi semakin rumit ketika Anda harus mengonfigurasi sekelompok banyak anggota yang dihosting di server yang berbeda. Oleh karena itu kita perlu memutuskan untuk menggunakan alat otomotif yang dapat menyelamatkan kita dari stres. Beberapa alat yang tersedia yang dapat digunakan antara lain Puppet, Chef, Ansible, dan SaltStack.

Manfaat utama menggunakan MongoDB Anda dengan salah satu alat ini adalah:

  1. Hemat waktu. Bayangkan memiliki 50 node untuk database Anda dan Anda perlu memperbarui versi MongoDB untuk masing-masing node. Ini akan membawa Anda lama melalui proses. Namun, dengan alat otomatis, Anda hanya perlu menulis beberapa instruksi dan mengeluarkan perintah untuk melakukan pembaruan selanjutnya untuk Anda. Pengembang kemudian akan memiliki waktu untuk mengerjakan fitur baru daripada memperbaiki penerapan manual.
  2. Mengurangi kesalahan sehingga kepuasan pelanggan. Membuat pembaruan baru dapat menimbulkan kesalahan pada sistem basis data terutama jika konfigurasi harus dilakukan secara manual. Dengan alat seperti SaltStack, menghapus langkah-langkah manual akan mengurangi kesalahan manusia dan seringnya pembaruan dengan fitur-fitur baru akan memenuhi kebutuhan pelanggan sehingga membuat organisasi tetap kompetitif.
  3. Biaya konfigurasi lebih rendah. Dengan alat penerapan, siapa pun dapat menerapkan bahkan diri Anda sendiri karena prosesnya sendiri akan jauh lebih mudah. Ini akan menghilangkan kebutuhan tenaga ahli untuk melakukan pekerjaan dan mengurangi kesalahan

Apa itu SaltStack

SaltStack adalah alat eksekusi jarak jauh sumber terbuka dan sistem manajemen konfigurasi yang dikembangkan dengan Python.

Fitur eksekusi jarak jauh digunakan untuk menjalankan perintah di berbagai mesin secara paralel dengan sistem penargetan yang fleksibel. Jika misalnya Anda memiliki 3 mesin server dan Anda ingin menginstal MongoDB untuk masing-masing, Anda dapat menjalankan perintah penginstalan pada mesin ini secara bersamaan dari node master.

Dalam hal manajemen konfigurasi, antarmuka klien-server dibuat untuk memudahkan dan secara aman mengubah komponen infrastruktur menjadi keadaan yang diinginkan.

Arsitektur SaltStack

Model pengaturan dasar untuk SaltStack adalah Client-Server di mana server dapat disebut sebagai master dan Klien sebagai budak. Master mengeluarkan perintah atau lebih tepatnya instruksi sebagai sistem pengontrol yang perlu dijalankan oleh klien/minion yang merupakan sistem yang dikendalikan.

Komponen SaltSack

Berikut ini adalah apa SaltStack terbuat dari

  1. Guru :Bertanggung jawab untuk mengeluarkan instruksi ke budak dan mengubahnya ke keadaan yang diinginkan setelah eksekusi.
  2. Minion :Ini adalah sistem terkontrol yang perlu diubah menjadi keadaan yang diinginkan.
  3. Bijir Asin :  ini adalah data atau metadata statis terkait minion dan berisi informasi seperti model, nomor seri, kapasitas memori, dan Sistem Operasi. Mereka dikumpulkan saat minion pertama kali terhubung ke server. Mereka dapat digunakan untuk menargetkan kelompok antek tertentu dalam kaitannya dengan beberapa aspek. Misalnya, Anda dapat menjalankan perintah yang menyatakan, instal MongoDB untuk semua mesin dengan sistem operasi Windows.
  4. EModul/petunjuk eksekusi :Ini adalah perintah Ad hoc yang dikeluarkan untuk satu atau beberapa antek target dan dijalankan dari baris perintah.
  5. Pilar :adalah variabel yang ditentukan pengguna yang didistribusikan di antara para pelayan. Mereka digunakan untuk:konfigurasi antek, data yang sangat sensitif, data arbitrer, dan variabel. Tidak semua minion dapat diakses oleh semua pilar, seseorang dapat membatasi pilar mana untuk kelompok antek tertentu.
  6. File status . Ini adalah inti dari Salt state System (SLS) dan mewakili keadaan di mana sistem seharusnya berada. Ini setara dengan buku pedoman dalam kasus Ansible mengingat mereka juga dalam format YAML yaitu
#/srv/salt/mongodbInstall.sls (file root)

install_mongodb: (task id)

pkg.installed: (state declaration)

-name:mongodb  (name of package to install)
  1. File teratas :Digunakan untuk memetakan sekelompok mesin dan menentukan file status mana yang harus diterapkan. yaitu

#/srv/salt/top.sls

  base:

   ‘minion1’:

     -mongodb
  1. Proxy Garam :  Ini adalah fitur yang memungkinkan perangkat pengontrol yang tidak dapat menjalankan minion garam standar. Mereka termasuk roda gigi jaringan dengan API yang berjalan pada OS berpemilik, perangkat dengan CPU dan keterbatasan memori atau yang tidak dapat menjalankan minion karena alasan keamanan. Proxy Junos harus digunakan untuk penemuan, kontrol, eksekusi jarak jauh, dan pengelolaan status perangkat ini.

Instalasi SaltStack

Kita dapat menggunakan perintah pip untuk menginstal SaltStack sebagai 

$ pip install salt

Untuk mengonfirmasi penginstalan, jalankan perintah $ salt --version dan Anda akan mendapatkan sesuatu seperti salt 2019.2.2 (Fluor)

Sebelum terhubung ke master, minion akan membutuhkan konfigurasi minimum alamat ip master dan id minion yang akan digunakan oleh master untuk referensinya. Konfigurasi ini dapat dilakukan di file /etc/salt/minion.

Kita kemudian dapat menjalankan master dalam berbagai mode yaitu daemon atau dalam mode debug. Untuk kasus daemon Anda akan memiliki $salt-master -d dan untuk mode debug,  $salt-master -l debug. Anda harus menerima kunci minion sebelum memulainya dengan menjalankan $ salt-key -a nameOfMinion. Untuk membuat daftar kunci yang tersedia, jalankan $ salt-key -l

Dalam kasus minion, kita dapat memulainya dengan $salt-minion -l debug.

Misalnya jika kita ingin membuat file di semua minion dari master, kita bisa menjalankan perintah 

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

Semua node akan memiliki file sample.text baru di folder salt_files. Opsi * digunakan untuk merujuk ke semua minion. Untuk menentukan misalnya semua antek dengan nama id memiliki string antek, kami akan menggunakan ekspresi regex seperti di bawah ini 

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

Untuk melihat metadata yang dikumpulkan untuk antek tertentu, jalankan:

$salt ‘minion1’ grains.items.

Menyiapkan MongoDB dengan SaltStack

Kita bisa membuat database bernama myAppdata dengan setDatabase.sls dengan konten di bawah ini 

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}

Memulai Server MongoDB Tunggal 

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'

Menyiapkan Cluster MongoDB dengan 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

Kesimpulan

Seperti ClusterControl, SaltStack adalah alat otomatisasi yang dapat digunakan untuk memudahkan tugas penyebaran dan operasi. Dengan alat otomatisasi, kesalahan berkurang, waktu konfigurasi berkurang, dan hasil lebih andal.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dapatkan BinData UUID dari Mongo sebagai string

  2. Bagaimana cara menghapus elemen array ke-n di mongodb

  3. Bagaimana MongoDB menghindari kekacauan injeksi SQL?

  4. Bagaimana mengembangkan aplikasi untuk MongoDB dan Redpanda menggunakan Docker Compose

  5. Bagaimana cara saya menanyakan objek yang direferensikan di MongoDB?