Si algunos de nuestros foros, manuales, ALDOS, paquetería o proyectos te han resultado de ayuda, apreciaremos mucho nos apoyes con un donativo.

Presentando el almacén YUM AL-Server-Plus.

Es un hecho que CentOS 6 y Red Hat™ Enterprise Linux 6 se ha convertido en una plataforma envejecida y casi obsoleta gracias a los requerimientos de las aplicaciones modernas, como Moodle 2.7/2.8/2.9 o ownCloud 8.0. Es por tal motivo que hemos creado un nuevo almacén YUM sólo para CentOS 6 y Red Hat™ Enterprise Linux 6.

¿Qué es lo que incluye?

  • Bacula 5.2.
  • Cyrus IMAP 2.4.
  • MariaDB 5.5.
  • Moodle 2.8 (próximamente 2.9).
  • ownCloud 7.0 (próximamente 8.0)
  • PHP 5.4.
  • Postfix 2.10.
  • PostgreSQL 9.1.
  • Zabbix 2.4.
  • Zarafa 7.1.

¿Por qué sólo PHP 5.4?

Porque es la versión actual para producción utilizada por CentOS 7 y Red Hat™ Enterprise Linux 7. Si la aplicación funciona perfectamente o fue diseñada para funcionar en esos sistemas operativos, lo hará también en CentOS 6 o Red Hat™ Enterprise Linux 6 con AL-Server-Plus.

¿Por qué sólo PostgresSQL 9.1?

CentOS 6 y Red Hat™ Enterprise Linux 6 utilizan libselinux 2.0.94. Postgres 9.2 requiere libselinux >= 2.0.99 y PostegreSQL 9.3 en adelante requiere libselinux >= 2.1 para poder compilar con soporte para SELinux. Compilar sin soporte para SELinux sería distribuir invariablemente paquetes con menos seguridad que la que incluyen actualmente los paquetes oficiales de PostgreSQL 8.4.

¿Qué ventajas tiene utilizar este almacén YUM?

  • Permite instalar aplicaciones de vanguardia que serían imposibles con las versiones originales de PHP, MySQL y PostgreSQL en CentOS 6 o Red Hat™ Enterprise Linux 6.
  • Evita tener que migrar a CentOS 7 o Red Hat™ Enterprise Linux 7.
  • Permite postergar algunos años más la migración hacia CentOS 7 o Red Hat™ Enterprise Linux 7.
  • Paquetes RPM probados y validados por AlcanceLibre.org.

¿Es transparente la actualización de paquetes?

Lo es para todos los paquetes de las aplicaciones involucradas excepto para MariaDB y PostgreSQL.

Procedimiento de actualización de MySQL 5.1 a MariaDB 5.5.

MariaDB 5.5 reemplazará a MySQL 5.1. Se requiere habilitar primero una política extra para SELinux, cuyo procedimiento describo con mayor detalle en el este enlace.

  1. Instale el paquete policycoreutils-python:

    yum -y install policycoreutils-python

  2. Genere un nuevo directorio denominado /usr/share/selinux/packages/mariadb:

    mkdir -p /usr/share/selinux/packages/mariadb

  3. Cambie al directorio /usr/share/selinux/packages/mariadb:

    cd /usr/share/selinux/packages/mariadb

  4. Descargue el archivo http://www.alcancelibre.org/linux/secrets/mariadb.te:

    wget http://www.alcancelibre.org/linux/secrets/mariadb.te

  5. Genere el archivo de módulo para SELinux (mariadb.mod) ejecutando checkmodule del siguiente modo:

    checkmodule -M -m -o mariadb.mod mariadb.te

  6. Empaquete el archivo mariadb.mod como el archivo mariadb.pp:

    semodule_package -o mariadb.pp -m mariadb.mod

  7. Vincule el archivo mariadb.pp obtenido con las políticas actuales de SELinux y cargue éstas en el núcleo en ejecución:

    semodule -i /usr/share/selinux/packages/mariadb/mariadb.pp

  8. Respalde todas las bases de datos:

    mysqldump --opt -uroot -pcontraseña --all-databases > ~/repaldo-todo-mysql.sql

  9. Respalde el archivo de configuración /etc/my.cnf:

    cp -a /etc/my.cnf /etc/my.cnf.backup

  10. Instale el almacén YUM de AL-Server-Plus:

    wget -P /etc/yum.repos.d http://www.alcancelibre.org/al/server/AL-Server-Plus.repo

  11. Actualice paquetes:

    yum -y update

  12. Compare los contenidos de los archivos /etc/my.cnf.backup y /etc/my.cnf:

    diff /etc/my.cnf.backup /etc/my.cnf

  13. Edite el archivo /etc/my.cnf:

    vi /etc/my.cnf

  14. Haga los ajustes que considere necesarios.

  15. Salga del editor de texto.

  16. Reinicie el servicio mysqld:

    service mysqld restart

  17. Actualice ejecutando lo siguiente:

    mysql_upgrade -uroot -pcontraseña

  18. Active el servicio mysqld para que esté inicie automáticamente durante el siguiente reinicio del sistema:

    chkconfig --add mysqld && chkconfig mysqld on

  19. ¡Felicidades! Usted ha migrado exitosamente a MariaDB 5.5.

