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

Penerapan dan Pemeliharaan MongoDB Menggunakan Ansible

Perubahan teknologi dari hari ke hari dan aplikasi modern perlu melakukan penyesuaian serius untuk memenuhi harapan pengiriman cepat dari organisasi mereka. Sayangnya, ini membuatnya lebih kompleks, lebih canggih, dan lebih sulit untuk dirawat.

Dalam hal manajemen basis data, struktur data di dalam MongoDB berubah sesuai dengan kebutuhan aplikasi dari waktu ke waktu dan bisa jadi cukup mahal (atau lebih berisiko).

Dalam jangka panjang, kita perlu memiliki database yang efisien yang dikonfigurasi dengan mudah dan memastikan pengiriman perangkat lunak yang kompeten. Mencapai semua ini dengan cara manual disertai dengan sejumlah kemunduran seperti

  1. Koordinasi yang rumit antar anggota tim.
  2. Peluang tinggi pengulangan tugas
  3. Rentan dengan banyak kesalahan dan kesalahan manusia
  4. Tidak mudah mengatasi kerumitan
  5. Berkurangnya kolaborasi dan ketidakpuasan kerja
  6. Memakan waktu
  7. Akuntabilitas dan kepatuhan yang buruk

Kesulitan administrasi database terutama berpusat pada

  • Menerapkan
  • Menjaga
  • Upgrade yang dapat mempengaruhi biaya operasional hingga pengurangan 95%.

Mencapai ini dapat memakan banyak waktu dan upaya manual untuk MongoDB. Untuk memastikan kesuksesan, Anda perlu memiliki sistem sederhana yang dengannya Anda dapat memastikan semua kemunduran yang tercantum di atas dapat diatasi dari satu platform secara tepat waktu, yaitu, entah bagaimana sistem otomatis. Ada cukup banyak pilihan tetapi dalam artikel ini, kita akan membahas bagaimana memanfaatkan Ansible.

Apa yang Mungkin

Ansible hanyalah bahasa universal yang mengungkap misteri bagaimana pekerjaan dilakukan. Dengan kata lain, ini adalah mesin orkestrasi TI yang mengotomatiskan penerapan aplikasi, manajemen konfigurasi, dan mengatur tugas TI yang lebih canggih seperti memastikan pembaruan bergulir tanpa henti dan penerapan berkelanjutan.

Mesin dapat dengan mudah dikelola tanpa agen dengan fokus yang lebih besar pada keamanan dan keandalan melalui penggunaan bahasa yang dirancang seputar "kemampuan audit" oleh manusia.

Meskipun menerapkan MongoDB mungkin tidak terlalu sulit, pemeliharaan, pencadangan, dan pemantauan menjadi faktor yang semakin mengkhawatirkan seiring berjalannya waktu. Selain itu, tidak mudah bagi Anda yang baru mengenal manajemen basis data. Dengan Ansible developer dapat menerapkan dan mengonfigurasi aplikasi dengan mudah, ini juga memungkinkan pengiriman cepat ke platform hosting apa pun.

Karena Ansible bukan bagian dari sistem cluster database, Ansible dapat diinstal di komputer jarak jauh mana pun dan konfigurasi dibuat untuk host database Anda. Silakan periksa panduan penginstalan untuk mengetahui versi mana yang cocok untuk sistem operasi Anda.

Memungkinkan, secara default, terhubung ke host database melalui protokol SSH.

Playbook yang Memungkinkan

Playbook adalah templat di mana kode Ansible ditulis sehingga mengarahkan Ansible sendiri apa yang harus dieksekusi dengan cara seperti daftar yang harus dilakukan. Mereka ditulis dalam format YAML (Yet Another Markup Language). Masing-masing berisi operasi langkah demi langkah yang diikuti oleh pengguna pada mesin tertentu yang berjalan secara berurutan. Struktur mereka terdiri dari satu atau lebih Drama. Play pada dasarnya adalah blok kode yang memetakan serangkaian instruksi yang ditentukan terhadap host tertentu.

Tag YAML yang Umum Digunakan di Ansible

  1. nama

    Ini adalah tag yang mendefinisikan nama buku pedoman Ansible. Dianjurkan untuk menetapkan nama yang secara tepat mendefinisikan apa yang akan dilakukannya.

  2. host

    Ini mendefinisikan grup host atau daftar host tempat tugas yang ditentukan akan dijalankan. Ini adalah tag wajib yang memberi tahu Ansible di host mana yang menjalankan tugas yang telah terdaftar. Karena tugas dapat dilakukan pada beberapa mesin baik mesin yang sama atau mesin jarak jauh, seseorang dapat menentukan sekelompok entri host dalam tag ini.

  3. var

    Seperti bahasa pemrograman lainnya, Anda akan membutuhkan variabel. Dengan tag ini, Anda dapat menentukan variabel yang akan Anda gunakan di buku pedoman Anda.

  4. tugas

    Tag ini akan memungkinkan Anda untuk membuat daftar serangkaian tugas yang akan dieksekusi. Tugas sebenarnya adalah tindakan yang harus dilakukan seseorang. Bidang tugas mendefinisikan nama tugas yang pada dasarnya membantu teks untuk pengguna selama debugging buku pedoman. Sepotong kode yang didefinisikan sebagai modul ditautkan secara internal oleh setiap tugas dan argumen apa pun yang akan digunakan dalam modul dilewatkan melalui tag tugas.

Struktur buku pedoman sederhana terlihat seperti ini...

