Gelang adalah perangkat lunak sumber terbuka yang menyediakan lingkungan pengembangan yang bersih, mudah dikonfigurasi, dapat direproduksi, dan portabel. Menggunakan Vagrant, kita dapat dengan mudah dan cepat membangun dan memelihara lingkungan pengembangan perangkat lunak virtual yang berbeda. Dalam panduan ini, kita akan melihat cara menginstal mongoDB menggunakan Vagrant di sistem operasi Linux.
Apa itu mongoDB?
MongoDB adalah database berorientasi dokumen NoSQL yang digunakan ketika Anda harus menangani data yang sangat banyak. MongoDB menggunakan koleksi dan dokumen untuk menyimpan data. Dokumen adalah kumpulan pasangan nilai kunci (JSON) yang disimpan dalam koleksi.
Di bawah ini adalah contoh dokumen dalam JSON format untuk referensi Anda.
{
title: 'Install MongoDB-5 In Linux Using Vagrant',
url: 'https://ostechnix.com/',
Site: 'ostechnix',
owner: 'sk',
author: 'Karthick',
tags: ['community Edition', 'Linux', 'NoSQL', 'MongoDB5'],
mongo_version: 5
} Versi mongoDB terbaru adalah 5 . MongoDB tersedia dalam dua varian - edisi komunitas dan edisi perusahaan. Pada artikel ini, kita akan menginstal edisi komunitas mongoDB 5 menggunakan Vagrant di Linux.
Prasyarat
Sebelum melanjutkan ke langkah selanjutnya, pastikan Anda telah menginstal Oracle VirtualBox dan Vagrant di mesin Linux Anda. Oracle VirtualBox tersedia di repositori resmi distribusi Linux populer, sehingga Anda dapat menginstalnya menggunakan manajer paket default distribusi Anda.
Kemudian, instal Vagrant di sistem Linux Anda seperti yang dijelaskan di tautan berikut.
- Cara Menginstal Vagrant Di Linux
Inisialisasi lingkungan Vagrant
Untuk tujuan panduan ini, saya akan menggunakan Oracle Virtualbox sebagai hypervisor, yang merupakan penyedia default untuk Vagrant. Dan saya menggunakan kotak Vagrant Ubuntu 20.04 untuk menyebarkan mongoDB di dalamnya.
Buat direktori proyek baru untuk MongoB.
$ mkdir mongodb_vagrant
Beralih ke direktori proyek dan inisialisasi lingkungan gelandangan dengan menjalankan perintah berikut:
$ cd mongodb_vagrant
$ vagrant init -m "ubuntu\focal64"
Ini akan membuat Vagrantfile baru di direktori proyek. Buka Vagrantfile di editor favorit Anda dan salin/tempel baris berikut di dalamnya:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/focal64"
config.vm.box_check_update = false
config.vm.define "MongoDB5"
config.vm.network "public_network"
config.vm.provision "shell", path: "mongo-bootstrap.sh"
config.vm.provider "virtualbox" do |v|
v.memory = 2048
v.cpus = 2
v.name = "MongoDB-5"
end
end Izinkan saya untuk menjelaskan parameter penting dalam kode di atas.
Parameter vm.box menunjuk ke distribusi Linux yang mendasari yang kami gunakan untuk menginstal MongoDB. Dalam kasus kami, ini adalah Ubuntu 20.04 LTS.
config.vm.box = "ubuntu/focal64"
Setiap kali Anda mem-boot VM, Vagrant akan memeriksa apakah ada pembaruan untuk kotak yang digunakan. Menyetel parameter box_check_update = false akan menonaktifkan pemeriksaan pembaruan. Ini opsional! Anda lebih suka memperbarui kotak Vagrant, Anda dapat menghapus baris ini:
config.vm.box_check_update = false
Setiap VM gelandangan ditetapkan dengan default sebagai nama. Parameter vm.define dapat digunakan untuk menetapkan nama khusus untuk VM Anda. Dalam hal ini, saya telah menetapkan nama menjadi MongoDB5 .
config.vm.define "MongoDB5"
Anda dapat menjalankan global-status perintah untuk memeriksa nama yang ditetapkan untuk VM:
$ vagrant global-status --prune id name provider state directory -------------------------------------------------------------------------------------------- 76c3e81 MongoDB5 virtualbox running /home/karthick/Work/Lab/vagrant/mongodb_vagrant
Parameter berikut menentukan bagaimana jaringan akan disiapkan untuk VM Anda.
config.vm.network "public_network"
Saya telah menyiapkan Public_network . Saya juga belum memberikan nama antarmuka karena mungkin berbeda dan antarmuka yang akan dihubungkan akan diminta selama vagrant up seperti yang ditunjukkan pada output log di bawah ini.
==> MongoDB5: Available bridged network interfaces:
1) wlo1
2) eno1
3) docker0
==> MongoDB5: When choosing an interface, it is usually the one that is
==> MongoDB5: being used to connect to the internet.
==> MongoDB5:
MongoDB5: Which interface should the network bridge to? 1
==> MongoDB5: Preparing network interfaces based on configuration...
MongoDB5: Adapter 1: nat
MongoDB5: Adapter 2: bridged
==> MongoDB5: Forwarding ports...
MongoDB5: 22 (guest) => 2222 (host) (adapter 1)
Saya telah menggunakan penyedia shell untuk menginstal dan mengatur MongoDB. Nama skripnya adalah mongo-bootstrap.sh . Anda dapat memberi nama skrip sesuai keinginan.
config.vm.provision "shell", path: "mongo-bootstrap.sh"
Parameter berikut akan mengonfigurasi memori dan CPU untuk mesin virtual Anda. Saya telah menyetel memori ke 2gigs dan 2 Vcore . Anda dapat menambah dan mengurangi nilai dengan memodifikasi v.memory dan v.cpus parameter.
config.vm.provider "virtualbox" do |v|
v.memory = 2048
v.cpus = 2
v.name = "MongoDB-5"
end
Nama yang ditetapkan untuk parameter v.name adalah apa yang akan ditampilkan di GUI Virtualbox Anda.
Buat skrip bootstrap shell
Seperti yang saya nyatakan sebelumnya, penyedia shell digunakan untuk menginstal dan mengonfigurasi mongoDB di kotak gelandangan.
Buat file bernama mongo-bootstrap.sh :
$ vi mongo-bootstrap.sh
Dan tambahkan potongan kode berikut di dalamnya:
#!/usr/bin/env bash
# Adding Repo
echo "-------------------------- ADDING REPO -------------------------------------"
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
# Updating Package Index and Installing MongoDB-5
echo "-------------------------- UPDATING PACKAGE INDEX -------------------------------------"
sudo apt update
echo "-------------------------- INSTALL PACKAGES --------------------------"
sudo apt install -y mongodb-org net-tools
# Start and Enable Mongod
echo "-------------------------- START & ENABLE MONGOD --------------------------"
sudo systemctl enable --now mongod
sleep 20
# Create user
echo "-------------------------- CREATE VAGRANT USER --------------------------"
mongosh << BLK
use admin
db.createUser(
{
user: "vagrant",
pwd: "vagrant",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "clusterAdmin", db: "admin" }
]
})
exit
BLK
## Enable Authorization
sudo cat << EOB >> /etc/mongod.conf
#security:
security:
authorization: "enabled"
EOB
echo "-------------------------- RESTARTED MONGOD --------------------------"
sudo systemctl restart mongod
Tekan ESC dan ketik :wq untuk menyimpan file dan menutupnya.
Izinkan saya memberi Anda deskripsi singkat tentang setiap bagian dalam kode di atas.
Secara default, ada versi mongoDB yang lebih lama yang dikirimkan bersama Ubuntu. Jika Anda menginginkan mongodDB versi terbaru, Anda harus menambahkan repositori resmi di mongo-bootstrap.sh mengajukan.
Bagian kode berikut akan menangani penambahan repositori, memperbarui Indeks paket, menginstal mongoDB, dan memunculkan mongod daemon.
Blok kode berikut akan membuat pengguna gelandangan dengan hak istimewa admin. Nama pengguna akan menjadi vagrant dan kata sandi juga disetel ke vagrant . Anda dapat mengatur nama pengguna dan kata sandi yang berbeda jika diinginkan.
Secara default, tidak ada kebijakan keamanan yang diberlakukan. Setiap pengguna dapat memanggil mongosh shell dan mulai menggunakan database. Untuk menegakkan kontrol akses berbasis peran, parameter berikut harus ditambahkan ke /etc/mongod.conf berkas.
Potongan kode ini akan menangani penambahan parameter dan memulai ulang mongod daemon agar perubahan menjadi efektif.
Perhatian: Sebelum mengaktifkan RBAC (Role based access control), pengguna admin harus dibuat, sehingga dia dapat memberikan akses ke pengguna lain di database apa pun.
Mulai mesin mongoDB Vagrant
Setelah file Vagrant dan skrip bootstrap dibuat, Anda dapat memulai VM dengan menjalankan perintah berikut:
$ vagrant up
Sekarang, tunggu sampai mesin di-boot dan instalasi mongoDB dan bagian konfigurasi ditangani oleh skrip bootstrap. Ini akan memakan waktu beberapa menit.
Untuk login ke VM, jalankan perintah berikut:
$ vagrant ssh
MongoDB mendengarkan di port 27017 . Anda dapat menggunakan netstat perintah untuk memeriksa apakah port dalam status mendengarkan.
$ sudo netstat -tlnup
Contoh keluaran:
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 3306/mongod
Jalankan perintah berikut untuk memeriksa status mongod layanan:
$ systemctl status mongod
Contoh keluaran:
● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-08-17 10:24:36 UTC; 2h 21min ago
Docs: https://docs.mongodb.org/manual
Main PID: 3306 (mongod)
Memory: 162.3M
CGroup: /system.slice/mongod.service
└─3306 /usr/bin/mongod --config /etc/mongod.conf Akses mongoDB shell
kulit mongo adalah klien cli untuk terhubung ke mongoDB. Sekarang diganti dengan klien cli baru mongosh dari mongoDB V5.
Jalankan mongosh di terminal untuk mulai menggunakan shell. Karena RBAC diaktifkan, Anda harus memberikan kredensial.
Anda dapat terhubung ke database MongoDB menggunakan monosh menggunakan string koneksi berikut.
$ mongosh mongodb://<username>:<password>@localhost:<port>/<database>
Di sini saya terhubung dengan pengguna gelandangan yang baru dibuat.
$ mongosh mongodb://vagrant:[email protected]:27017/admin
Atau, Anda dapat memulai shell dan menjalankan perintah berikut untuk terhubung:
$ monosh
$ use admin
$ db.auth("username","password") $ db.auth("vagrant","vagrant")
Kelola kotak gelandangan mongoDB dari baris perintah
Perintah gelandangan berikut akan membantu Anda mengelola mongoDB VM melalui CLI:
$ vagrant --global-status --prune # check the status of the machine $ vagrant halt # Stop the VM $ vagrant destroy # Destroy the VM and associated VM disk. $ vagrant ssh # Login to Remote Host
Untuk penggunaan perintah Vagrant yang lebih detail, lihat tutorial Vagrant kami:
- Tutorial Vagrant – Memulai Vagrant Di Linux
Kesimpulan
Dalam panduan langkah demi langkah ini, kita telah melihat cara mudah mengatur mongoDB di Ubuntu 20.04 Vagrant box. Jika Anda menguji proyek mongoDB atau mempelajari mongoDB, Anda dapat dengan cepat memutar kotak Vagrant dan menginstal mongodDB di kotak Vagrant seperti yang dijelaskan di sini.