En el caso de algunas bases de datos probablemente sea necesario volver a asignar algunas contraseñas de los usuarios de éstas. En general éso todo lo que probablemente haya que realizar en caso de presentarse problemas.

Procedimiento de actualización de PostgreSQL 8.4 a PostgreSQL 9.1.

PostgreSQL se actualizará desde la versión 8.4 que incluye CentOS 7 y Red Hat™ Enterprise Linux 7 hacia la versión 9.1. Para ser sinceros el procedimiento correspondiente es muy complejo, pero familiar para usuarios promedio de PostgreSQL. Es Indispensable realizar todo lo siguiente al pie de la letra:

  1. Cambie a root:

    su -l

  2. Respalde todas las bases de datos:

    pg_dumpall -Upostgres -W > ~/respaldo_todo.sql

  3. Detenga Apache y otras aplicaciones o servicios que utilicen PostgreSQL.

  4. Detenga el servicio postgresql:

    service postgresql stop

  5. Respalde el direcotrio de datos actual:

    tar Jcf ~/respaldo-datos-pgsql-8.4.tar.xz /var/lib/pgsql/data

  6. Mueva el directorio de datos de PostgreSQL 8.4 a otra ruta:

    mv /var/lib/pgsql/data /var/lib/pgsql/data-8.4

  7. Instale el almacén YUM de AL-Server-Plus:

    wget -P /etc/yum.repos.d http://www.alcancelibre.org/al/server/AL-Server-Plus.repo

  8. Actualice paquetes:

    yum -y update postgresql-*

  9. Instale el paquete postgresql-upgrade:

    yum -y install postgresql-upgrade

  10. Se requiere un directorio de datos nuevo y limpio, sin bases de datos, roles ni usuarios. Genere éste ejecutando lo siguiente:

    service postgresql initdb

  11. Cambie al usuario postgres:

    su -l postgres

  12. Configure de nuevo los archivos /var/lib/pgsql/data/pg_hba.conf y /var/lib/pgsql/data/postgresql.conf de acuerdo a lo que tengan /var/lib/pgsql/data-8.4/pg_hba.conf y /var/lib/pgsql/data-8.4/postgresql.conf. Utilice diff para determinar qué cambios hay que realizar. Ejemplo:

    diff /var/lib/pgsql/data-8.4/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf
    diff /var/lib/pgsql/data-8.4/postgresql.conf /var/lib/pgsql/data/postgresql.conf


    Por lo general sólo es necesario modificar el nuevo archivo /var/lib/pgsql/data/pg_hba.conf para definir password como el método de autenticación.

  13. Edite los archivos /var/lib/pgsql/data-8.4/pg_hba.conf y /var/lib/pgsql/data/pg_hba.conf:

    vi /var/lib/pgsql/data-8.4/pg_hba.conf
    vi /var/lib/pgsql/data/pg_hba.conf


  14. Mientras se hace la actualización, cambie el método para local a trust en ambos archivos:

    local     all      all        trust

  15. Salga del editor de texto.

  16. Ejecute pg_upgrade del siguiente modo:

    pg_upgrade -d /var/lib/pgsql/data-8.4 -D /var/lib/pgsql/data -b /usr/lib64/pgsql/postgresql-8.4/bin -B /usr/bin

  17. La salida debe ser similar a la siguiente:

    Performing Consistency Checks
    -----------------------------
    Checking current, bin, and data directories                 ok
    Checking cluster versions                                   ok
    Checking database user is a superuser                       ok
    Checking for prepared transactions                          ok
    Checking for reg* system oid user data types                ok
    Checking for contrib/isn with bigint-passing mismatch       ok
    Creating catalog dump                                       ok
    Checking for presence of required libraries                 ok
    Checking database user is a superuser                       ok
    Checking for prepared transactions                          ok

    | If pg_upgrade fails after this point, you must
    | re-initdb the new cluster before continuing.
    | You will also need to remove the ".old" suffix
    | from /var/lib/pgsql/data-9.0/global/pg_control.old.

    Performing Upgrade
    ------------------
    Adding ".old" suffix to old global/pg_control               ok
    Analyzing all rows in the new cluster                       ok
    Freezing all rows on the new cluster                        ok
    Deleting new commit clogs                                   ok
    Copying old commit clogs to new server                      ok
    Setting next transaction id for new cluster                 ok
    Resetting WAL archives                                      ok
    Setting frozenxid counters in new cluster                   ok
    Creating databases in the new cluster                       ok
    Adding support functions to new cluster                     ok
    Restoring database schema to new cluster                    ok
    Removing support functions from new cluster                 ok
    Restoring user relation files
                                                                ok
    Setting next oid for new cluster                            ok
    Creating script to delete old cluster                       ok

    Upgrade complete
    ----------------
    | Optimizer statistics are not transferred by pg_upgrade
    | so consider running:
    | vacuumdb --all --analyze-only
    | on the newly-upgraded cluster.

    | Running this script will delete the old cluster's data files:
    |    /var/lib/pgsql/delete_old_cluster.sh


  18. Si lo anterior tuvo éxito, edite el archivo /var/lib/pgsql/data/pg_hba.conf:

    vi /var/lib/pgsql/data/pg_hba.conf

  19. Cambie de vuelta el método para local de trust a password:

    local     all      all        password

  20. Regrese como root:

    exit

  21. Inicie de nuevo el servicio:

    service postgresql start

  22. Ingrese al intérprete de PosdgreSQL (psql) para establecer conexión con el servidor de bases de datos y para validar las credenciales de acceso del usuario postgres. Ejecute lo siguiente:

    psql -Upostgres -W

  23. Verifique que todas las bases de datos, roles y usuarios están presentes.

  24. Salga del intérprete de PostgreSQL.

  25. Elimine el directorio de datos de PostgreSQL 8.4:

    sh /var/lib/pgsql/delete_old_cluster.sh

  26. Cambie de nuevo al usuario postgres:

    su -l postgres

  27. El procedimiento con pg_upgrade omite actualizar las estadísticas del optimizador. Ejecute lo siguiente para realizar dicho procedimiento:

    vacuumdb --all --analyze-only

  28. Cierre la sesión del usuario postgres al terminar el procedimiento:

    exit

  29. Inicie de nuevo Apache y otras aplicaciones o servicios que utilizan PostgreSQL.

  30. ¡Felicidades! Usted ha actualizado exitosamente a PostgreSQL 9.1.

