trfore.mongodb_install
Rol de Ansible: mongodb_install
Este rol instala el metapaquete del servidor de la edición comunitaria de MongoDB, mongodb-org, a través del gestor de paquetes del sistema operativo (por defecto) o los binarios del servidor a través de un archivo tar. Por defecto, instala la última versión a partir de la 4, puedes instalar una versión mayor más reciente configurando mongodb_version: 6.0.16, consulta la sección 'Plataformas y Versiones Probadas' para una matriz de compatibilidad.
Alternativamente, puedes instalar los binarios del servidor de MongoDB - mongo, mongod, mongos, configurando mongodb_pkg_install: false y el rol descargará el último tarball a partir de la versión 4 o una versión mayor más reciente configurando mongodb_version. Si deseas instalar el binario desde tu host de control de Ansible local, descarga el archivo tar apropiado, mongodb-linux-x86_64-{DISTRO}-{VERSION}.tgz, en tu directorio files y establece las siguientes dos variables en tu playbook:
mongodb_tar_src: mongodb-linux-x86_64-{DISTRO}-{VERSION}.tgzmongodb_tar_src_remote: false
Consulta la sección 'Ejemplos de Playbooks' para ejemplos funcionales. Este rol no configura el servidor, utiliza los valores de configuración predeterminados y ajustes mínimos recomendados de ulimit. Se recomienda configurar el servidor para su uso en producción, para más detalles consulta: https://www.mongodb.com/docs/manual/administration/production-notes/
Instalar el Rol
Puedes instalar este rol con la CLI de Ansible Galaxy:
ansible-galaxy install trfore.mongodb_install
También puedes incluirlo en un archivo requirements.yml y instalarlo con ansible-galaxy install -r requirements.yml, usando el formato:
---
roles:
  - trfore.mongodb_install
Plataformas y Versiones Probadas
MongoDB Community 7.0.12
- CentOS Stream 8 y 9
 - Debian 11 y 12
 - Ubuntu 20.04 y 22.04
 
MongoDB Community 6.0.16
- CentOS Stream 8 y 9
 - Debian 10 y 11
 - Ubuntu 20.04 y 22.04
 
MongoDB Community 5.0.28
- CentOS Stream 8
 - Debian 10 y 11
 - Ubuntu 20.04
 
MongoDB Community 4.4.29
- CentOS Stream 8
 - Debian 10
 - Ubuntu 20.04
 
Requisitos
ansible-core>=2.14.0
Dependencias
community.general.yum_versionlock(para el host objetivo de CentOS y RHEL)ansible-galaxy collection install community.general
Variables del Rol
Variables Comunes
Las variables comunes se enumera a continuación, junto con sus valores predeterminados (ver defaults/main.yml):
| Variable | Predeterminado | Descripción | Requerido | 
|---|---|---|---|
| mongodb_pkg_install | true | 
Booleano, true para instalar MongoDB a través del gestor de paquetes | 
No | 
| mongodb_version | 4.4.29 | 
Lanzamientos estables de MongoDB Community v4.4, v5, v6, v7 | 
No | 
| mongodb_version_maj | Automático | Extrae el valor mayor de mongodb_version | 
Automático | 
| mongodb_version_maj_minor | Automático | Extrae los valores mayor y menor de mongodb_version | 
Automático | 
Variables de Instalación de Paquetes
defaults/main.yml:
| Variable | Predeterminado | Descripción | Requerido | 
|---|---|---|---|
| mongodb_gpg_key | URL | Clave GPG de MongoDB | No | 
| mongodb_pkg_hold | true | 
Booleano, true para mantener la versión del paquete | 
No | 
| mongodb_pkg_hold_list | Paquetes de MongoDB | Lista de paquetes de MongoDB instalados desde mongodb-org, v4.4 a v7 | 
No | 
Variables de Instalación de Binarios
defaults/main.yml:
| Variable | Predeterminado | Descripción | Requerido | 
|---|---|---|---|
| mongodb_tar_src | URL | URL o ruta relativa, archivo tar de binario de MongoDB Community (instalación tar) | No | 
| mongodb_tar_src_remote | true | 
Booleano, true si se descarga desde URL (instalación tar) | 
No | 
| mongodb_path_exec | /usr/bin | 
PATH, ruta del binario de MongoDB (instalación tar) | No | 
Otras Variables Específicas del SO
vars/debian.yml:
| Variable | Predeterminado | Descripción | Requerido | 
|---|---|---|---|
| mongodb_path_db | /var/lib/mongodb | 
PATH, carpeta de base de datos de MongoDB (instalación tar) | No | 
| mongodb_path_log | /var/log/mongodb | 
PATH, carpeta de logs de MongoDB (instalación tar) | No | 
| mongodb_dependencies | ["libcurl4","openssl","liblzma5"] | 
Paquetes requeridos para MongoDB (instalación tar) | No | 
| mongodb_pkg_hold_list | Paquetes de MongoDB | Lista de paquetes de MongoDB instalados desde mongodb-org (instalación de paquete) | 
No | 
vars/redhat.yml y vars/redhat_mongo_v{4-6}.yml:
| Variable | Predeterminado | Descripción | Requerido | 
|---|---|---|---|
| mongodb_path_db | /var/lib/mongo | 
PATH, carpeta de base de datos de MongoDB (instalación tar) | No | 
| mongodb_path_log | /var/log/mongodb | 
PATH, carpeta de logs de MongoDB (instalación tar) | No | 
| mongodb_dependencies | ["libcurl-minimal","openssl","xz-libs"] | 
Paquetes requeridos para MongoDB (instalación tar) | No | 
| mongodb_pkg_hold_list | Paquetes de MongoDB | Lista de paquetes de MongoDB instalados desde mongodb-org (instalación de paquete) | 
No | 
Ejemplos de Playbooks
- Instalación de paquete a través del gestor de paquetes de la distribución.
 
- hosts: servers
  become: true
  roles:
    - name: Instalar MongoDB
      role: trfore.mongodb_install
- hosts: servers
  become: true
  vars:
    mongodb_pkg_install: true
    mongodb_version: "6.0.16"
  roles:
    - name: Instalar MongoDB
      role: trfore.mongodb_install
- Instalación binaria desde un archivo tar.
 
- hosts: servers
  become: true
  vars:
    mongodb_pkg_install: false
    mongodb_version: "6.0.16"
  roles:
    - name: Instalar MongoDB
      role: trfore.mongodb_install
- Instalación binaria desde un archivo tar, si descargas manualmente el tarball a tu host de control.
 
- 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: Instalar MongoDB
      role: trfore.mongodb_install
Licencia
Este rol de Ansible es MIT.
MongoDB Community es un software bajo la Licencia Pública del Lado del Servidor de MongoDB, Inc. Para información adicional, consulta: https://www.mongodb.com/licensing/server-side-public-license
Información del Autor
Taylor Fore (https://github.com/trfore)
Roles y Playbooks Relacionados
| Github | Ansible Galaxy | 
|---|---|
| ansible-role-jsvc | trfore.jsvc | 
| ansible-role-mongodb-install | trfore.mongodb_install | 
| ansible-role-omada-install | trfore.omada_install | 
Referencias
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/
 
Install MongoDB Community Edition on RedHat/CentOS and Debian/Ubuntu.
ansible-galaxy install trfore.mongodb_install