Mostrando entradas con la etiqueta RedHat. Mostrar todas las entradas
Mostrando entradas con la etiqueta RedHat. Mostrar todas las entradas

jueves, 30 de abril de 2020

[EN] DevOps roadmap

Hello!

Today I come with a roadmap that someone sent me a few days ago. It is a roadmap of what (according to how it is understood by who has drew it) a DevOps should know.



You can more or less agree with what is in it, but it has helped me to get to know some new technologies that could be very interesting to me.

What about you? What do you think? One thing amazing is that you can suggest your changes, but I am not sure they would take them into account. Anyway, I have at least two suggestions, that are
  • HOW COME Debian is not in purple???
  • I know there is no Load Balancing section but they should include it somehow


Source: roadmap.sh
You have a few more interesting roadmaps in that page

sábado, 4 de abril de 2020

[EN] Regular Expressions

Hello everyone!

How do you carry the lockdown? At the moment nothing bad, taking advantage of the time to do things that before didn't have enough time to do.

One of these things is to study; I have finished with a very interesting 'sed' and 'awk' course, and I wanted to share some notes on regular expressions, to see what you think.

‘\b[Cc]olou?r\b’
\b :: boundaries, limits the word
? :: optional inclusion of this character
\. :: Exactly one single character
this example matches Color, color, Colour, colour

Anchors
'^' :: start of a string
'$' :: end of a string

Ranges
[] :: denote the ranges
'[A-Za-z]' :: any letter
'[0-9]' :: any number; it could be represented as \d
'[a-z_]' :: lower case character and underscore character
'[349]' :: matches number 3, number 4 and number 9; it would match 34, 49 or 349 because include those numbers
'[^4]' :: matches anything BUT 4
'[Ss]erver' :: matches Server and server

Boundaries and strings
\s :: any white space character (space, line return, tap) > \S :: NOT looking for a white space character
\b :: word boundary (may include hyphen as word separator) >  \B :: NOT looking for a word boundary
'\ssytem' :: Matches "file system"
'\bsystem' :: Matches "file system" and "file-system"
'\bpop[0-9]\b' :: Matches pop2 and pop3 but not pop3s (from /etc/services file)
'\bpop[0-9]\B' :: Not matches pop2 and pop3 but matches pop3s (from /etc/services file)

Quantifiers
'u*' :: Matches u zero or more times
'u?' :: Matches u zero or once only (optional)
'u+' :: Matches u once or more times
'u{3}' :: Matches uuu (u 3 times)


'^\s*#' :: Matches all kind of commented lines: with no space, with spaces and with tabs
'start\s*end' :: Matches all independently the spaces between 'start' and 'end'
'start\s?end' :: Matches 'start end' and 'startend'
'start\s{2}end' :: Matches the option with 2 spaces between 'start and 'end'
'[a-z]{2}[0-9]{1,2}' :: Matches a postcode [ab12 7af]; {1,2} means that it could happen once or twice

grep -E :: takes extended regular expressions :: egrep. RE are extended when they use {}, but not when they use []

 



sábado, 21 de noviembre de 2015

Píldora: MySQL Replicación Maestro - esclavo



Hola! hoy te traigo mi receta para montar una replicación M/s MySQL
Espero que te sea tan útil como me resulta a mí!



Ten en cuenta que está basada en distribuciones RHEL, pero se puede adaptar a cualquier otra
[ (M): ejecutar en Master ]
[ (s): ejecutar en slave]

# Actualizar sistema en (M) y (s)


sudo yum update

# Añadir a los repositorios los oficiales de Percona en (M) y (s)


sudo yum install http://www.percona.com/downloads/percona-release/redhat/0.1-
3/percona-release-0.1-3.noarch.rpm

# Instalamos, levantamos y securizamos MySQL en (M) y (s)

sudo yum install Percona-Server-server-55
sudo service mysql start
sudo mysql_secure_installation

(tendremos que introducir los datos que nos solicite)

# Abro puertos de comunicación de MySQL en (M) y (s)

sudo firewall-cmd --zone= --add-service=mysql
iptables -L -n # y compruebo que ya aparece el servicio mysql

# Configurar en (M)

sudo vi /etc/my.cnf

