Cloud Server

8
Cloud Server Antes que nada... ¿Qué es una cloud? Ultimamente está de moda, aunque nunca queda bien claro que es. Una "cloud", por su traducción al español "nube", es una agrupación de servicios como alojamiento y sinconización de archivos, agenda, visor de PDF, streaming de música, bases de datos, entre otros, a los cuales tenemos acceso mediante una interfaz (web en la mayoría de los casos) pero el servidor no es propio, o sea, está hosteado en otro lado. Los más conocidos son Dropbox, iCloud, Google Drive, UbuntuONE, entre otros ofrecen todos o algunos de los servicios antes mencionados, pero limitados, es decir que hasta cierta capacidad de almacenamiento o para adquirir su totalidad hay que pagar una mensualidad, lo que a muchos no les copa.

description

como crear servidor cloud en linux

Transcript of Cloud Server

Cloud Server

Antes que nada... Qu es una cloud?

Ultimamente est de moda, aunque nunca queda bien claro que es. Una "cloud", por su traduccin al espaol "nube", es una agrupacin de servicios como alojamiento y sinconizacin de archivos, agenda, visor de PDF, streaming de msica, bases de datos, entre otros, a los cuales tenemos acceso mediante una interfaz (web en la mayora de los casos) pero el servidor no es propio, o sea, est hosteado en otro lado.

Los ms conocidos son Dropbox, iCloud, Google Drive, UbuntuONE, entre otros ofrecen todos o algunos de los servicios antes mencionados, pero limitados, es decir que hasta cierta capacidad de almacenamiento o para adquirir su totalidad hay que pagar una mensualidad, lo que a muchos no les copa.

Con este howto van a poder crearse una cloud para la red interna o que tenga salida a internet y ser ustedes los admines. Su desempeo al igual que la capacidad de almacenamiento, obviamente, va ligado al hardware que tengan, yo lo tengo corriendo en un Raspberry Pi y no anda nada mal aunque con un setup un poco distinto.

Qu distro elijo?

Es a gusto, en mi caso personal soy Debianero y prefiero apt-get antes que yum o slapt-get as que el tuto est con base de Debin, para otras distros los cambios son mnimos. Lo prob tambin con CentOS, OpenSUSE y Slacky y corren muy bien.

Si lo van a hacer en una mquina a parte, comienzen desde ac, si lo van a hacer en la mquina que usan todos los das, lo que pueden hacer si quieren es una particin para alojar los archivos.

