GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでVagrantを使用してMongoDBをインストールする

Vagrant は、クリーンで構成が簡単で、再現性があり、ポータブルな開発環境を提供するオープンソースソフトウェアです。 Vagrantを使用すると、さまざまな仮想ソフトウェア開発環境を簡単かつ迅速に構築および保守できます。このガイドでは、LinuxオペレーティングシステムでVagrantを使用してmongoDBをインストールする方法を説明します。

mongoDBとは何ですか?

MongoDBは、膨大なデータを処理する必要がある場合に使用されるNoSQLドキュメント指向データベースです。 MongoDBは、コレクションとドキュメントを使用してデータを保存します。ドキュメントは、コレクションに保存されているキーと値のペア(JSON)のセットです。

以下は、JSONのサンプルドキュメントです。 参照用のフォーマット。

{
   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
}

mongoDBの最新バージョンは5 。 MongoDBには、コミュニティエディションとエンタープライズエディションの2つのバリエーションがあります。この記事では、LinuxでVagrantを使用してmongoDB5コミュニティエディションをインストールします。

前提条件

次の手順に進む前に、LinuxマシンにOracleVirtualBoxとVagrantがインストールされていることを確認してください。 Oracle VirtualBoxは、一般的なLinuxディストリビューションの公式リポジトリで利用できるため、ディストリビューションのデフォルトのパッケージマネージャーを使用してインストールできます。

次に、次のリンクの説明に従って、LinuxシステムにVagrantをインストールします。

  • LinuxにVagrantをインストールする方法

Vagrant環境を初期化する

このガイドでは、VagrantのデフォルトプロバイダーであるハイパーバイザーとしてOracleVirtualboxを使用します。そして、Ubuntu20.04Vagrantボックスを使用してmongoDBをデプロイしています。

MongoBの新しいプロジェクトディレクトリを作成します。

$ mkdir mongodb_vagrant

プロジェクトディレクトリに切り替え、次のコマンドを実行してvagrant環境を初期化します。

$ cd mongodb_vagrant
$ vagrant init -m "ubuntu\focal64"

これにより、プロジェクトディレクトリに新しいVagrantfileが作成されます。お気に入りのエディタでVagrantfileを開き、次の行をコピーして貼り付けます。

# -*- 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

上記のコードの重要なパラメータについて説明させてください。

パラメータvm.box MongoDBのインストールに使用する基盤となるLinuxディストリビューションを指します。私たちの場合、それはUbuntu20.04LTSです。

config.vm.box = "ubuntu/focal64"

VMを起動するたびに、Vagrantは使用されているボックスの更新があるかどうかを確認します。パラメータの設定box_check_update = false 更新チェックを無効にします。これはオプションです! Vagrantボックスを更新する場合は、次の行を削除できます:

config.vm.box_check_update = false

すべてのvagrantVMにはdefaultが割り当てられています 名前として。パラメータvm.define VMにカスタム名を設定するために使用できます。この場合、名前を MongoDB5に設定しました

config.vm.define "MongoDB5"

global-statusを実行できます VMに割り当てられた名前を確認するコマンド:

$ vagrant global-status --prune

id       name        provider   state    directory
--------------------------------------------------------------------------------------------

76c3e81  MongoDB5    virtualbox running  /home/karthick/Work/Lab/vagrant/mongodb_vagrant
を実行しているvirtualbox

次のパラメータは、VMのネットワークの設定方法を決定します。

config.vm.network "public_network"

Public_networkを設定しました 。また、インターフェース名は異なる可能性があり、接続するインターフェースはvagrant up中にプロンプ​​トが表示されるため、指定していません。 以下のログ出力に示されているように。

==> 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)

シェルプロビジョナーを使用してMongoDBをインストールおよびセットアップしました。スクリプト名はmongo-bootstrap.shです。 。スクリプトには必要に応じて名前を付けることができます。

config.vm.provision "shell", path: "mongo-bootstrap.sh"

次のパラメータは、仮想マシンのメモリとCPUを構成します。メモリを2ギグに設定しました および2つのVcores v.memoryを変更することで、値を増減できます。 およびv.cpus パラメータ。

config.vm.provider "virtualbox" do |v|
    v.memory = 2048
    v.cpus = 2
    v.name = "MongoDB-5"
  end

パラメータv.nameに割り当てられた名前 VirtualboxGUIに表示されるものです。