¿Cómo instalo el almacén YUM de AL-Server-Plus?

Asumiendo que utiliza CentOS 6 o Red Hat™ Enterprise Linux 6, siga el siguiente procedimiento:

  1. Cambie a root:

    su -l

  2. Instale o actualice la configuración de AL-Server:

    wget -N -P /etc/yum.repos.d http://www.alcancelibre.org/al/server/AL-Server.repo

  3. Instale la configuración de AL-Server-Plus.

    wget -P /etc/yum.repos.d http://www.alcancelibre.org/al/server/AL-Server-Plus.repo

  4. Actualice el sistema.

    yum -y update

  5. Valide y verifique sus aplicaciones actualizadas.


Atención: Salvo que se indique lo contrario, la licencia del texto de este documento es Creative Commons Reconocimiento 2.5, mediante la cual usted tiene permitido copiar, modificar, comunicar y distribuir el contenido de este texto, de manera total o parcial, y publicarlo o difundirlo en cualquier otro sitio de Internet o medio de comunicaciòn, siempre y cuando incluya o cite (1)el nombre de este sitio de Internet, (2)enlace permanente de este documento, (3)nombre del autor y (4)la misma licencia de distribución.

Opciones: Imprimir | Recomendar | Enlace permanente

Twitter Facebook Google Bookmarks Bitacoras.com Wikio Menéame Technorati Bloglines Digg Yahoo Buzz

Seguimientos (Trackback)

URL de seguimiento para esta entrada:
http://www.alcancelibre.org/trackback.php/presentando-al-server-plus
Agregar comentario

Los siguientes comentarios son de la persona que los haya enviado. Este sitio se deslinda de cualquier responsabilidad respecto de las opiniones expresadas por los participantes en nuestros foros y secciones de comentarios, y el hecho de publicar las mismas no significa que se esté de acuerdo con éstas.