Distro:Debian 7.0 Wheezy Netinstall (http://www.debian.orgAplicacin de la cloud: OwnCloud (http://www.owncloud.com)Servicios: LAMP (Linux, Apache, MySQL y PHP)

1. Instalando...

Instalen su Debian en el idioma y con el keymap que quieran, si es posible seteenle una IP esttica as ya queda configurado. No es necesario agregar ahora un user comn.

En las particiones, el mapeo que yo eleg fue el siguiente:500mb a /boot15GB a /2GB al swapY el resto del espacio libre a /home

Por qu as?/boot:Teniendo boot en una particin, el/los kernels y el/los initramdisks quedan separados, con esto nos aseguramos de que el booteo exista a menos que se haya volado por completo la particin de root, y si por esas casualidades la particin /boot se vuela,, ejecutando una consola de rescate puede recuperarse el sistema facilmente.

/:Al tener la particin de root separada, si se llega a volar, perderemos el sistema pero los datos de /home y /boot quedan intactos.

/home: Ac se alojan la mayora de los archivos del usuario comn por ende es designada la particin ms grande y tambin nos va a servir como punto de montaje para los archivos que estn en la cloud.

Swap: es el rea de intercambio entre la memoria virtual y fsica. Cuando el sistema se queda sin RAM, escribe los datos en esta rea. Al rebootear se pierden por defecto, el tamao es de acuerdo a la RAM instalada.

2. Seleccionando SoftwareConfiguren el administrador de paquetes a su gusto, yo uso el mirror de Estados Unidos e instalen solamente "Standard System Utilities y OpenSSH server. Pueden instalar entorno grfico, pero con los server NO-VA.

3. Terminando la instalacinTerminen la instalacin, rebooteen y entren por ssh o local al server.Hagan un apt-get update && apt-get -y upgrade por si acaso.

Y ac empezamos con los paquetes:# apt-get install apache2 php5 php5-json php-xml-serializer zip php5-gd php5-mysql curl libcurl3 libcurl3-dev php5-curl mysql-server .

MySQL les va a preguntar una password para el usuario root de la base de datos. Elijan bien y anotensela.

Para instalar OwnCloud de la forma fcil, hay que aadir un repositorio de openSUSE. Haganlo de la siguiente manera:# echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list# apt-get update# apt-get install owncloud# apt-get -f install (por si falt algo)

Les va a crear la carpeta /var/www/owncloud con todo lo necesario adentro.

Otra manera para el que quiera es entrando a la pgina de owncloud que esta el source, crear una carpeta en /var/www y moverlo ahi, la carpeta tiene que tener permisos de apache (www-data:www-data). La forma anterior lo hace automticamente

4. La base de datos:Se puede usar SQLite, yo prefer usar MySQL. Para ello hay que hacer lo siguiente:# mysql -u root -p (van a entrar a la shell de MySQL)Enter password: su pass (espero que se la acuerden)mysql> CREATE DATABASE cloud;mysql> CREATE USER 'cloud'@'localhost' IDENTIFIED BY 'supassword';mysql> GRANT ALL PRIVILEGES ON cloud.* TO 'cloud'@'localhost' IDENTIFIED BY 'supassword';mysql> exit

Qu siginifica todo eso?

Primero creamos la base de datos, despus creamos un usuario comn y por ltimo le damos permiso al usuario que creamos para que pueda usar la base de datos con todos los privilegios. Esto se hace para que no usar el usuario root como owner de la database por cuestiones de seguridad.

5. Mdulos de Apache, el famoso .htaccess y config de PHP

Vamos a activar los modulos rewrite y headers del apache# a2enmod rewrite# a2enmod headers

Editamos el archivo /etc/apache2/sites-enabled/000-default y donde dice "AllowOverride None" cambiamos el "None" por "All" para que el .htaccess tenga efecto# nano /etc/apache2/sites-enabled/000-default

Editamos el archivo /etc/php5/apache2/php.ini, de la misma manera que el anterior y buscamos las lineas que dicen:upload_max_filesize 2Mpost_max_size 8M

(En nano presionando Ctrl + W o en Vim haciendo / se accede a la busqueda).

Cambiamos los valores en base a lo que queramos, los mismos establecen el lmite de posteo y los ms importante el lmite de subida de archivos. Recomiendo usar 1024M y 64M respectivamente

Editamos (como los anteriores) el .htaccess de /var/www/owncloud y buscamos:php_value upload_max_filesize 513Mphp_value post_max_size 513Mphp_value memory_limit 512M

Cambiamos todos los valores por1024M

Cuando terminen, restarteen el apache# service apache2 restart

5. Ya casi!

En caso de que no hayan seteado la IP hagan lo siguiente que esta hecho con la interfaz eth0, adaptenlo a la que esten usando como wlan0 en caso de red inalambrica:# ifconfig (vean que interfaz usan, que IP tienen y cual es su mascara de red (netmask))# route (vean su puerta de enlace que es gateway)# nano /etc/network/interfaces

auto eth0iface eth0 inet staticaddress "la ip que salio en ifconfig"netmask "la mascara de red que salio en ifconfig"gateway "la puerta de enlace que salio en route"

# service networking restart

Si estn por ssh es probable que los saque y se tengan que volver a loguear, si no sigan Ahora si la configuracin del cloud:

abran en su navegador: http://ipdelservidor/owncloud

Les va a pedir de crear una cuenta de administrador y abajo figura "Configracin avanzada"Ahi figura que el directorio que va a funcionar como almacenamiento de los usuarios es /var/www/owncloud/data, para esto creamos la particion grande de home. As que en la terminal creamos un directorio en /home.# mkdir /home/cloud# chown -R www-data:www-data /home/cloudEntonces volvemos al navegador y ponemos /home/cloud como directorio de almacentamiento.Ms abajo hay 2 pesaas que dicen "SQLite" y "MySQL". Seleccionamos MySQL y se va a desplegar un menu con el usuario de la base de datos, la password, el nombre de la base de datos y localhost. Para esto creamos un usuario en MySQL as que completamos los campos segun corresponda, salvo localhost que lo dejan como est.

Listo! Ya debera aparecer la interfaz de la cloud.

Es una imgen de google...

Y cmo hago para acceder desde afuera?

Entren a la configuracin de su router y habiliten NAT al puerto 80. Ya pueden acceder por IP desde afuera, peeeeeeero como las IP de los routers cambian habra que tener un DNS para poder encuentrar nuestro server por la red. Para eso existeno-ip.com, crea un nombre de dominio y lo mantiene aunque nuestra IP cambie. Regstrense y sigan las instrucciones, no es para nada dificil. Lo unico que tienen que hacer es descargar el .tar.gz para linux, descomprimirlo y hacerle make & make install

En la pgina apps.owncloud.com hay ms aplicaciones para descargar e instalarlas es una pavada. Se baja el paquete, se unzipea y se tira en /var/www/owcloud/apps.

Espero que les sirva, puede parecer complicado pero no lo es. En el mbito laboral sirve mucho, actualmente lo implemente y es una aplicacin sencilla y estable.