trfore.mongodb_install
Ansibleロール: mongodb_install
このロールは、OSのパッケージマネージャーを介してMongoDB Communityエディションサーバーメタパッケージであるmongodb-orgをインストールします(デフォルト)。現在、バージョン4からの最新リリースをデフォルトでインストールしますが、mongodb_version: 6.0.16を設定することでより新しいメジャーバージョンをインストールすることもできます。互換性のマトリックスについては「テスト済みプラットフォームとバージョン」セクションを参照してください。
また、mongodb_pkg_install: falseを設定することでMongoDBサーバーのバイナリ(mongo, mongod, mongos)をインストールすることもできます。この場合、最新のtarボールをダウンロードします。ローカルのAnsibleコントロールホストからバイナリをインストールしたい場合は、適切なtarファイル(mongodb-linux-x86_64-{DISTRO}-{VERSION}.tgz)をfilesディレクトリにダウンロードし、以下の2つの変数をプレイブックで設定します:
- mongodb_tar_src: mongodb-linux-x86_64-{DISTRO}-{VERSION}.tgz
- mongodb_tar_src_remote: false
作業例は「例プレイブック」セクションを参照してください。このロールはサーバーを構成しません。デフォルトの設定値と最小推奨のulimit設定を使用します。サーバーを本番環境向けに設定することを推奨します。詳細については、次のリンクを確認してください: https://www.mongodb.com/docs/manual/administration/production-notes/
ロールのインストール
Ansible Galaxy CLIを使用してこのロールをインストールできます:
ansible-galaxy install trfore.mongodb_install
また、requirements.ymlファイルに含めて、ansible-galaxy install -r requirements.ymlを使用してインストールすることもできます。フォーマットは以下の通りです:
---
roles:
  - trfore.mongodb_install
テスト済みプラットフォームとバージョン
MongoDB Community 7.0.12
- CentOS Stream 8 & 9
- Debian 11 & 12
- Ubuntu 20.04 & 22.04
MongoDB Community 6.0.16
- CentOS Stream 8 & 9
- Debian 10 & 11
- Ubuntu 20.04 & 22.04
MongoDB Community 5.0.28
- CentOS Stream 8
- Debian 10 & 11
- Ubuntu 20.04
MongoDB Community 4.4.29
- CentOS Stream 8
- Debian 10
- Ubuntu 20.04
要件
- ansible-core>=2.14.0
依存関係
- community.general.yum_versionlock(CentOS & RHELターゲットホスト向け)- ansible-galaxy collection install community.general
ロール変数
一般変数
一般的な変数は以下にリストされています(デフォルト値を含む、defaults/main.ymlを参照):
| 変数 | デフォルト | 説明 | 必須 | 
|---|---|---|---|
| mongodb_pkg_install | true | Boolean, パッケージマネージャーを介してMongoDBをインストールする場合は true | いいえ | 
| mongodb_version | 4.4.29 | MongoDB Communityの安定リリース v4.4,v5,v6,v7 | いいえ | 
| mongodb_version_maj | 自動 | mongodb_versionからメジャーバージョンを抽出します | 自動 | 
| mongodb_version_maj_minor | 自動 | mongodb_versionからメジャーおよびマイナーバージョンを抽出します | 自動 | 
パッケージインストール変数
defaults/main.yml:
| 変数 | デフォルト | 説明 | 必須 | 
|---|---|---|---|
| mongodb_gpg_key | URL | MongoDB GPGキー | いいえ | 
| mongodb_pkg_hold | true | Boolean, パッケージバージョンを保持する場合は true | いいえ | 
| mongodb_pkg_hold_list | MongoDBパッケージ | mongodb-orgからインストールされたMongoDBパッケージのリストv4.4からv7まで | いいえ | 
バイナリインストール変数
defaults/main.yml:
| 変数 | デフォルト | 説明 | 必須 | 
|---|---|---|---|
| mongodb_tar_src | URL | MongoDB Communityのバイナリtarファイル(tarインストール用) | いいえ | 
| mongodb_tar_src_remote | true | Boolean, URLからダウンロードしている場合は true | いいえ | 
| mongodb_path_exec | /usr/bin | MongoDBバイナリパス(tarインストール用) | いいえ | 
その他のOS固有の変数
vars/debian.yml:
| 変数 | デフォルト | 説明 | 必須 | 
|---|---|---|---|
| mongodb_path_db | /var/lib/mongodb | MongoDBデータベースフォルダのパス(tarインストール用) | いいえ | 
| mongodb_path_log | /var/log/mongodb | MongoDBログフォルダのパス(tarインストール用) | いいえ | 
| mongodb_dependencies | ["libcurl4","openssl","liblzma5"] | MongoDBに必要なパッケージ(tarインストール用) | いいえ | 
| mongodb_pkg_hold_list | MongoDBパッケージ | mongodb-orgからインストールされたMongoDBパッケージのリスト(pkgインストール用) | いいえ | 
vars/redhat.ymlおよびvars/redhat_mongo_v{4-6}.yml:
| 変数 | デフォルト | 説明 | 必須 | 
|---|---|---|---|
| mongodb_path_db | /var/lib/mongo | MongoDBデータベースフォルダのパス(tarインストール用) | いいえ | 
| mongodb_path_log | /var/log/mongodb | MongoDBログフォルダのパス(tarインストール用) | いいえ | 
| mongodb_dependencies | ["libcurl-minimal","openssl","xz-libs"] | MongoDBに必要なパッケージ(tarインストール用) | いいえ | 
| mongodb_pkg_hold_list | MongoDBパッケージ | mongodb-orgからインストールされたMongoDBパッケージのリスト(pkgインストール用) | いいえ | 
例プレイブック
- ディストリビューションのパッケージマネージャーを介したパッケージインストール。
- hosts: servers
  become: true
  roles:
    - name: MongoDBをインストール
      role: trfore.mongodb_install
