bngsudheer.redmine

Redmine en CentOS 7

Instala Redmine 3.x y plugins de Redmine en CentOS. Este rol instala Redmine junto con Unicorn y Nginx.

En versiones futuras, apoyaremos otras distribuciones de Linux. Por ahora, solo CentOS 7 es compatible.

Nota sobre Debian y Ubuntu:

  • Debian Stretch proporciona el paquete Redmine y se puede instalar mediante apt.
  • Ubuntu multiverse proporciona el paquete Redmine y se puede instalar mediante apt.

Este rol instalará los paquetes RPM requeridos desde los repositorios oficiales de CentOS 7. Redmine se descargará desde redmine.org y las gemas de Ruby necesarias desde rubygems.org.

Para iniciar Redmine, usa el comando:

    systemctl start redmine

Para detener Redmine, usa el comando:

    systemctl stop redmine

Requisitos

Si usas MySQL o PostgreSQL, debes proporcionar el nombre del servidor de base de datos, el nombre de la base de datos, el nombre de usuario de la base de datos y la contraseña mediante las variables:

  • redmine_sql_username
  • redmine_sql_password
  • redmine_sql_database_name
  • redmine_sql_database_host

Asegúrate de que el puerto 80 esté abierto en tu firewall. Si sirves Redmine a través de HTTPS, asegúrate de que el puerto 443 también esté abierto.

Si configuras redmine_configure_selinux en yes, se requieren los paquetes libselinux-python y policycoreutils-python. Estos paquetes se pueden instalar mediante CentOS Base.

centos_base_selinux_packages: true

Si usas un contenedor con paquetes mínimos, deberás instalar algunos paquetes esenciales como Development Tools, zlib, etc. Los puedes instalar mediante CentOS Base configurando la variable:

centos_base_basic_packages: true

Si usas redmine_nginx_config_template: tls, asegúrate de que el archivo /etc/ssl/private/dhparam.pem esté presente para que el intercambio de claves Diffie-Hellman funcione.

Ruby >= 2.1 puede ser requerido en algún momento. Si en algún lugar de la cadena de dependencias de las gemas, Ruby 2.1 se establece como un paquete requerido, puedes usar el rol de Ruby para Ansible. En este momento, Redmine funciona en Ruby 2.0.

Variables del Rol

Estas variables están disponibles con los siguientes valores predeterminados:

Variable Valor Predeterminado Descripción ¿Necesario?
redmine_version 3.4.6 Versión de Redmine No
redmine_sql_driver mysql2 Controlador de la base de datos. La opción válida es mysql2 o postgresql
redmine_sql_username redmine Nombre de usuario de MySQL o PostgreSQL No
redmine_sql_password localhost Contraseña del servidor de base de datos No
redmine_sql_database_name redmine Nombre de la base de datos No
redmine_sql_database_host localhost Nombre del host de la base de datos No
redmine_unicorn_worker_processes 2 Número de procesos trabajadores de Unicorn No
redmine_domain_name redmine.example.com Nombre de dominio a usar en Nginx No
redmine_configure_nginx yes Si se debe configurar Nginx No
redmine_nginx_config_template plain Nombre de la plantilla de Nginx a usar. La opción debe ser plain, tls, custom
redmine_nginx_custom_config_path Ruta a tu archivo de plantilla de configuración personalizada para Nginx No
redmine_configure_unicorn yes Si se debe configurar Unicorn No
redmine_unicorn_port 5000 Número de puerto en el que sirve Unicorn No
redmine_configure_firewalld yes Si se debe configurar Firewalld No
redmine_nginx_bind_ip (Cadena vacía) Dirección IP a la que enlazar Nginx No
redmine_plugins [] Lista de plugins de Redmine a instalar. Cada elemento de la lista es un diccionario con claves name, base_name, url y create_base_directory. El base_name es el nombre del directorio que se usará en el directorio de plugins. name es para referencia humana. url es la ubicación desde donde se debe descargar el plugin. create_base_directory es un booleano que determina si se debe crear el directorio base en el directorio de plugins. No
redmine_configure_selinux no Si se debe configurar Redmine para soportar SELinux No
redmine_bundler_version 1.16.1 Versión de Bundler. Si usas una versión reciente, probablemente necesitarás Ruby >= 2.1 No
redmine_additional_configuration false Además de la configuración de la base de datos, configurar la configuración de Redmine No
redmine_enable_smtp_email false Habilitar correo electrónico SMTP No
redmine_smtp_settings_address localhost Nombre del host del servidor SMTP No
redmine_smtp_settings_port 25 Puerto SMTP No
redmine_smtp_settings_authentication plain Método de autenticación SMTP. Las opciones válidas son false, plain y login No
redmine_smtp_settings_domain redmine.example.com Nombre de dominio SMTP No
redmine_smtp_settings_user_name Nombre de usuario de autenticación SMTP No
redmine_smtp_settings_password Contraseña de autenticación SMTP No
redmine_smtp_settings_enable_starttls_auto false Usar TLS en SMTP No
redmine_default_data false Si llenar datos predeterminados No
redmine_language en Idioma de Redmine No
redmine_runtime_directory /srv/redmine/redmine El directorio de ejecución de Redmine No
redmine_ssl_certificate_path "/etc/letsencrypt/live/{{ redmine_domain_name }}/fullchain.pem" Ruta al certificado TLS No
redmine_ssl_certificate_key_path "/etc/letsencrypt/live/{{ redmine_domain_name }}/privkey.pem" Ruta a la clave privada TLS No
redmine_nginx_allowlist false Si deseas tener una lista de permitidos estricta en Nginx No
redmine_nginx_allowlist_path La ruta al archivo que contiene las reglas de permiso de Nginx No

