martes, 28 de marzo de 2017

Instalar Proxmox4 en Hetzner - Parte 2

Vamos a pasar ahora a configurar la red en nuestro Proxmox. Por política de Hetzner, para usar múltiples IPs en virtuales, necesitaremos hacer que el propio Proxmox enrute las IPs.

Tendremos que editar el fichero /etc/network/interfaces que por defecto está así:

#### Hetzner Online GmbH - installimage
# Loopback device:
auto lo
iface lo inet loopback
iface lo inet6 loopback

# device: eth0
auto  eth0
iface eth0 inet static
  address   <IP Pública>
  netmask   <Máscara subred>
  gateway   <Puerta enlace>
  # default route to access subnet
  up route add -net <IP Red> netmask <Máscara subred> gw <Puerta enlace> eth0

iface eth0 inet6 static
  address <IPv6>
  netmask 64
  gateway fe80::1

Para dejarlo así:

auto lo
iface lo inet loopback

iface eth0 inet manual

auto vmbr0
iface vmbr0 inet static
        address  <IP Pública>
        netmask  <Máscara subred>
        gateway  <Puerta enlace>
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        pointopoint <Puerta enlace>
        up route add -net <IP Red> netmask <Máscara subred> gw <Puerta enlace> eth0

Es decir, cambiamos la configuración para dejarlo todo en base a vmbr0 y quitando IPv6 si no lo vamos a utilizar. Luego a partir de esta configuración, ya crearemos vmbr1 en la que configuraremos las nuevas IPs:
auto vmbr1
iface vmbr1 inet static
        address <IP Pública2>
        netmask 255.255.255.255
        bridge_ports none
        bridge_stp off
        bridge_fd 0

De las IPs que nos dan, ahí configuraremos una de ellas, que es la que usaremos como GW para el resto de IPs, y como GW ponemos la IP princinpal del servidor.

Es importante editar el /etc/sysctl.conf y comprobar que están estos valores así:

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1 // Si usamos IPv6
net.ipv4.conf.all.send_redirects=0

Si no están así, tendremos que cambiarlo. Una vez cambiado esto tendremos que reiniciar la máquina.

Con esto, ya podremos configurar la red de nuestras VM en LXC. En la configuración de la red, tendremos que seleccionar  en Bridge vmbr1 para que funcione la red y como GW tenemos que poner la IP principal del Proxmox.

lunes, 27 de marzo de 2017

Instalar Proxmox4 en Hetzner - Parte 1

Para instalar un Proxmox 4 en Heztner usaremos la imagen que ofrece, pero siempre podremos instalar una Debian y pasarla a Proxmox. Al contratar el servidor o querer reinstalarlo, entraremos en el modo rescue que ofrecen y ejecutamos:
installimage
Ahí nos vamos a Virtualization y seleccionamos "Proxmox-Virtualization-Environment-on-Debian-Jessie" que se corresponde con Proxmox4. Si quisiésemos instalar Proxmox 3.4, seleccionaremos la imagen basada en Wheezy. Ahí nos abrirá un editor de texto para personalizar un poco la instalación si lo necesitásemos, por lo que lo explicaré un poco:

HARD DISK DRIVE(S): Nos mostrará los discos duros o discos ssd que tiene el equipo. Es importante dejar sólo los que vayamos a querer usar para la instalación. Por ejemplo yo suelo quitar los discos destinados a backups, ya que me encargaré luego de prepararlos a mano.

SOFTWARE RAID: Para configurar el raid por software su queremos usarlo, pondremos SWRAID a 1 o a 0 según nuestros planes. Luego en SWRAIDLEVEL indicaremos el tipo de raid que queremos usar (para 0 y 1 necesitaremos dos discos al menos, pero para 10 necesitaremos al menos cuatro discos). Ojo aquí ya que no se si en el caso del raid 1 si metemos 3 discos lo configura como spare o lo mete en el raid, haciendo cosas raras.

HOSTNAME: Es el nombre de la máquina. En caso de proxmox, tiene que ser FQDN aunque no hace falta que resuelva. Si no se pone FQDN casca la instalación.

PARTITIONS / FILESYSTEMS: Esto ya tiene más miga, ya que se va a definir el particionado. Tenemos que tener claro lo que necesitamos para no cometer errores. En el caso de Proxmox4 dejaremos tal y como está:
PART /boot ext3 512M
PART lvm vg0 all //Podemos poner pve para dejar la misma nomenclatura que Proxmox, pero da un poco igual.

LV vg0 root / ext3 15G
LV vg0 swap swap swap 6G
Si nos fijamos, se va a quedar dos volúmenes lógicos ocupando 21G y el resto estará desasignado. Esto nos viene bien para crear luego una partición LVM-thin y tenerlo fetén, ya que en Proxmox4 se usa LVM-Thin y no LVM para las VM en LXC ya que permite hacer snapshots. En el caso de Proxmox3 podríamos añadir la línea:
LV vg data /var/lib/vz ext4 all
para crear el volumen lógico en el que pondremos las VM en OpenVZ. Una vez listo, seguimos con la instalación tal y como indican.

Una vez finalice la instalación y arranque de nuevo, nos quedará definir la partición donde guardaremos los virtuales y si queremos/podemos, preparar los discos extra para backups.

