GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar redmine en RHEL 8 / CentOS 8 Linux

Redmine es una popular aplicación web de gestión de proyectos de código abierto. Es compatible con las principales bases de datos como MySQL y PostgreSQL como backend, y también puede cambiar el frontend a Apache desde el servidor web WEBrick (recomendado para uso en producción) que se incluye con la instalación. En este artículo, instalaremos la última versión de Redmine en RHEL 8/CentOS 8, usando PostgreSQL como backend, pero dejaremos el WEBrick predeterminado como frontend, que servirá perfectamente para nuestras pruebas.

No espere que este proceso sea fácil ni esté libre de errores. Incluso siguiendo estos pasos al pie de la letra, seguramente ocurrirán algunos errores, la configuración parece manejar sudo los pasos son un tanto inconsistentes, pero también se incluyen las soluciones que guiarán estos errores.

En este tutorial aprenderás:

  • Cómo instalar los paquetes de sistema operativo requeridos
  • Cómo configurar la base de datos
  • Cómo instalar la aplicación Redmine
  • Cómo iniciar e iniciar sesión en la aplicación

Página de configuración de Redmine en RHEL 8.

Requisitos de software y convenciones utilizadas

Cómo instalar redmine en Redhat 8 instrucciones paso a paso

Redmine es una aplicación de Ruby. Para la instalación tendremos que usar rubygems y bundler , y compila muchas dependencias, por lo que llevará un tiempo. Usaremos los repositorios de Red Hat disponibles después de habilitar la administración de suscripciones para resolver las dependencias del sistema operativo. Puede consultar la guía de instalación de PostgreSQL en RHEL8 para la configuración detallada de la base de datos en general, en este artículo cubriremos solo los pasos necesarios para Redmine. Si la configuración de la base de datos es nueva, no olvide completar el initdb paso en la guía mencionada, o el inicio de la base de datos fallará.

  1. Crearemos un usuario que será el propietario de la aplicación y le daremos sudo temporal acceso. Podemos revocar este acceso una vez que se complete la instalación.
    # useradd redmine

    Tenemos que establecer una contraseña para el nuevo usuario, que usaremos cuando usemos sudo :

    # passwd redmine

    En distribuciones basadas en RHEL, hay una wheel grupo de usuarios, que puede usar sudo para ejecutar comandos privilegiados. Para comprobar que este grupo está configurado como sudoer , podemos grep el /etc/sudoers archivo:

    # grep "%wheel" /etc/sudoers
    %wheel  ALL=(ALL)       ALL
    # %wheel        ALL=(ALL)       NOPASSWD: ALL

    Se comenta la segunda línea con la opción NOPASSWD, que se adaptará a nuestras necesidades. Con la configuración anterior en su lugar, todo lo que tenemos que hacer es agregar el redmine usuario a la wheel grupo:

    # usermod -a -G wheel redmine
  2. Para instalar los paquetes que proporcionará el sistema operativo, usaremos dnf :
    # dnf install kernel-devel kernel-headers gcc postgresql-devel ruby ruby-devel rubygems
  3. Para obtener la aplicación, visite el sitio de descarga oficial (que se ejecuta en Redmine). Desde aquí podemos descargar el tarball comprimido con wget al sistema de destino:
    # wget https://www.redmine.org/releases/redmine-4.0.3.tar.gz -O /opt/redmine-4.0.3.tar.gz

    Como sugiere el comando anterior, instalaremos la aplicación en /opt directorio. Cambiaremos a este directorio y extraeremos el archivo:

    # cd /opt
    # tar -xzf redmine-4.0.3.tar.gz

    Opcionalmente también podemos crear un symlink para un acceso más fácil, de esta manera no necesitamos recordar la versión exacta:

    # ln -s /opt/redmine-4.0.3 /opt/redmine

    Ahora podemos configurar el redmine usuario como propietario de la jerarquía de directorios extraídos, recursivamente:

    # chown -R redmine:redmine /opt/redmine*
  4. Para configurar la base de datos para la conexión de la aplicación, debemos iniciarla si aún no se está ejecutando:
    # systemctl start postgresql
  5. Tendremos que crear una base de datos vacía donde la aplicación almacenará sus datos. Para hacerlo, cambiaremos a postgres usuario del sistema operativo creado por defecto en la instalación de la base de datos:
    # su - postgres

    Iniciaremos sesión en psql como superusuario de la base de datos:

    $ psql
    psql (10.5)
    Type "help" for help.
    
    postgres=#

    Crearemos un rol que será utilizado por la aplicación (apunta el nombre de usuario y la contraseña):

    postgres=# CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'R3DM1N3' NOINHERIT VALID UNTIL 'infinity';

    También creamos una nueva base de datos con el propietario creado anteriormente:

    postgres=# CREATE DATABASE rmdb WITH ENCODING='UTF8' OWNER=redmine;

    Necesitaremos el nombre de usuario, la contraseña, la codificación y el nombre de la base de datos en un paso posterior.

  6. Ahora que el usuario está configurado, debemos permitirle iniciar sesión en el servidor de la base de datos. El usuario de redmine se conectará localmente, por lo que agregamos la siguiente línea al pg_hba.conf archivo, ubicado por defecto en /var/lib/pgsql/data por defecto en distribuciones basadas en RHEL:
    host    rmdb        redmine             127.0.0.1/32          md5

    Verifique su archivo de configuración para lo siguiente:

    # IPv4 local connections:
    host    all             all             127.0.0.1/32            ident

    Si tiene esa línea, coméntela, entrará en conflicto con el inicio de sesión que planeamos configurar.

  7. Con eso en su lugar, necesitamos reiniciar la base de datos para que la configuración surta efecto:
    # systemctl restart postgresql
  8. Ahora tenemos toda la información necesaria para decirle a la aplicación dónde y cómo encontrará la base de datos. Hay un ejemplo del archivo de configuración de la conexión de la base de datos con todas las bases de datos compatibles en config subdirectorio del archivo extraído. Podemos hacer una copia de este archivo (usando el redmine usuario):
    $ cp config/database.yml.example config/database.yml

    Podemos eliminar o comentar todas las configuraciones de ejemplo además de las relacionadas con PostgreSQL, o simplemente crear un archivo vacío con la configuración necesaria (de esa manera, quedará menos basura en el archivo). Al final, el /opt/redmine/config/database.yml debe contener lo siguiente:

    # PostgreSQL configuration
    production:
      adapter: postgresql
      database: rmdb
      host: 127.0.0.1
      username: redmine
      password: "R3DM1N3"

    Tenga en cuenta que usamos la información de conexión de la base de datos que configuramos en los últimos dos pasos.

  9. Para reducir la cantidad de posibles problemas, probaremos que podemos iniciar sesión en rmdb base de datos con las credenciales proporcionadas en el archivo de configuración. Es más fácil depurar problemas de conexión con el conjunto de herramientas de PostgreSQL que con cualquier otro:
    $ psql -d rmdb -U redmine -W
    Password for user redmine: 
    psql (10.5)
    Type "help" for help.
    
    rmdb=>
  10. Aquí es donde termina la parte fácil. Ahora instalaremos varios paquetes de Ruby de los que depende Redmine. Algunos de ellos necesitan root acceso, algunos se instalarán en el nombre de redmine usuario, y más tarde algunos probablemente necesitarán una reparación. En serio. En primer lugar, necesitaremos bundler :
    # gem install bundler
    Fetching: bundler-2.0.1.gem (100%)
    Successfully installed bundler-2.0.1
    1 gem installed

    Usaremos bundler con el redmine usuario, pero también necesitaremos root para instalar o reparar Ruby gems , por lo que sugiero abrir otra terminal, cambiar a redmine usuario y vaya a /opt/redmine directorio, al tiempo que mantiene abierta la consola raíz.

  11. Como redmine usuario, iniciamos la instalación en el /opt/redmine directorio:
    $ bundle install --without development test rmagick

    Se instalarán muchas dependencias y, para algunas, el instalador solicita el sudo contraseña – que es la contraseña de redmine usuario. Parece que esta funcionalidad de sudo de alguna manera está un poco rota y puede manejar algunas de las instalaciones de paquetes con privilegios de root, y no puede llevarse bien con otros. Los que fallan se pueden instalar en la consola raíz y el bundle anterior el comando se puede ejecutar en la consola del usuario de redmine nuevamente. Lo que se necesitaba para instalar en mi caso con root son los siguientes:

    # gem install nokogiri -v '1.10.2' --source 'https://rubygems.org/'
    # gem install pg -v '1.1.4' --source 'https://rubygems.org/'

    También hay algunos paquetes que pueden romperse durante la instalación. Estos también se pueden reparar en la consola raíz. Al igual que con los pasos de instalación del paquete fallidos anteriores, la salida del bundler El comando le dirá qué paquete tiene problemas y cómo resolverlo. En mi caso, los siguientes paquetes necesitaban reparación:

    # gem pristine nio4r --version 2.3.1
    # gem pristine redcarpet --version 3.4.0
    # gem pristine websocket-driver --version 0.7.0

    Tenga en cuenta que si está instalando otra versión de Redmine, es probable que los números de versión de los paquetes difieran. Después de reparar todos los paquetes rotos y faltantes, el bundle el comando debe completarse sin errores, con el siguiente final de la salida:

    [...]
    Installing roadie-rails 1.3.0
    Fetching rouge 3.3.0
    Installing rouge 3.3.0
    Bundle complete! 26 Gemfile dependencies, 57 gems now installed.
    Gems in the groups development, test and rmagick were not installed.
    Use `bundle info [gemname]` to see where a bundled gem is installed.
  12. Con la parte difícil terminada, necesitamos generar un token que se usará para codificar las cookies de sesión:
    $ bundle exec rake generate_secret_token
  13. A continuación, generamos los objetos de la base de datos que necesita la aplicación:
    $ RAILS_ENV=production bundle exec rake db:migrate

    Además de crear los objetos de base de datos necesarios, este paso generará una gran cantidad de resultados al registrar todos los pasos en la consola. Veremos que aparecen muchas entradas similares a las siguientes:

    [...]
    
    == 20180913072918 AddVerifyPeerToAuthSources: migrating =======================
    -- change_table(:auth_sources)
       -> 0.0082s
    == 20180913072918 AddVerifyPeerToAuthSources: migrated (0.0083s) ==============
    
    == 20180923082945 ChangeSqliteBooleansTo0And1: migrating ======================
    == 20180923082945 ChangeSqliteBooleansTo0And1: migrated (0.0000s) =============

    Este proceso debería completarse en unos segundos.

  14. Podemos verificar la base de datos poblada con psql :
    rmdb=> \dt
                           List of relations
     Schema |                Name                 | Type  |  Owner  
    --------+-------------------------------------+-------+---------
     public | ar_internal_metadata                | table | redmine
     public | attachments                         | table | redmine
     public | auth_sources                        | table | redmine
     public | boards                              | table | redmine
     public | changes                             | table | redmine
    [...]
  15. El último paso de la instalación es cargar los datos predeterminados en la base de datos. Al proporcionar el REDMINE_LANG parámetro podemos salvarnos de cualquier pregunta durante la carga inicial.
    $ RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data
    Default configuration data loaded.
  16. La instalación está completa. Podemos iniciar la aplicación:
    $ bundle exec rails server webrick -e production
    => Booting WEBrick
    => Rails 5.2.2.1 application starting in production on http://0.0.0.0:3000
    => Run `rails server -h` for more startup options
    [2019-04-14 18:39:12] INFO  WEBrick 1.4.2
    [2019-04-14 18:39:12] INFO  ruby 2.5.1 (2018-03-29) [x86_64-linux]
    [2019-04-14 18:39:12] INFO  WEBrick::HTTPServer#start: pid=30062 port=3000
  17. La aplicación ahora se está ejecutando y se puede acceder a ella con un navegador. De la salida anterior podemos adivinar que es accesible en el puerto 3000 , por lo que si tenemos un firewall ejecutándose en la máquina de destino, debemos abrir este puerto para acceder al servicio de forma remota:
    # firewall-cmd --zone=public --add-port=3000/tcp --permanent
    # firewall-cmd --reload
  18. Al abrir un navegador y apuntarlo a la dirección de la máquina y al puerto 3000 (http://192.168.1.14:3000 en la siguiente captura de pantalla), podemos acceder a la interfaz basada en web de nuestra nueva instalación de Redmine.

    Página de inicio de sesión de Redmine.

    Las credenciales predeterminadas son admin para el nombre de usuario, y también para la contraseña. Al iniciar sesión por primera vez, la aplicación de buen comportamiento solicitará un cambio de contraseña para esta cuenta privilegiada. A partir de ahí, el servicio es nuestro para completar, configurar y disfrutar.

  19. Con la instalación completa, podemos eliminar el redmine usuario de la wheel grupo, eliminando el agujero de seguridad necesario durante el proceso:
    # gpasswd -d redmine wheel
    Removing user redmine from group wheel
    # id redmine
    uid=1008(redmine) gid=1008(redmine) groups=1008(redmine)

Cent OS
  1. Cómo instalar Hadoop en RHEL 8 / CentOS 8 Linux

  2. Cómo instalar Perl en RHEL 8 / CentOS 8 Linux

  3. Cómo instalar un servidor DNS en RHEL 8 / CentOS 8 Linux

  4. Cómo instalar Redmine en CentOS 7

  5. Cómo instalar Redmine en CentOS 8

Cómo iniciar/instalar GUI en RHEL 8/CentOS 8 Linux

Cómo instalar wget en RHEL 8 / CentOS 8 Linux

Cómo instalar el archivo bin en RHEL 8 / CentOS 8 Linux

Cómo instalar WordPress en RHEL 8 / CentOS 8 Linux

Cómo instalar GIMP en CentOS 8 / RHEL 8 Linux

Cómo instalar Redmine en CentOS 8

    Requisitos de software y convenciones de la línea de comandos de Linux
    Categoría Requisitos, convenciones o versión de software utilizada
    Sistema RHEL 8 / CentOS 8
    Software Redmine 4.0.3, PostgreSQL 10.5
    Otro Acceso privilegiado a su sistema Linux como root o a través de sudo comando.
    Convenciones # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando
    $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios