Empieza a crear máquinas virtuales sobre Centos 7 con KVM en OVH / Soyoustart
Explicación de cómo instalar un servidor Linux Centos 7 x64 con KVM Kernel Based Virtual Machine en OVH / Soyoustart.
Vamos a tratar de explicar en esta guía:
- Cómo para instalar el sistema Linux Centos en un servidor dedicado contratado en soyoustart
- Instalar Webmin para la gestión del servidor
- Instalar Virtualmin para poder crear servidores virtuales y alojar en ellos páginas web
- Instalar Cloudmin para poder crear máquinas virtuales.
En este caso se va a utilizar como proveedor Soyoustart, pero suprimiendo la primera parte de la instalación del sistema operativo, esta guía de instalación se podría hacer en otros proveedores.
Lo primero contratar un servidor dedicado en la web de soyoustart. Este proveedor tiene servidores dedicados de buenas características en diferentes países para elegir y a precios muy competitivos. Esta marca pertenece a OVH. Se podría decir que sería la gama media de OVH, por debajo de soyoustart, la gama baja, estaria kimsufi y por encima, la gama alta, OVH.
Una vez contratado el servidor, que en la mayoría en 120 segundos estan disponibles, se puede acceder a la zona de cliente para realizar la instalación del sistema operativo.
La ventaja de instalar el paquete de Webmin, Virtualmin y Cloudmin es muy sencilla, en un mismo panel web se disponen de todos los controles para gestión del servidor, gestión de alojamientos web y de las máquinas virtuales.
Todo el pack se basa en el primero, Webmin, la configuración del servidor.
En mi opinión, Webmin es uno de los mejores paneles de control existentes. Una de las principales ventajas es que trabaja con los ficheros estandard del sistema operativo y de aplicaciones. Es decir, sin instalación de Webmin, se puede instalar un servidor web apache o un servidor de base de datos mysql. Por norma general, estas aplicaciones guardan sus ficheros de configuración en un directorio, que generalmente siempre el mismo. Por lo tanto se se conocen estos directorios, es fácil encontrar las configuraciones. La ventaja es que al instalar webmin, este trabaja con estos directorios estándar pudiendo trabajar desde el panel de control o desde consola, a diferencia de otros paneles web de control de servidores que se inventan sus propios directorios para guardar las configuraciones y comandos especiales, por lo que es necesario conocer el sistema operativo y también como trabaja el panel del control. Una ventaja adicional es que el paquete Webmin dispone de una API a la que se le pueden realizar peticiones para hacer todo tipo de cosas.
Bueno, Empezamos!!
Iniciar la instalación del sistema operativo desde la web de soyoustart
Tras autentificarse en el panel de control de Soyoustart, se pulsa sobre el botón instalar, o en caso de tener un sistema operativo ya instalado, en reinstalar, seleccionar la plantilla Centos 7 64 como sistema operativo y el idioma del sistema operativo en el que se debe instalar, ademas se debe marcar la opción instalación personalizada y pulsar continuar.
Pantalla de creación de particiones, se deja las particiones
Swap
/
y se elimina la partición /home
Vale la pena ajustar un poco los valores de las particiones anteriores en cuanto a tamaño. Por ejemplo si se ha contratado un servidor que dispone de 2TB y se van a poner una web que no va a ocupar demasiado, 2TB es excesivo, por lo tanto es bueno considerar más espacio a la partición raíz / porque es donde se va a a instar el Sistema Operativo, las librerías, los logs, etc… Esto puede cambiarse, pero es más trabajo. Por lo tanto si se le da por ejemplo 200GB en primer momento, pues después hay que estar menos pendientes de algunas cosas. Dando 200GB, todavía quedan casi 1.8TB para la web. Hay que recordar que el tamaño en OVH esta en MB, multiplica los GB por 1024. Si quieres cambiar el espacio, pulsa sobre editar la partición, cambia los valores y guarda. Cuando se acaba hay que pulsar en siguiente
En la siguiente pantalla se debe poner el nombre del servidor en el campo host, por ejemplo
svr.dominio.com
Es muy importante marcar la opción Utilizar núcleo de la distribución. Si no se marca esta opción se instala con el custom kernel de OVH / Soyoustart, y no con el original de Centos, este kernel compilado da algún problema cuando se requiere utilizar compilaciones porque no encuentra los fuentes, a mi parecer siempre es mejor instalar el original del sistema operativo.
Pulsar en siguiente y después pulsar en confirmar, el sistema empieza a instalarse, y cuando finaliza de instalar todo el sistema completo, llega un email con los datos de acceso al servidor, es muy sencillo de instalar y rápido y puedes cambiar de sistema operativo en muy poco tiempo, esta muy bien el sistema de OVH / Soyoustart.
Tras la instalación correcta llega un email al correo registrado en OVH que contiene los datos de acceso al servidor: la IP, el usuario y la contraseña.
Primeros pasos con el nuevo servidor instalado
Para poder conectar con el nuevo servidor hay que utilizar SSH, para ello es posible descargar y utilizar un cliente como Putty para conectar por SSH, conectar desde la terminal de mac o el shell de linux. Buscaremos en el email para conseguir el usuario, la contraseña y la IP del host. Son los datos necesarios para conectar por SSH y OVH nos los ha enviado.
Tras conectar por SSH y entrar al servidor lo primero que se debe hacer es cambiar la contraseña, de esta manera será más fácil de recordar. Hay que escoger una contraseña que se pueda recordar, pero que sea complicada, utilizar MAYÚSCULAS, minúsculas, números y símbolos intercalados y con una longitud de unos 10-12 caracteres esta bien. Es posible utilizar un generador de contraseñas para seleccionar una contraseña segura.
El texto en gris son las ordenes ordenes que se deben escribir y después pulsar la tecla INTRO
Para cambiar la contraseña:
passwd
Continuar con los pasos de la pantalla, que es escribir la contraseña nueva dos veces.
Vamos a la acción!!
Instalación de los repositorios Linux Centos
Activar el repositorio EPEL para centos 7 e instalar el repositorio SCL para Centos 7 para posteriormente poder instalar otras versiones de PHP
yum -y install epel-release
yum -y install centos-release-scl
Si se quiere instalar también VirtualBox, se debe añadir su repositorio
cd /etc/yum.repos.d wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
Instalar el repositorio de Webmin
vi webmin.repo
Pulsa la i y pega esto
[Webmin] name=Webmin Distribution Neutral #baseurl=http://download.webmin.com/download/yum mirrorlist=http://download.webmin.com/download/yum/mirrorlist enabled=1
Pulsa Escape, escribe :wq y pulsa intro
cd /root/
Ahora vamos a bajar la key de Webmin
wget http://www.webmin.com/jcameron-key.asc
Y se instala:
rpm --import jcameron-key.asc
También se instala el repositorio Remi y IUS
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
wget https://centos7.iuscommunity.org/ius-release.rpm
rpm -Uvh remi-release-7*.rpm
rpm -Uvh ius-release*.rpm
Instalación de Webmin Virtualmin, Cloudmin y otros componentes para la puesta a punto del servidor Centos
Se empieza la instalación con las herramientas de desarrollo
yum -y groupinstall "Development Tools"
Instalamos la VPN, el KVM y VirtualBox y por ultimo el Webmin
yum -y install at pptp openvpn kvm fetchmail telnet ftp wbm-virtualmin-svn wbm-virtualmin-google-analytics wbm-virtualmin-signup wbm-jailkit wbm-virtualmin-oracle wbm-virtualmin-slavedns wbm-virtualmin-password-recovery subversion python-virtinst glibc-headers glibc-devel kernel-headers kernel-devel qemu-kvm libvirt virt-install bridge-utils binutils qt gcc make patch nginx wbm-virtualmin-nginx wbm-virtualmin-nginx-ssl libgomp dkms webmin
Descargar el script de instalacion de cloudmin
wget http://cloudmin.virtualmin.com/gpl/scripts/cloudmin-kvm-redhat-install.sh
Cambiar los permisos de ejecución
chmod +x cloudmin-kvm-redhat-install.sh ./cloudmin-kvm-redhat-install.sh
Reiniciar el servicio de red
service network restart
Aprovechando la conexión de SSH, instalaremos Virtualmin para poder añadir distintos dominios.
cd /root/ wget http://software.virtualmin.com/gpl/scripts/install.sh chmod +x install.sh ./install.sh
Si se ha decidido instalar VirtualBox, aunque con KVM es suficiente para las maquinas virtuales
yum -y install VirtualBox-4.3 /etc/init.d/vboxdrv setup usermod -a -G vboxusers root usermod -a -G libvirt root
Como se quiere que el server sea multidisciplinar tanto en desarrollo como en administración se instalan herramientas adicionales. Con estas instalaciones prácticamente se puede tener a los informáticos contentos.
yum -y updateyum -y install mlocate iptables-services mailman php-devel postgresql-server php-mcrypt* yum-plugin-replace certbot clamd sos cockpit
yum -y install php-soap libmemcached-devel php-pecl-memcached php-pecl-memcache tcl-devel libpng-devel libjpeg-devel ghostscript-devel bzip2-devel freetype-devel libtiff-devel libssh2-devel libsphinxclient libsphinxclient-devel libnghttp2 libjpeg-turbo-devel
yum -y install php-aws-sdk python-pip ruby-devel cpan curl-devel libmcrypt-devel libtomcrypt libtomcrypt-devel libtool-ltdl-devel python-devel python-pip python-setuptools
yum -y install mutt msmtp showmount nfs-utils nfs-utils-lib rpcbind wkhtmltopdf python-html2text cmake re2c php-mbstring erlang nodejs npm composer mod_perl mod_dav_svn php-odbc php-snmp perl-DBD-Pg poppler-utils gperf fontconfig-devel libicu-devel sqlite-devel GeoIP-devel lib2-devel php-pecl-geoip gmp-devel boost mod_geoip
yum -y install perl-Razor-Agent spamassassin-iXhash2 Xvfb xorg-x11-fonts* libqt4-webkit libqt4-dev qtwebkit-devel qt-devel rkhunter pwgen lvm2 qemu libvirt-client virt-manager virt-viewer guestfish libguestfs-tools virt-top mod_security mod_security_crs openldap-clients nss-pam-ldapd perl-LDAP lsyncd lftp systemctl enable --now cockpit.socket firewall-cmd --permanent --zone=public --add-service=cockpit firewall-cmd --reload Utilizando https://IP:9090/ ahora se puede acceder a cockpit, una interfaz web del servidor
Y algunos módulos PHP para Apache que son muy útiles para hacer todo tipo de desarrollos
- IMAGEMAGICK
yum -y install ImageMagick ImageMagick-devel php-pecl-imagick php-magickwand ImageMagick-perl
pecl install imagick
echo “extension=imagick.so” > /etc/php.d/imagick.ini - APC
pecl install apc
echo “extension=apc.so” > /etc/php.d/apc.ini - SPHINX
pecl install sphinx
echo “extension=sphinx.so” > /etc/php.d/sphinx.ini - MONGO
pecl install mongo
echo “extension=mongo.so” > /etc/php.d/mongo.ini - SSH2
pecl channel-update pecl.php.net
pecl install -f ssh2
echo “extension=ssh2.so” > /etc/php.d/ssh2.ini - COMPOSER
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
Preparando las particiones del disco duro y volúmenes LVM
Ahora se crean las particiones primarias de tipo LVM
fdisk -l
Permite ver los discos para ver los discos
Seleccionamos uno de los discos a particionar
fdisk /dev/sda
Pulsamos n “Nueva particion”
Tipo de particion: p “Primaria”
Numero de particion: 3
Sector de inicio, miramos en el fdisk -l de antes donde acaba el ultimo sector y sumamos 1
Sector final, enter, para todo el discos
Pulsamos t “Cambiar el tipo de particion”
Hex code, escribimos 8e que es LVM
Por último pulsa w para guardar la tabla de particiones
Si se disponen de dos discos, o no se quiere utilizar Raid, se debe volver a repetir el proceso para el otro disco.
reboot
Primeros pasos con Webmin
Ahora se puede poner en el navegador para entrar al webmin la siguiente dirección
http://IPDELSERVIDOR:10000
Donde se debe cambiar IPDELSERVIDOR por la que nos llego en el correo al principio o por el hostname que se había puesto en la instalación. Para que esto último funcione, previamente se debe haber apuntado un registro A en las DNS del dominio hacia la IP del servidor que se recibio por email.
Al entrar pedirá usuario y contraseña, como usuario root y como contraseña la que se puso al inicio.
En la izquierda en la parte superior, las pestañas para navegar entre la gestión y configuración del servidor Webmin, el alojamiento web aquí llamado servidor virtual y Cloudmin, la gestión de maquinas virtuales. Acceder a Webmin.
Seguramente al entrar aparece un mensaje de error:
This system cannot be a KVM host : The required command fuser does not exist. Perhaps the KVM software is not installed? Virtual systems cannot be created or added until this is fixed.
La solución consiste en volver a conectar por SSH e instalar fuse. Tras instalar y recargar el panel de Webmin el mensaje de error desaparece.
Al volver a recargar el panel se obtiene:
- Webmin para Administrar el servidor. Permite todo tipo de cambios de configuración, desde modificar Apache hasta conectar con un servidor NTFS.
- Virtualmin para la gestión y creación de servidores virtuales. Vamos, si se quieren alojar páginas web.
- Cloudmin: Creación y gestión de maquinas virtuales o VPS. Por ejemplo se puede instalar un sistema Windows en una máquina Virtual o un Linux con interfaz gráfica.
Configuración básica de webmin:
Si tienes dos discos y quieres poner las particiones que hemos creado antes en RAID1 por si uno de los discos explota 🙂 poder acceder a la información hay que entrar en Webmin > Hardware > Linux Raid.
Crear RAID y selecciona RAID1.
Ahora en particiones en RAID selecciona la A y la B, todo lo que se cree en una se duplicará en la otra de forma automática y transparente. Al darle a crear empezará a trabajar, hay que esperar a que acabe, dependiendo del tamaño del disco puede tardar un par de horas o más por lo que puedes ir a tomarte algo. Lo que tiene el sistema RAID es que si se tienen 2 discos de 1TB no se tienen 2TB reales, se tiene solo 1TB duplicado, esto aporta seguridad de los datos y mayor tranquilidad.
Al acabar con el RAID o si no se quiere utilizar, se debe pulsar sobre Webmin > Hardware >Logical Volume Management. Pulsa sobre Añadir un nuevo grupo de volumen, dale un nombre y selecciona la partición creada, al guardar aparece el Volumen.
Vamos a crear un volumen lógico, para ello pulsa sobre la pestaña volúmenes lógicos y crear en uno de los discos
Nombre del volumen Isos, y asigna el tamaño que desees
Cuando este creado pulsa sobre el selecciona New linux Native ext4 y crea el filesystem con el botón de la parte inferior y por ultimo monta el volumen en /var/isos y pulsa sobre montar.
Haz lo mismo para vbox y para kvm.
Ahora por SSH hacemos lo siguiente para apuntar el directorio por defecto
de kvm al volumen lógico creado.
$ cd /
$ rm -rf kvm
$ ln -s /var/kvm/ kvm
Volver al panel, ahora en la parte superior Cloudmin > Host Systems > KVM Host Settings y se cambia el directorio base por /var/kvm
Ya se pueden instalar las primeras máquinas
Descargar un iso de Centos desde un mirror de https://www.centos.org/download/mirrors/ en el volumen isos
Si es necesario Apache tomcat se puede instalar el módulo
https://cdn.acugis.com/apache-tomcat-webmin-plugin/tomcat.wbm.gz
$ cd /var/isos
$ wget http://mirror.checkdomain.de/centos/7/isos/x86_64/CentOS-7.0-1406-x86_64-Everything.iso
Para más velocidad en todos los pasos…
Se puede copiar y pegar esto en un archivo llamado install.sh, darle permisos de ejecución y ejecutarlo con ./install.sh
#!/bin/sh
wget http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm
rpm -ivh epel-release-7-0.2.noarch.rpm
cd /etc/yum.repos.d
wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
cat <<EOF > webmin.repo
[Webmin]name=Webmin Distribution Neutral
#baseurl=http://download.webmin.com/download/yum
mirrorlist=http://download.webmin.com/download/yum/mirrorlist
enabled=1
EOF
cd /root/
wget http://www.webmin.com/jcameron-key.asc
rpm --import jcameron-key.asc
yum -y groupinstall "Development Tools"
yum -y install pptp openvpn kvm python-virtinst glibc-headers glibc-devel kernel-headers kernel-devel qemu-kvm libvirt virt-install bridge-utils binutils qt gcc make patch libgomp dkms webmin
wget http://cloudmin.virtualmin.com/gpl/scripts/cloudmin-kvm-redhat-install.sh
chmod +x cloudmin-kvm-redhat-install.sh
./cloudmin-kvm-redhat-install.sh
yum -y install VirtualBox-4.3
/etc/init.d/vboxdrv setup
usermod -a -G vboxusers root
usermod -a -G libvirt root
service network restart
Por último solo se deben crear las particiones con algo parecido a este Script, pero depende mucho de la capacidad de los HD discos duros del servidor, o seguir los pasos de creación de particiones explicados más arriba:
hdd="/dev/sda /dev/sdb"
for i in $hdd;do
echo "n
p
3
42008576
t
8e
w
"|fdisk $i;done