ブートストラップシェルスクリプトを作成する

先に述べたように、シェルプロビジョナーは、vagrantボックスにmongoDBをインストールして構成するために使用されます。

mongo-bootstrap.shという名前のファイルを作成します :

$ vi mongo-bootstrap.sh

そして、その中に次のコードを追加します。

#!/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

ESCを押します :wqと入力します ファイルを保存して閉じます。

上記のコードの各セクションについて簡単に説明します。

デフォルトでは、Ubuntuに同梱されている古いバージョンのmongoDBがあります。 mongodDBの最新バージョンが必要な場合は、mongo-bootstrap.shに公式リポジトリを追加する必要があります。 ファイル。

コードの次のセクションでは、リポジトリの追加、パッケージインデックスの更新、mongoDBのインストール、 mongodの起動を行います。 デーモン。

次のコードブロックは、管理者権限を持つvagrantユーザーを作成します。ユーザー名はvagrant パスワードもvagrantに設定されています 。必要に応じて、別のユーザー名とパスワードを設定できます。

デフォルトでは、セキュリティポリシーは適用されません。すべてのユーザーがmongoshを呼び出すことができます シェルを作成し、データベースの使用を開始します。ロールベースのアクセス制御を実施するには、次のパラメーターを /etc/mongod.confに追加する必要があります ファイル。

このコードのチャンクは、パラメーターの追加を処理し、mongodを再起動します 変更を有効にするためのデーモン。

ヘッズアップ: RBAC(ロールベースのアクセス制御)を有効にする前に、管理者ユーザーを作成して、任意のデータベースの他のユーザーにアクセスを許可できるようにする必要があります。

mongoDBVagrantマシンを起動します

Vagrantファイルとブートストラップスクリプトが作成されたら、次のコマンドを実行してVMを起動できます。

$ vagrant up

ここで、マシンが起動し、mongoDBのインストールと構成の部分がブートストラップスクリプトによって処理されるまで待ちます。これには数分かかります。

VMにログインするには、次のコマンドを実行します。

$ vagrant ssh

MongoDBはポート27017でリッスンします netstatを使用できます ポートがリスニングステータスにあるかどうかを確認するコマンド。

$ sudo netstat -tlnup

出力例:

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

次のコマンドを実行して、 mongodのステータスを確認します サービス:

$ systemctl status mongod

出力例:

● 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

mongoDBシェルにアクセス

mongoシェル mongoDBに接続するためのCLIクライアントです。現在、新しいCLIクライアント mongoshに置き換えられています mongoDBV5から。

mongoshを実行します ターミナルでシェルの使用を開始します。 RBACが有効になっているため、資格情報を提供する必要があります。

monoshを使用してMongoDBデータベースに接続できます 次の接続文字列を使用します。

$ mongosh mongodb://<username>:<password>@localhost:<port>/<database>

ここでは、新しく作成されたvagrantユーザーと接続しています。

$ mongosh mongodb://vagrant:[email protected]:27017/admin

または、シェルを起動し、次のコマンドを実行して接続することもできます。

$ monosh
$ use admin
$ db.auth("username","password")
$ db.auth("vagrant","vagrant")

コマンドラインからmongoDBvagrantboxを管理する

次のvagrantコマンドは、CLIを介してmongoDBVMを管理するのに役立ちます。

$ 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
>

Vagrantコマンドの使用法の詳細については、Vagrantチュートリアルを参照してください:

  • Vagrantチュートリアル–LinuxでVagrantを使い始める

結論

このステップバイステップガイドでは、Ubuntu20.04VagrantボックスでmongoDBを簡単にセットアップする方法を見てきました。 mongoDBプロジェクトをテストしている場合、またはmongoDBを学習している場合は、ここで説明するように、Vagrantボックスをすばやく起動して、VagrantボックスにmongodDBをインストールできます。


Linux
  1. LinuxにVagrantをインストールする方法

  2. Linux でソースから (および YUM を使用して) MongoDB をインストールする方法

  3. Linux での Vagrant Up のエラー

  1. LinuxにVagrantをインストールする方法

  2. ソースコードを使用してLinuxにphpMyAdminをインストールする方法

  3. CentOSVPSにMongoDBをインストールします

  1. Debian10LinuxにMongoDBをインストールする方法

  2. Debian10LinuxにVagrantをインストールする方法

  3. Linux に複数のバージョンの MongoDB をインストールする