Dependencias

Si necesitas una versión reciente de Ruby, usa:

Ejemplo de playbook

    - hosts: servers
      vars:
       - centos_base_enable_epel: true
       - centos_base_basic_packages: true
       - redmine_sql_username: redmine
       - redmine_sql_password: password
       - redmine_sql_database_name: redmine
       - remmine_sql_database_host: localhost
       - redmine_version: 3.4.2
       - redmine_nginx_bind_ip: 192.168.100.130
       - redmine_configure_selinux: yes
      remote_user: centos
      roles:
         - bngsudheer.centos_base
         - bngsudheer.redmine

Ejemplo de playbook para instalar Redmine con plugins

     - hosts: servers
       vars:
        - centos_base_enable_epel: true
        - centos_base_basic_packages: true
        - centos_base_selinux_packages: true
        - redmine_sql_username: redmine
        - redmine_sql_password: password
        - redmine_sql_database_name: redmine
        - remmine_sql_database_host: localhost
        - redmine_version: 3.4.6
        - redmine_nginx_bind_ip: 192.168.100.130
        - redmine_configure_selinux: yes
        - redmine_plugins:
          - name: scrum
            base_name: scrum
            url: https://redmine.ociotec.com/attachments/download/481/scrum-v0.18.1.tar.gz
            create_base_directory: false
       remote_user: centos
       roles:
          - bngsudheer.centos_base
          - bngsudheer.redmine

Restringiendo el Acceso a Redmine Según Direcciones IP

Si usas la plantilla de configuración Nginx tls, puedes mantener una lista de reglas de permitidos en un archivo de texto. Por ejemplo, /etc/nginx/my-allowlist podría contener:

allow 1.2.3.4;
allow 1.2.3.5;

Hazle saber al rol sobre tu lista de permitidos:

redmine_nginx_config_template: tls
redmine_nginx_allowlist: true
redmine_nginx_allowlist_path: /etc/nginx/my-allowlist

Licencia

BSD

Desarrollo

Necesitas algunos paquetes de Python para ejecutar pruebas de molécula:

python-vagrant
docker
molecule

Para ejecutar pruebas de molécula localmente, puedes querer configurar la variable ANSIBLE_ROLES_PATH.

export ANSIBLE_ROLES_PATH=/ruta/a/ansible-role-redmine/molecula/default/roles

Las pruebas de Vagrant no están incluidas en TravisCI. Ejecútalas localmente:

molecule test --scenario-name=selinux_vagrant -d vagrant

Información del Autor

Sudheer Satyanarayana

Acerca del proyecto

Install Redmine on CentOS

Instalar
ansible-galaxy install bngsudheer.redmine
Licencia
bsd-3-clause
Descargas
365
Propietario
Software developer and DevOps consultant