El crear el LVM-Thin es sencillo, ya que está creado el VG y tiene espacio, lo único que necesitaremos será ejecutar:
lvcreate -l 95%FREE -n data vg0
lvconvert --type thin-pool vg0/data
Ajustando los nombres a los que hayamos usado. Como la idea mía es usar todo el espacio libre posible, es posible que al ejecutar el lvconvert se queje de que no hay "exents" disponibles, por lo que tendremos que reducir el tamaño de vg0/data hasta que nos deje. En mi caso opto por quitar el lv con:
lvremove /dev/vg0/data
Y lo recreo ajustando el porcentaje. Esto se puede hacer al no tener datos aún ya que evidentemente eso se cepilla todo. Sólo nos quedaría preparar los discos para backups y tendremos la parte del almacenamiento quedará apañado. Si instalamos un Debian sólo para luego instalar el Proxmox, el particionado será el mismo, luego nos tendríamos que ocupar de instalar el Kernel y los paquetes necesarios para ejectutar el Proxmox.

Lo siguiente será configurar la red que eso ya tiene más jaleo, pero ¡será en el siguiente post!

viernes, 24 de marzo de 2017

Hetzner - Conectar remotamente carpeta CIFS en Linux

Para configurar que se conecte automáticamente al espacio de backups que ofrece Hetzner, tenemos que añadir en el fstab:
//u000000.your-backup.de/backup /mnt/remoto cifs credentials=/root/.smbcredentials,iocharset=utf8,rw,uid=root,gid=root,file_mode=0660,dir_mode=0770 0 0
Donde u000000.your-backup.de es el servidor backup a conectar.

En el archivo /root/.smbcredentials pondremos los datos de acceso (usuario/pass) de esta forma:
username=u0000000
password=M1C0ntR@s3N4b0N1c4
 Y al hacer mount -a debería dejar conectado.

S nos da este error o similar:
mount: wrong fs type, bad option, bad superblock on //u127491.your-backup.de/backup, missing codepage or helper program, or other error (for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program)

In some cases useful info is found in syslog - try dmesg | tail or so.
 Con instalar el paquete cifs-utils nos valdrá, ya que así tendremos el soporte para contectar con comparticiones SAMBA/CIFS.

martes, 21 de marzo de 2017

Consumo RAM de un Wordpress

Para ajustar la configuración de un servidor web en cuanto al máximo de memoria que le vamos a permitir consumir usarmos esta fórmula:
MaxConexiones = (RAM Disponible / RAM Consumida por web)
Vamos, que dividimos la ram total que le vamos a querer asignar al servicio por lo que ocupa cada página en memoria y nos dará el número de páginas concurrentes que va a poder mostrar antes de caer el servicio.

Podemos sacar esos valores a través de los comandos "ps" o "top", pero no es sencillo si se usan virtual hosts con distintos usuarios o si se usa PHP-FPM que se ejecuta a parte.

Para sacar un valor más acertado, podemos usar unas funciones de php para que a la hora de cargar la página nos lo muestre en el navegador. En este ejemplo voy a ponerlo para Wordpress, pero será extrapolable a lo que necesitemos con algún ajuste.

Tendremos que añadir éste código al footer.php de nuestra plantilla:
<!-- <?php if (is_user_logged_in()) { ?>
<p>Consumo de PHP: <?php echo round(memory_get_usage()/1048576,2) ?>MB.</p>
<p>Peticiones: <?php echo get_num_queries(); ?> consultas.</p>
<p>Tiempo de carga: <?php timer_stop(1); ?> segundos.</p>
<?php } ?> -->
Entre </body> y </html> que nos mostrará los datos viendo el código fuente de la página sólo si estamos logueados.

Si queremos que se muestre aunque no estemos logueados lo podemos poner así:
 <!-- <p>Consumo de PHP: <?php echo round(memory_get_usage()/1048576,2) ?>MB.</p>
<p>Peticiones: <?php echo get_num_queries(); ?> consultas.</p>

<p>Tiempo de carga: <?php timer_stop(1); ?> segundos.</p>  -->
Con esta información podremos ajustar fácilmente la configuración para dejar el Apache a nuestro gusto y poder dimensionar los servicios bien. 

martes, 7 de marzo de 2017

Pasar Windows 10 Home a Pro

Hoy vengo con una nota, de esas pa' mí que luego sacan de un apuro a cualquiera. El caso es que necesitaba pasar un Windows 10 Home a Pro, así a pelo, para poder meter unos equipos en un Directorio Activo.

El caso es que rebuscando, en todos los sitios decían que no se podía, que había que reinstalar (hasta me lo dijeron un "soporte técnico postventa"). Yo como siempre, dije que nones, que se tenía que poder hacer porque es algo que desde M$ tienen que dejar hacer: es un upgrade.

Así que... Buscando y buscando, encontré la forma de hacerlo y es bien sencillica.  Sería tal que así:

  • Vamos a "Configuración"
  • Entramos en "Actualización y seguridad:
  • Vamos a "Activación":
  • Y ahí pulsamos sobre "Cambiar la clave de producto", que nos pedirá poner una nueva:
Ahí ponemos la clave "VK7JG-NPHTM-C97JM-9MPGT-3V66T" que lo que permite es precisamente pasarlo a Pro. Una vez acabados los reinicios, ya tendremos que poner una clave válida para Pro y ¡listo el pollo!