GNU/Linux >> Belajar Linux >  >> Linux

Instal MongoDB Menggunakan Vagrant Di Linux

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.


Linux
  1. Cara Menginstal Vagrant di Linux

  2. Cara Instal phpMyAdmin di Linux menggunakan Source Code

  3. Instal beberapa versi MongoDB di linux

  1. Cara Menginstal Vagrant Di Linux

  2. Instal MongoDB di CentOS VPS

  3. Cara Menginstal MongoDB dari Sumber (dan menggunakan YUM) di Linux

  1. Cara Menginstal MongoDB di Debian 10 Linux

  2. Cara Menginstal Vagrant di Debian 10 Linux

  3. Kesalahan pada Vagrant Up di Linux