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 | Sí |
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 | Sí |
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
- Blog: https://www.techchorus.net
- Twitter: https://www.twitter.com/bngsudheer
- Trabajo: https://www.gavika.com
ansible-galaxy install bngsudheer.redmine