CentOS7.4にMongoDB Community Editionをインストールする

投稿者: | 2018年4月3日

はじめに

仮想マシン上のCentOS7.4にMongoDB Community Editionをインストールする場合、MongoDB公式サイトのドキュメントに従ってインストールできるのですが不要な手順と、コマンドの読み替えが必要となります。

実際にインストールを行い、インストールが可能な手順としてまとめます。

環境

  • Vagrant 2.0.3
  • Virtualbox 5.2.8
  • CentOS 7.4 (centos/7, 1802.01)

利用したVagrantfile

# vim: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.box_version = "1802.01"

  config.vm.network "private_network", ip:"192.168.200.1"

  config.vm.provider "virtualbox" do |vb|
      vb.memory = 4096  # 4GiB
  end
end

概要

基本はMongoDB公式サイトのドキュメントに従ってインストールを行います。

Install MongoDB Community Edition on Red Hat Enterprise or CentOS Linux

Red Hatと同じパッケージを利用します。公式リポジトリの登録を行った後にyumコマンドによりインストールが行えるので難易度は低めです。SELinuxに関連する手順と、起動・終了のためのコマンドの読み替えが必要となるので詳細は該当する手順で説明します。

2018年4月3日時点での最新バージョンは3.6なので、登録するリポジトリも3.6向けです。新しいバージョンがリリースされた場合は、新しいリポジトリの登録を行ってyum updateコマンドで更新できます。

手順

リポジトリを登録

以下の内容で「/etc/yum.repos.d/mongodb-org-3.6.repo」ファイルを作成します。

[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

インストール

$ sudo yum install -y mongodb-org

SELinuxの設定

公式ドキュメントではmongoDBが利用するポート番号を許可する設定を行っていますが、CentOS7.4では設定が行われているのでデフォルトの27017を利用するならば不要です。

確認すると「27017-27019, 28017-28019」のように少し広めに開けられています。

$ sudo semanage port -l | grep mongod
mongod_port_t                  tcp      27017-27019, 28017-28019

起動

公式ドキュメントではserviceコマンドによる例で説明されていますが、起動処理がinitからsystemdに変更されたのでsystemctlコマンドにより制御します。

$ sudo systemctl start mongod.service

状態確認

$ sudo systemctl status mongod.service
● mongod.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2018-04-02 17:27:16 UTC; 39min ago
     Docs: https://docs.mongodb.org/manual
 Main PID: 25840 (mongod)
   CGroup: /system.slice/mongod.service
           └─25840 /usr/bin/mongod -f /etc/mongod.conf

終了

$ sudo systemctl stop mongod.service

接続

mongoコマンドによりmongoDBへ接続が行えます。デフォルト設定ならば「localhost:27017」への接続となるのでオプションは不要です。

$ mongo

注意

「epel-release」リポジトリが有効になっている場合にyum install mongodbでインストールできますが、とても古いバージョンなのでオススメしません。また、新しいバージョンのパッケージ名はmongodb-orgなので間違わないように注意です。

おまけ

semanageコマンドについて

semanageコマンドがインストールされていない場合は、必要なパッケージを検索してインストールします。

$ yum provides -q semanage
policycoreutils-python-2.5-17.1.el7.x86_64 : SELinux policy core python utilities
Repo        : base
Matched from:
Filename    : /usr/sbin/semanage

$ sudo yum install policycoreutils-python