# y añado en [mysql]
------
log-bin=mysql-bin
server-id=1
------
guardo, salgo y ejecuto

sudo service mysql restart

y en (s) hago casi lo mismo

sudo vi /etc/my.cnf

# y añado en [mysql]
------
server-id=2
------
sudo service mysql restart

# Configurar usuarios de replicación (M)

mysql -p -u root
mysql > CREATE USER 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass123';
mysql > GRANT REPLICATION SLAVE ON *.* TO 'repl';
mysql > FLUSH TABLES WITH READ LOCK;
mysql > SHOW MASTER STATUS;

En el último paso, guardamos los datos File y Position para seguir en la provisión
Seguimos en (s)

mysql -p -u rootmysql >  CHANGE MASTER TO MASTER_HOST="Master_Host",
MASTER_USER="repl", MASTER_PASSWORD="slavepass123";,
MASTER_LOG_FILE=";mysql-bin.000001", MASTER_LOG_POS=551;

Como prueba creo una BD y compruebo que se crea automáticamente en el otro servidor
Después vuelco una BD pequeña y compruebo que se crea igualmente en el otro servidor

lunes, 28 de septiembre de 2015

Subvolúmenes (bricks) no montan en volúmenes gluster

Para ver el estado de un volumen gluster, hago:

[root@gest ~]# gluster volume status drupriv
Status of volume: drupriv
Gluster process Port Online Pid
------------------------------------------------------------------------------
Brick 172.17.229.77:/mnt/gluster/data 49152 Y 5270
Brick 172.17.230.164:/mnt/gluster/data 49152 Y 28083
Brick 172.17.229.250:/mnt/gluster/data 49152 Y 16775
NFS Server on localhost 2049 Y 5282
Self-heal Daemon on localhost N/A Y 5295
NFS Server on 172.17.229.124 2049 Y 2287
Self-heal Daemon on 172.17.229.124 N/A Y 2292
NFS Server on 172.17.229.113 2049 Y 2327
Self-heal Daemon on 172.17.229.113 N/A Y 2332
NFS Server on 172.17.229.250 2049 Y 16788
Self-heal Daemon on 172.17.229.250 N/A Y 16796
NFS Server on 172.17.230.164 2049 Y 28096
Self-heal Daemon on 172.17.230.164 N/A Y 28104
Task Status of Volume drupriv
------------------------------------------------------------------------------
There are no active volume tasks

y lo que obtengo es:

- por un lado el estado de los bricks que forman el volumen:


Brick 172.17.229.77:/mnt/gluster/data 49152 Y 5270
Brick 172.17.230.164:/mnt/gluster/data 49152 Y 28083
Brick 172.17.229.250:/mnt/gluster/data 49152 Y 16775

- por otro lado, los servidores que están montando ese volumen (por NFS en este caso)


NFS Server on localhost 2049 Y 5282
Self-heal Daemon on localhost N/A Y 5295
NFS Server on 172.17.229.124 2049 Y 2287
Self-heal Daemon on 172.17.229.124 N/A Y 2292
NFS Server on 172.17.229.113 2049 Y 2327
Self-heal Daemon on 172.17.229.113 N/A Y 2332
NFS Server on 172.17.229.250 2049 Y 16788
Self-heal Daemon on 172.17.229.250 N/A Y 16796
NFS Server on 172.17.230.164 2049 Y 28096
Self-heal Daemon on 172.17.230.164 N/A Y 28104

En el caso de que algún subvolumen no esté online (esto es cuando en lugar de una Y
tenemos una N), podemos levantarlo de la siguiente manera (se hacen todos a la vez, no
por partes)


gluster volume start drupriv

y si falla o no los levanta, podemos llegar a forzarlos:


gluster volume start drupriv force

Una vez forzado, comprueba que se han montado todas las unidades, remonta los glusters
y debería verse todo con normalidad

lunes, 18 de agosto de 2014

Qué puertos tengo abiertos y escuchando?


Habéis necesitado alguna vez saber qué puertos y qué servicios están escuchando en esos puertos? Es normal que al menos utilices una de estas formas, pero si sabes que hay más, es posible te resulte más fácil hacer estas averiguaciones la próxima vez (sin necesidad de instalar el software si es necesario)


Nmap

