trfore.mongodb_install

Ansible 角色: mongodb_install

CI CD

这个角色通过操作系统的包管理器(默认)或通过 tar 文件安装 MongoDB 社区版服务器的元包 mongodb-org。它默认安装 版本 4 的最新发布,您可以通过设置 mongodb_version: 6.0.16 来安装更新的大版本,详情请见“已测试的平台和版本”部分以查看兼容性矩阵。

或者,您可以通过设置 mongodb_pkg_install: false 来安装 MongoDB 服务器二进制文件 - mongomongodmongos,角色将下载 版本 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.4v7

二进制安装变量

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.ymlvars/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

关于项目

Install MongoDB Community Edition on RedHat/CentOS and Debian/Ubuntu.

安装
ansible-galaxy install trfore.mongodb_install
许可证
mit
下载
946
拥有者