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をインストールできます。