Para mí, es la más antigua en uso; desde que la conocí, es un comando obligado en cada sistema que monto, pero también he aprendido que no siempre está disponible, así que me he tenido que buscar un poco la vida...


esther@Celacanto:~$ nmap localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2014-08-18 12:43 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00056s latency).
Not shown: 992 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
53/tcp   open  domain
80/tcp   open  http
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
631/tcp  open  ipp
3306/tcp open  mysql
3689/tcp open  rendezvous

Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
esther@Celacanto:~$


Lsof

Lsoft te muestra, además de los puertos abiertos,  las conexiones que tienes establecidas en este momento,


esther@Celacanto:~$ lsof -i
COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
firefox   2857 esther   55u  IPv4 105538      0t0  TCP Celacanto.local:50484->mad01s08-in-f7.1e100.net:https
(ESTABLISHED)
firefox   2857 esther   56u  IPv4  99754      0t0  TCP Celacanto.local:52932->199.16.156.52:https
 (ESTABLISHED)
firefox   2857 esther   57u  IPv4 104799      0t0  TCP Celacanto.local:51760->mad01s09-in-f3.1e100.net:http
 (ESTABLISHED)
firefox   2857 esther   61u  IPv4 106927      0t0  TCP Celacanto.local:38367->ticketing.conzentra.com:http-alt
 (ESTABLISHED)
firefox   2857 esther   93u  IPv4 102390      0t0  TCP Celacanto.local:35392->we-in-f191.1e100.net:https
 (ESTABLISHED)
firefox   2857 esther  113u  IPv4 103466      0t0  TCP Celacanto.local:35566->vc-in-f94.1e100.net:https
 (ESTABLISHED)
firefox   2857 esther  118u  IPv4 103460      0t0  TCP Celacanto.local:37161->mad01s14-in-f8.1e100.net:https
(ESTABLISHED)
skype     4177 esther   15u  IPv4  25938      0t0  UDP localhost:35709
skype     4177 esther   50u  IPv4  28241      0t0  TCP
Celacanto.local:35904->db3msgr5010720.gateway.messenger.live.com:https (ESTABLISHED)
skype     4177 esther   51u  IPv4  26862      0t0  TCP Celacanto.local:38060->157.56.116.205:12350
 (ESTABLISHED)
skype     4177 esther   52u  IPv4  26208      0t0  TCP *:63916 (LISTEN)
skype     4177 esther   53u  IPv4  26209      0t0  UDP *:63916
skype     4177 esther   55u  IPv4 105773      0t0  TCP Celacanto.local:33011->snt404-m.hotmail.com:https
 (ESTABLISHED)
skype     4177 esther   60u  IPv4  28208      0t0  TCP Celacanto.local:47544->111.221.74.42:40011
 (ESTABLISHED)
rhythmbox 4743 esther   18u  IPv6  56747      0t0  TCP *:daap (LISTEN)
ssh       6136 esther    3u  IPv4  98422      0t0  TCP Celacanto.local:33097->nemesys:ssh (ESTABLISHED)


Netstat
netstat es un comando potente, pero ten en mente estas combinaciones  de opciones, que te pueden sacar de un aprieto y dar mucha información si lo necesitas

esther@Celacanto:~$ netstat -ltpun | grep ESC
Proto  Recib Enviad Dirección local         Dirección remota       Estado       PID/Program name


tcp        0      0 127.0.0.1:3306          0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 0.0.0.0:139             0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 0.0.0.0:63916           0.0.0.0:*               ESCUCHAR    4177/skype    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 192.168.122.1:53        0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 192.168.1.64:53         0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 127.0.0.1:53            0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 0.0.0.0:22              0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 127.0.0.1:631           0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 127.0.0.1:953           0.0.0.0:*               ESCUCHAR    -             
tcp        0      0 0.0.0.0:445             0.0.0.0:*               ESCUCHAR    -             
tcp6       0      0 :::3689                 :::*                    ESCUCHAR    4743/rhythmbox
tcp6       0      0 :::139                  :::*                    ESCUCHAR    -             
tcp6       0      0 :::53                   :::*                    ESCUCHAR    -             
tcp6       0      0 :::22                   :::*                    ESCUCHAR    -             
tcp6       0      0 ::1:631                 :::*                    ESCUCHAR    -             
tcp6       0      0 ::1:953                 :::*                    ESCUCHAR    -             
tcp6       0      0 :::445                  :::*                    ESCUCHAR    -

