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.