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
- Koordinasi yang rumit antar anggota tim.
- Peluang tinggi pengulangan tugas
- Rentan dengan banyak kesalahan dan kesalahan manusia
- Tidak mudah mengatasi kerumitan
- Berkurangnya kolaborasi dan ketidakpuasan kerja
- Memakan waktu
- 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
-
nama
Ini adalah tag yang mendefinisikan nama buku pedoman Ansible. Dianjurkan untuk menetapkan nama yang secara tepat mendefinisikan apa yang akan dilakukannya.
-
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.
-
var
Seperti bahasa pemrograman lainnya, Anda akan membutuhkan variabel. Dengan tag ini, Anda dapat menentukan variabel yang akan Anda gunakan di buku pedoman Anda.
-
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
-
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 ********************************************************************
-
Memilih host dan pengguna di mongodbInstall.yaml
--- - hosts: ansible-test remote_user: root become: yes
-
Menambahkan tugas yang akan dieksekusi
Tugas dijalankan secara berurutan, jadi kita perlu menguraikannya secara berurutan yaitu
- 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
- Menambahkan MongoDB apt_repository
- name: Add MongoDB repository apt_repository: repo='deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' state=present
- 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
- Mengelola layanan, menggunakan penangan untuk memulai dan memulai kembali layanan
handlers: - name: start mongodb service: name=mongod state=started
- apt_key untuk menambahkan kunci repositori. Kunci GPG publik MongoDB perlu diimpor terlebih dahulu
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.