esther@Celacanto:~$ netstat -ltp | grep ESC
Proto  Recib Enviad Dirección local         Dirección remota       Estado       PID/Program name
tcp        0      0 localhost:mysql         *:*                     ESCUCHAR    -              
tcp        0      0 *:netbios-ssn           *:*                     ESCUCHAR    -              
tcp        0      0 *:63916                 *:*                     ESCUCHAR    4177/skype     
tcp        0      0 *:http                  *:*                     ESCUCHAR    -              
tcp        0      0 Celacanto.local:domain  *:*                     ESCUCHAR    -              
tcp        0      0 Celacanto.local:domain  *:*                     ESCUCHAR    -              
tcp        0      0 localhost:domain        *:*                     ESCUCHAR    -              
tcp        0      0 *:ssh                   *:*                     ESCUCHAR    -              
tcp        0      0 localhost:ipp           *:*                     ESCUCHAR    -              
tcp        0      0 localhost:953           *:*                     ESCUCHAR    -              
tcp        0      0 *:microsoft-ds          *:*                     ESCUCHAR    -  

 * Nota: en mi caso, hago un grep de 'ESC', pero en cualquier sistema con base en inglés, deberá cambiarse por 'LIS' o 'LISTEN'

lunes, 13 de enero de 2014

Píldora: cómo saber el número de serie de un servidor Linux

Hay veces en los que necesitas el número de serie de un servidor y no aparece. Tienes que renovar el mantenimiento o pasar una incidencia, y no hay manera de que ese dato te aparezca. 

En diferentes distribuciones Linux (al menos Debian, Ubuntu y RHEL) existe un paquete, dmidecode, que te devuelve toda la información del hardware de tu máquina. La verdad es que sobre este paquete se podría hacer un artículo lo largo que quisiera, pero yo sólo quiero dejaros este comando que os servirá para ver el vendedor, el modelo y el número de serie de vuestro servidor:



     sudo dmidecode | grep -e 'Manufacturer' -e 'Product Name'  -e 'Serial Number' | head -n 3



Si queréis profundizar, podéis empezar por este completo artículo en esdebian.org.

martes, 17 de diciembre de 2013

Pildora: Cómo saber cuánto consume de media un hilo de apache

Bueno,  no es tan complicado como podría parecer.
Desde línea de comandos ejecutamos:


     ps -ylC apache2 --sort:rss | awk '{sum+=$8; ++n} END {print "Tot="sum"("n")";print "Avg="sum"/"n"="sum/n/1024"MB"}'         




y te devolverá el tamaño medio de las peticiones de apache en el servidor; si utilizas RedHat o CentOS, cambia 'apache2' por 'httpd'

Si quieres saber cuánto ocupa de media un hilo de otro servicio, cambia 'apache2' por el nombre del servicio!




lunes, 21 de enero de 2013

Dell: actualizaciones posteriores a una instalación (Debian y RHEL)

Después de mucho tiempo sin atender mucho al blog, hoy os dejo una entrada con una serie de tareas que es interesante hacerlas antes de una puesta en producción. Se trata de una serie de actualizaciones de sistema que normalmente no hacemos, o que como administradores de sistemas las vamos dejando de lado. Pues no! Ahora os ponéis todos a planificar las actualizaciones...

Una vez hemos hecho una actualización nueva, lo lógico en nuestro caso es actualizar el sistema. Yo trabajo normalmente con Red Hat (RHEL) o Debian, así que las actualizaciones de paquetes son muy fáciles. En el caso de Debian es

    > apt-get update --> Actualizamos la lista de paquetes que hay en los repositorios
    > apt-get upgrade --> Actualizamos los paquetes instalados que tienen versiones posteriores de la misma release

En el caso de Red Hat (RHEL), primero tengo que registrar mi sistema y después actualizarlo

    > rhn_register --> Registro mi sistema; necesitas tu usuario y contraseña en la Red Hat Network que te da acceso a las actualizaciones
    > yum update --> Actualizar listado de paquetes y el sistema

Con el sistema actualizado lo vemos todo más claro. Vamos a por actualizaciones más delicadas (iDRAC, BMC, BIOS, etc)

