はじめに
突然ですが、Fedora 35のPCにMongoDB 5.0をインストールしてみることにしました。
MongoDB 5.0のインストール
MongoDB 5.0のインストールは、以下の手順で行います。
以前別のPCにMongoDB 4.2をインストールした際と同様に、Amazon Linux用の設定[1]を使ってインストールを試みることにします。
事前準備: YUMのパッケージマネージャの設定
MongoDBはライセンスの関係でFedoraの公式リポジトリからはインストールすることができません。
そこで、以下の手順でYUMのパッケージマネージャへのアクセス用の設定ファイルを追加します。
- 適当なエディタで/etc/yum.repos.d/mongodb-org-5.0.repoという名前のファイルを開きます(存在しない場合には作成します)。
- 以下のように記述します。[1]のページのAmazon Linux 2からコピーしたものを使用します(最初はRHEL8用の設定でインストールを試み、サーバのインストールには成功したのですが、ツールのインストールの際に「”/usr/libexec/platform-python”がないよ。」といわれて詰みます)。
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc - 手順2のファイルを保存します。
MongoDBのインストール
以下のコマンドを実行し、MongoDBのインストールを開始します[2]。
すると…
MongoDB Repository 10 kB/s | 2.5 kB 00:00
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール:
mongodb-org x86_64 5.0.6-1.amzn2 mongodb-org-5.0 6.1 k
依存関係のインストール:
mongodb-database-tools x86_64 100.5.2-1 mongodb-org-5.0 47 M
mongodb-mongosh x86_64 1.3.1-1.el8 mongodb-org-5.0 44 M
mongodb-org-database x86_64 5.0.6-1.amzn2 mongodb-org-5.0 6.2 k
mongodb-org-database-tools-extra x86_64 5.0.6-1.amzn2 mongodb-org-5.0 11 k
mongodb-org-mongos x86_64 5.0.6-1.amzn2 mongodb-org-5.0 19 M
mongodb-org-server x86_64 5.0.6-1.amzn2 mongodb-org-5.0 28 M
mongodb-org-shell x86_64 5.0.6-1.amzn2 mongodb-org-5.0 15 M
mongodb-org-tools x86_64 5.0.6-1.amzn2 mongodb-org-5.0 6.1 k
トランザクションの概要
================================================================================
インストール 9 パッケージ
ダウンロードサイズの合計: 154 M
インストール後のサイズ: 565 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/9): mongodb-org-5.0.6-1.amzn2.x86_64.rpm 19 kB/s | 6.1 kB 00:00
(2/9): mongodb-org-database-5.0.6-1.amzn2.x86_6 14 kB/s | 6.2 kB 00:00
(3/9): mongodb-org-database-tools-extra-5.0.6-1 28 kB/s | 11 kB 00:00
(4/9): mongodb-mongosh-1.3.1.el7.x86_64.rpm 5.7 MB/s | 44 MB 00:07
(5/9): mongodb-org-mongos-5.0.6-1.amzn2.x86_64. 2.6 MB/s | 19 MB 00:07
(6/9): mongodb-database-tools-100.5.2.x86_64.rp 3.6 MB/s | 47 MB 00:13
(7/9): mongodb-org-shell-5.0.6-1.amzn2.x86_64.r 3.1 MB/s | 15 MB 00:04
(8/9): mongodb-org-tools-5.0.6-1.amzn2.x86_64.r 9.0 kB/s | 6.1 kB 00:00
(9/9): mongodb-org-server-5.0.6-1.amzn2.x86_64. 4.0 MB/s | 28 MB 00:06
——————————————————————————–
合計 11 MB/s | 154 MB 00:14
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
インストール中 : mongodb-org-database-tools-extra-5.0.6-1.amzn2.x86_6 1/9
インストール中 : mongodb-org-shell-5.0.6-1.amzn2.x86_64 2/9
scriptletの実行中: mongodb-org-server-5.0.6-1.amzn2.x86_64 3/9
インストール中 : mongodb-org-server-5.0.6-1.amzn2.x86_64 3/9
scriptletの実行中: mongodb-org-server-5.0.6-1.amzn2.x86_64 3/9
Created symlink /etc/systemd/system/multi-user.target.wants/mongod.service → /usr/lib/systemd/system/mongod.service.
インストール中 : mongodb-org-mongos-5.0.6-1.amzn2.x86_64 4/9
インストール中 : mongodb-org-database-5.0.6-1.amzn2.x86_64 5/9
インストール中 : mongodb-mongosh-1.3.1-1.el8.x86_64 6/9
scriptletの実行中: mongodb-database-tools-100.5.2-1.x86_64 7/9
インストール中 : mongodb-database-tools-100.5.2-1.x86_64 7/9
scriptletの実行中: mongodb-database-tools-100.5.2-1.x86_64 7/9
インストール中 : mongodb-org-tools-5.0.6-1.amzn2.x86_64 8/9
インストール中 : mongodb-org-5.0.6-1.amzn2.x86_64 9/9
scriptletの実行中: mongodb-org-5.0.6-1.amzn2.x86_64 9/9
検証 : mongodb-database-tools-100.5.2-1.x86_64 1/9
検証 : mongodb-mongosh-1.3.1-1.el8.x86_64 2/9
検証 : mongodb-org-5.0.6-1.amzn2.x86_64 3/9
検証 : mongodb-org-database-5.0.6-1.amzn2.x86_64 4/9
検証 : mongodb-org-database-tools-extra-5.0.6-1.amzn2.x86_6 5/9
検証 : mongodb-org-mongos-5.0.6-1.amzn2.x86_64 6/9
検証 : mongodb-org-server-5.0.6-1.amzn2.x86_64 7/9
検証 : mongodb-org-shell-5.0.6-1.amzn2.x86_64 8/9
検証 : mongodb-org-tools-5.0.6-1.amzn2.x86_64 9/9
インストール済み:
mongodb-database-tools-100.5.2-1.x86_64
mongodb-mongosh-1.3.1-1.el8.x86_64
mongodb-org-5.0.6-1.amzn2.x86_64
mongodb-org-database-5.0.6-1.amzn2.x86_64
mongodb-org-database-tools-extra-5.0.6-1.amzn2.x86_64
mongodb-org-mongos-5.0.6-1.amzn2.x86_64
mongodb-org-server-5.0.6-1.amzn2.x86_64
mongodb-org-shell-5.0.6-1.amzn2.x86_64
mongodb-org-tools-5.0.6-1.amzn2.x86_64
完了しました!
…という感じでインストールができます。
インストールされたバージョンは5.0.6のようです。
設定ファイルのカスタマイズ
今回インストールするMongoDB 5.0は別のPCからのアクセスを許可する予定なので、/etc/mongod.confをちょっとカスタマイズします。
スポンサーリンク
具体的には、bindIpの設定を”127.0.0.1″から”192.168.aaa.bbb”(※諸事情により編集しています。)に変更してから保存します。
動作確認
準備が整ったところで、以下のコマンドを実行します。
$ sudo systemctl start mongod
プロセスが動いているかどうか確認します。
mongod 1251620 0.5 9.4 1534328 93216 ? Sl 21:35 0:04 /usr/bin/mongod -f /etc/mongod.conf
プロセスは無事動いているようですので、別のPCからアクセスできるかどうか確認してみます。
Trying 192.168.aaa.bbb…
Connected to 192.168.aaa.bbb.
Escape character is ‘^]’.
telnet> quit
Connection closed.
アクセスできているようです。😎
別のPCからは上記の方法以外の方法ではアクセスできないことを確認して、インストール作業は完了です。
SELinuxの設定
前節までの手順で動作することが確認できました。
しかし、SELinuxを設定している場合に/var/log/audit/audit.logに以下のようなログが大量に出力されることがあります。
audit2allowコマンドでSELinuxのポリシーを作れば万事解決… と思ったのですが、semoduleコマンドの実行に失敗してしまいました。
そこで、以下のType Enforcementファイルを作成して、mongodb_sysctl_fs.teというファイル名で保存します。
mongodb_sysctl_fs.teを作成したら、以下のコマンドを実行します。
$ semodule_package -o mongodb_sysctl_fs.pp -m mongodb_sysctl_fs.mod
$ sudo semodule -i mongodb_sysctl_fs.pp
これで完璧… と思いつつ、/var/log/audit/audit.logを確認すると…
1620 comm=”ftdc” name=”nfs” dev=”dm-0″ ino=50530043 scontext=system_u:system_r:m
ongod_t:s0 tcontext=system_u:object_r:var_lib_nfs_t:s0 tclass=dir permissive=0
のようなログが相変わらず大量に出力されていました。_| ̄|○
ただ、ログの出力パターンは若干変わったので、完全解決に向かってちょっとだけ近づいたのだという信念を持ちつつ、以下のType Enforcementファイルを作成して、mongodb_var_lib_nfs_fs.teというファイル名で保存します。
mongodb_var_lib_nfs_fs.teを作成したら、以下のコマンドを実行します。
$ semodule_package -o mongodb_var_lib_nfs.pp -m mongodb_var_lib_nfs.mod
$ sudo semodule -i mongodb_var_lib_nfs.pp
まとめ
追加したYUMのパッケージマネージャへのアクセス用の設定ファイルはFedoraのアップグレードを行っても更新などはされませんので、自力でアップデートなどのメンテナンスを行う必要がある点には注意が必要です。
以前MongoDB 4.2をインストールした際には[1]のページのAmazon Linux 2013.03+用のパッケージマネージャへのアクセス用の設定ファイルを使用してMongoDBをインストールしていましたが、今回のインストールでも試してみたところ、
「libsasl2.so.2がない。」
と言われてしまったので、Amazon Linux 2用の設定を試してみたところ、うまくインストールできました。
ここまでの作業を終えた時点ではMongoDBの中にはデータが何もない状態です。MongoDBを本格的に使うためには中身のデータを投入する必要がありますが、データがない状態でMongoDBをしばらく動かしてみて問題がないことが確認でき次第、データの投入を行って本格的な運用を始める予定です。
この記事は以上です。