trfore.mongodb_install
Ansible 角色: mongodb_install
这个角色通过操作系统的包管理器(默认)或通过 tar 文件安装 MongoDB 社区版服务器的元包 mongodb-org
。它默认安装 版本 4 的最新发布,您可以通过设置 mongodb_version: 6.0.16
来安装更新的大版本,详情请见“已测试的平台和版本”部分以查看兼容性矩阵。
或者,您可以通过设置 mongodb_pkg_install: false
来安装 MongoDB 服务器二进制文件 - mongo
,mongod
,mongos
,角色将下载 版本 4 的最新 tar 包,如果您设置 mongodb_version
则将下载更新的大版本。如果您希望从您的本地 Ansible 控制主机安装二进制文件,请将适当的 tar 文件 mongodb-linux-x86_64-{DISTRO}-{VERSION}.tgz
下载到您的 files
目录,并在剧本中设置以下两个变量:
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 社区版 7.0.12
- CentOS Stream 8 & 9
- Debian 11 & 12
- Ubuntu 20.04 & 22.04
MongoDB 社区版 6.0.16
- CentOS Stream 8 & 9
- Debian 10 & 11
- Ubuntu 20.04 & 22.04
MongoDB 社区版 5.0.28
- CentOS Stream 8
- Debian 10 & 11
- Ubuntu 20.04
MongoDB 社区版 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 |
布尔值,true 表示通过包管理器安装 MongoDB |
否 |
mongodb_version | 4.4.29 |
MongoDB 社区稳定版本 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 |
布尔值,true 表示保持包版本 |
否 |
mongodb_pkg_hold_list | MongoDB 包 | 从 mongodb-org 安装的 MongoDB 包列表,v4.4 到 v7 |
否 |
二进制安装变量
defaults/main.yml
:
变量 | 默认 | 描述 | 是否必需 |
---|---|---|---|
mongodb_tar_src | URL | URL 或相对路径,MongoDB 社区二进制 tar 文件(tar 安装) | 否 |
mongodb_tar_src_remote | true |
布尔值,true 表示从 URL 下载(tar 安装) |
否 |
mongodb_path_exec | /usr/bin |
PATH,MongoDB 二进制路径(tar 安装) | 否 |
其他操作系统特定变量
vars/debian.yml
:
变量 | 默认 | 描述 | 是否必需 |
---|---|---|---|
mongodb_path_db | /var/lib/mongodb |
PATH,MongoDB 数据库文件夹(tar 安装) | 否 |
mongodb_path_log | /var/log/mongodb |
PATH,MongoDB 日志文件夹(tar 安装) | 否 |
mongodb_dependencies | ["libcurl4","openssl","liblzma5"] |
MongoDB 需要的包(tar 安装) | 否 |
mongodb_pkg_hold_list | MongoDB 包 | 从 mongodb-org 安装的 MongoDB 包列表(包安装) |
否 |
vars/redhat.yml
和 vars/redhat_mongo_v{4-6}.yml
:
变量 | 默认 | 描述 | 是否必需 |
---|---|---|---|
mongodb_path_db | /var/lib/mongo |
PATH,MongoDB 数据库文件夹(tar 安装) | 否 |
mongodb_path_log | /var/log/mongodb |
PATH,MongoDB 日志文件夹(tar 安装) | 否 |
mongodb_dependencies | ["libcurl-minimal","openssl","xz-libs"] |
MongoDB 需要的包(tar 安装) | 否 |
mongodb_pkg_hold_list | MongoDB 包 | 从 mongodb-org 安装的 MongoDB 包列表(包安装) |
否 |
示例剧本
- 通过发行版的包管理器进行安装。
- 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 社区版是来自 MongoDB, Inc. 的服务器侧公共许可证软件。有关更多信息,请参见:https://www.mongodb.com/licensing/server-side-public-license
作者信息
Taylor Fore (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/