Primero buscamos el paquete que queremos actualizar en
    > http://support.dell.com
Ten a mano la etiqueta de servicio (service tag); te la pedirá la web para redirigirte a los paquetes correctos. Descárgalos e instálalos en tu servidor.

Para instalarlos, el procedimiento genérico es
    A chmod 755 nombre_del_paquete.bin
    B ./nombre_del_paquete.bin -c --> Ejectuarás la instalación, pero en modo prueba, para comprobar si faltan librerías o paquetes. Si falla alguna dependencia, instálala antes de seguir adelante
    C ./nombre_del_paquete.bin --> Instalarás el paquete. Una vez finalizado, ya lo tendrás. Es posible que te pida reiniciar.

Si no localizas alguno de los paquetes, en 'normal': para linux no están todos los paquetes.




Y por último, una herramienta DELL muy útil: el gestor OMSA (OpenManager Server Administrator). Desde aquí podremos hacer un seguimiento y monitorización de aspectos físicos del sistema de una manera muy rápida y sencilla. Yo te recomiendo que lo instales en tu servidor, seguro que te es de ayuda, y una vez lo tengas, lo instalarás en todos los servidores DELL que tengas.


Primero, descargamos el paquete. Según sistema (RHEL, Windows, SLES,... ) y la arquitectura (x86, _64) escogemos el paquete adecuado de
    > http://ftp.dell.com/sysman/
Busca la versión más actualizada; actualmente es la 7 (01/2013). Crea una carpeta en el servidor y descarga el paquete a esa carpeta.

Descomprímelo.

Navega hasta el directorio que has creado y ejectua
    > bash linux/supportscripts/srvadmin-install.sh --express
Una vez finalizada la instalación, levanta el servicio
    > bash linux/supportscripts/srvadmin-services.sh start

Comprueba que puedes acceder
    > https://IP:1311


Si no puedes acceder, comprueba que no tengas algún dispositivo que pueda cortarte el acceso. Recuerda que el propio sistema puede tener un firewall.




miércoles, 1 de febrero de 2012

Activando Server-Status en Apache

Parece una tontería, pero es una herramienta bastante útil a la hora de detectar cuellos de botella en un servidor apache. Últimamente me ha sido decisiva a la hora de detectar dos de estos casos en poco tiempo, y aunque su activación es un momento, muchos administradores no lo tienen en cuenta.

También es verdad que hay otros módulos, del propio apache o de terceros, pero este, por su simplicidad, facilidad a la hora de instalar (viene prácticamente por defecto, sólo hay que configurarlo) y por su utilidad, debería estar en cualquier checklist de instalación.

Lo primero es instalar el paquete apache; dependiendo de tu distribución se hace de una manera u otra (apt-get install apache2, aptitude apache2, yum install http, etc). Yo seguiré a partir del momento en que vuestro Apache funciona correctamente.

Antes que nada, debéis confirmar si la directiva

ExtendedStatus

está activada o no; en caso de no estarlo, la activáis (descomentándola o poniéndola en On). En caso de estar activad, pues ya la tenemos. Si no la encontráis, podéis dar de alta la línea 
ExtendedStatus On

en el archivo de configuración apache2.conf o httpd.conf, por ejemplo (o en cualquier archivo de configuración que vaya a leer el apache al levantar).

El siguiente paso es configurar el manejador. Es posible que vuestra distro ya lo tenga activado sin configurar. En el caso de distribuciones tipo Debian, en el directorio mods-available encuentro la configuración para este módulo en status.conf. Si edito me encuentro que la configuración por defecto es:
 
#
# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Uncomment and change the "192.0.2.0/24" to allow access from other hosts.
#

    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1 ::1
    Allow from 192.168.253.0/24


# Keep track of extended status information for each request
ExtendedStatus On

# Determine if mod_status displays the first 63 characters of a request or
# the last 63, assuming the request itself is greater than 63 chars.
# Default: Off
#SeeRequestTail On



    # Show Proxy LoadBalancer status in mod_status
    ProxyStatus On




Yo me voy a centrar en la parte del handler, el manejadro que comentaba antes:
     SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1 ::1
#    Allow from 192.168.1.0/24