---
 name: install and configure DB
   hosts: testServer
   become: yes

   vars: 
      mongoDB_Port : 27017
   
   tasks:
   -name: Install the mongodb
      yum: <code to install the DB>
    
   -name: Ensure the installed service is enabled and running
   service:
      name: <your service name>

Menulis Playbook Sederhana untuk Menginstal dan Memulai MongoDB

  1. Mengaktifkan Akses Root SSH

    Beberapa penyiapan node terkelola dapat menghalangi Anda untuk masuk sebagai pengguna root sehingga perlu menentukan buku pedoman untuk menyelesaikannya. Kami akan membuat playbook enable-root-access.yml yang akan terlihat seperti ini

    ---
    - hosts: ansible-test
      remote_user: ubuntu
      tasks:
        - name: Enable root login
          shell: sudo cp ~/.ssh/authorized_keys /root/.ssh/

    Saat Anda menjalankan perintah

    $ ansible-playbook -i inventory.txt -c ssh enable-root-access.yaml 

    Anda akan melihat sesuatu seperti

    PLAY [ansible-test] ***********************************************************
    GATHERING FACTS ***************************************************************
    TASK: [Enable root login] *****************************************************
    PLAY RECAP ********************************************************************
  2. Memilih host dan pengguna di mongodbInstall.yaml

    ---
    - hosts: ansible-test
      remote_user: root
      become: yes
  3. Menambahkan tugas yang akan dieksekusi

    Tugas dijalankan secara berurutan, jadi kita perlu menguraikannya secara berurutan yaitu

    1. apt_key untuk menambahkan kunci repositori. Kunci GPG publik MongoDB perlu diimpor terlebih dahulu
      - name: Import the public key used by the package management system
          apt_key: keyserver=hkp://keyserver.ubuntu.com:80 id=7F0CEB10 state=present
    2. Menambahkan MongoDB apt_repository
      - name: Add MongoDB repository
        apt_repository: repo='deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' state=present
    3. Instal paket dan mulai mongod, lalu muat ulang database paket lokal
      - name: install mongodb
        apt: pkg=mongodb-org state=latest update_cache=yes
        notify:
        - start mongodb
    4. Mengelola layanan, menggunakan penangan untuk memulai dan memulai kembali layanan
      handlers:
        - name: start mongodb
          service: name=mongod state=started
Beberapa Sembilan Menjadi DBA MongoDB - Membawa MongoDB ke ProduksiPelajari tentang apa yang perlu Anda ketahui untuk menerapkan, memantau, mengelola, dan menskalakan MongoDBUnduh secara Gratis

Kode buku pedoman umum akan terlihat seperti ini

---
- hosts: ansible-test
  remote_user: root
  become: yes
  tasks:
  - name: Import the public key used by the package management system
    apt_key: keyserver=hkp://keyserver.ubuntu.com:80 id=7F0CEB10 state=present
  - name: Add MongoDB repository
    apt_repository: repo='deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' state=present
  - name: install mongodb
    apt: pkg=mongodb-org state=latest update_cache=yes
    notify:
    - start mongodb
  handlers:
    - name: start mongodb
      service: name=mongod state=started

Kami kemudian dapat menjalankan file ini dengan mungkin menggunakan perintah

ansible-playbook -i inventory.txt -c ssh mongodbInstall.yaml

Jika buku pedoman telah berhasil dijalankan, Anda akan melihat ini di terminal Anda

PLAY [ansible-test] ***********************************************************

GATHERING FACTS ***************************************************************
ok: [12.20.3.105]
ok: [12.20.3.106]

TASK: [Import the public key used by the package management system] ***********
changed: [12.20.3.105]
changed: [12.20.3.106]

TASK: [Add MongoDB repository] ************************************************
changed: [12.20.3.105]
changed: [12.20.3.106]

TASK: [install mongodb] *******************************************************
changed: [12.20.3.105]
changed: [12.20.3.106]

NOTIFIED: [start mongodb] *****************************************************
ok: [12.20.3.106]
ok: [12.20.3.105]

PLAY RECAP ********************************************************************
12.20.3.105                : ok=5    changed=3    unreachable=0    failed=0
12.20.3.106                : ok=5    changed=3    unreachable=0    failed=0

Jika sekarang Anda menjalankan mongo, Anda akan diarahkan ke mongo shell

MongoDB shell version v4.0.3
connecting to: mongodb://127.0.0.1:27017
Implicit session: session { "id" : UUID("07c88442-0352-4b23-8938-fdf6ac66f253") }
MongoDB server version: 4.0.3
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    http://docs.mongodb.org/
Questions? Try the support group
    http://groups.google.com/group/mongodb-user

Kesimpulan

Ansible adalah mesin TI open source sederhana yang mengotomatiskan penerapan aplikasi, orkestrasi layanan, dan penyediaan cloud.

Ia bekerja dengan menghubungkan node database dan mendorong keluar mendefinisikan instruksi yang dikenal sebagai modul untuk mereka, mengeksekusi mereka melalui SSH secara default dan kemudian menyingkirkan mereka ketika selesai. Itu tidak menjalankan daemon atau server apa pun sehingga dapat dijalankan dari mesin jarak jauh mana pun. Dalam tutorial berikutnya, kita akan membahas cara memelihara set replika MongoDB di cloud menggunakan Ansible.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $sum dan $avg sub dokumen

  2. Mendekode Log Kesalahan MongoDB

  3. Menggunakan generator Rekaman Aktif setelah instalasi Mongoid?

  4. Temukan dokumen yang bidang arraynya berisi setidaknya n elemen dari array yang diberikan

  5. MongoDB:Timeout terjadi setelah 30000ms memilih server menggunakan CompositeServerSelector