- hosts: servers
  become: true
  vars:
    mongodb_pkg_install: true
    mongodb_version: "6.0.16"
  roles:
    - name: MongoDBをインストール
      role: trfore.mongodb_install
- tarファイルからのバイナリインストール。
- hosts: servers
  become: true
  vars:
    mongodb_pkg_install: false
    mongodb_version: "6.0.16"
  roles:
    - name: MongoDBをインストール
      role: trfore.mongodb_install
- tarファイルからのバイナリインストール(tarボールを制御ホストに手動でダウンロードした場合)。
- hosts: servers
  become: true
  vars:
    mongodb_pkg_install: false
    mongodb_tar_src: mongodb-linux-x86_64-debian10-4.4.29.tgz
    mongodb_tar_src_remote: false
  roles:
    - name: MongoDBをインストール
      role: trfore.mongodb_install
ライセンス
このAnsibleロールはMITライセンスです。
MongoDB Communityは、MongoDB, Inc.から提供されるサーバーサイドパブリックライセンスソフトウェアです。詳細については、次のリンクを参照してください: https://www.mongodb.com/licensing/server-side-public-license
著者情報
テイラー・フォア (https://github.com/trfore)
関連ロールとプレイブック
| Github | Ansible Galaxy | 
|---|---|
| ansible-role-jsvc | trfore.jsvc | 
| ansible-role-mongodb-install | trfore.mongodb_install | 
| ansible-role-omada-install | trfore.omada_install | 
参考文献
MongoDB
- https://www.mongodb.com/docs/manual/release-notes/
- https://www.mongodb.com/download-center/community/releases
- https://www.mongodb.com/docs/manual/administration/install-on-linux/
- https://www.mongodb.com/docs/manual/administration/production-notes/
- https://www.mongodb.com/docs/manual/reference/configuration-options/
- https://www.mongodb.com/docs/manual/reference/ulimit/