Aquí podremos cambiar la manera de llamar al manejador; por defecto es '/server-status', pero por seguridad está bien que lo cambies, más que nada porque esta directriz mal configurada puede estar disponible públicamente, y no interesa. Con llamarlo '/config-status' o '/server-stat' o algo parecido ya es suficiente.
La siguente cosa en que nos fijamos en los usuarios que se permiten; sólo permite acceso desde localhost, pero si descomentamos el último 'Allow' podremos acceder también desde toda nuestra red privada 192.168.1.0/24 (o desde la red o IPs que le pongamos, aquí es donde configuramos el acceso)

Y ya está. Hacemos una comprobación de la configuración con
apache2ctl configtest

y cuando nos dé el OK, hacemos un reload para cargar los cambios. Y comprobamos que tengamos acceso al server-status de la máquina desde un navegador:
http://nombredelservidor/server-status


martes, 28 de junio de 2011

Configurando los servicios en los runlevels

Alguna vez os habéis encontrado que habéis compilado una aplicación, y que por defecto no se añade a los runlevels para que se inicie al arrancar el servidor?

Es fácil, no os preocupéis.

En Red Hat, utilizamos chkconfig

chkconfig --list --> Listado de los servicios que hay en el servidor
chkconfig SERVICIO on --> Para añadir el servicio a la lista de servicios que arrancan por defecto
chkconfig SERVICIO off --> Para añadir el servicio a la lista de servicios que se paran por defecto

En Debian/Ubuntu, utilizamos update-rc.d

update-rc.d SERVICIO defaults --> Para añadir el servicio a la lista de servicios que arrancan por defecto
update-rc.d SERVICIO remove --> Para añadir el servicio a la lista de servicios que se paran por defecto

Si lo queréis más gráfico, podéis probar con rcconf

viernes, 26 de junio de 2009

FreeNAS vs. OpenFiler

Tras estar tocándolo y jugando con el FreeNas, no me encaja en lo que necesito, así que voy a instalar un OpenFiler para la cabina de mi nuevo sistema de correo.

Los problemas con los que me he encontrado han sido varios, aunque el más grave era que FreeNas no me reconocía los 2,7Tb de disco que tenía para trabajar, sólo 1Tb; tal vez la limitación estaba en la controladora (la cabina estaba preparado con 4 discos de 250Gb, no con 4 discos de 1Tb con RAID5) o en cualquier otro sitio, a saber, pero de momento el OpenFiler (está en proceso de instalación) me los ha detectado todos. Otro problema con el que me encontré fue que, al ir a tocar la tabla de particiones, no tenía un formato correcto: los cilindros que reconocía eran '0', y tenía que configurarlo a mano... claro, me ha tocado arrancar con un Knoppix (que no veía más espacio en el RAID, por eso no sé dónde puede estar la limitación) pero no he podido hacer mucha cosa más. Así que viendo cómo ha ido la cosa y teniendo como referencia al OpenFiler, voy a hacer la prueba con esta aplicación.

De momento, estoy instalando, siguiendo esta guía.
[ http://www.openfiler.com/learn/how-to/graphical-installation ]

Ya os contaré qué tal.

jueves, 24 de julio de 2008

Problemas con Httpd en Red Hat

Cuánto tiempo sin postear nada!!!
Ha sido una larga temporada, muchos cambios, mucho trabajo y muchos viajes... pero a ver si puedo ir posteando poquito a poco.


Esta vez vengo con una solución que podría haberme llevado muchas horas, pero con la que he dado pronto... afortunadamente.

He montado un servidor de hosting con Red Hat (sí, en el trabajo estamos cambiando a Red Hat), y me da problemas el httpd. Al arrancarlo, me da el siguiente error:

[warn] _default_ VirtualHost overlap on port 80, the first has precedence

El apache arrancaba sin problemas, pero no se cargaba bien la configuración. Tenía definidos varios Virtualhosts, pero parece que sólo se había cargado el primero. El resto redirigían a éste, como si no estuvieran configurados.

Después de hacer varios cambios en la configuración de las directivas de apache, he dado con el problema :)
Simplemente, he descomentado la siguiente línea:

NameVirtualHost *:80

y el resto es historia!
El apache se ha levantado, ha cargado todos los hosts virtuales y funciona a las mil maravillas...