目次
はじめに
仮想マシン上の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