Crea tu propio Cloud Server

Iniciado por ANTRAX, Diciembre 11, 2014, 08:22:10 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

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.



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 desempeño 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 Debián, para otras distros los cambios son mínimos. Lo probé también con CentOS, OpenSUSE y Slacky y corren muy bien.

Si lo van a hacer en una máquina a parte, comienzen desde acá, si lo van a hacer en la máquina que usan todos los días, lo que pueden hacer si quieren es una partición para alojar los archivos.

Distro: Debian 7.0 Wheezy Netinstall (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Aplicación de la cloud: OwnCloud (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)
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 estática así ya queda configurado. No es necesario agregar ahora un user común.

En las particiones, el mapeo que yo elegí fue el siguiente:

500mb a /boot
15GB a /
2GB al swap
Y el resto del espacio libre a /home

¿Por qué así?
/boot: Teniendo boot en una partición, 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 partición de root, y si por esas casualidades la partición /boot se vuela,, ejecutando una consola de rescate puede recuperarse el sistema facilmente.

/: Al tener la partición 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 mayoría de los archivos del usuario común por ende es designada la partición más grande y también nos va a servir como punto de montaje para los archivos que estén en la cloud.

Swap: es el área de intercambio entre la memoria virtual y física. Cuando el sistema se queda sin RAM, escribe los datos en esta área. Al rebootear se pierden por defecto, el tamaño es de acuerdo a la RAM instalada.

2. Seleccionando Software
Configuren 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 gráfico, pero con los server NO-VA.

3. Terminando la instalación
Terminen la instalación, 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 fácil, hay que añadir un repositorio de openSUSE. Haganlo de la siguiente manera:

Código: bash
# 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 página 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 automáticamente

4. La base de datos:

Se puede usar SQLite, yo preferí usar MySQL. Para ello hay que hacer lo siguiente:

Código: mysql
# 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, después creamos un usuario común 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. Módulos 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

Código: bash
# 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 2M
post_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 límite de posteo y los más importante el límite 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 513M
php_value post_max_size 513M
php_value memory_limit 512M

Cambiamos todos los valores por 1024M

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 eth0
iface eth0 inet static
address "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 están por ssh es probable que los saque y se tengan que volver a loguear, si no sigan

Ahora si la configuración del cloud:

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

Les va a pedir de crear una cuenta de administrador y abajo figura "Configración 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/cloud

Entonces volvemos al navegador y ponemos /home/cloud como directorio de almacentamiento.
Más abajo hay 2 pesañas 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 debería aparecer la interfaz de la cloud.


¿Y cómo hago para acceder desde afuera?

Entren a la configuración de su router y habiliten NAT al puerto 80. Ya pueden acceder por IP desde afuera, peeeeeeero como las IP de los routers cambian habría que tener un DNS para poder encuentrar nuestro server por la red. Para eso existe No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, 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 página No tienes permitido ver los links. Registrarse o Entrar a mi cuenta hay más aplicaciones para descargar e instalarlas es una pavada. Se baja el paquete, se unzipea y se tira en /var/www/owcloud/apps.

Autor: fer



Octubre 07, 2015, 12:59:42 PM #2 Ultima modificación: Enero 13, 2016, 07:06:52 AM por swimdel
Crees que necesite un servidor cloud para hostear las imagenes de esta web que estoy iniciando?
Esta es la web --> No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Crees que necesite un servidor cloud para hostear las imagenes de esta web que estoy iniciando?
Esta es la web --> No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Eso depende de ti, wordpress maneja más o menos bien las imágenes, necesario no es.

saludos.



Ahh,, @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta interesante, me ha servido para algo más que saber como crear una nube propia :D . no se imagina todo lo que he hecho, pero bueno se aprende mucho  8)
"Eso es lo bueno de internet. De que sirve internet si chateas con tus vecinos??? para eso te sacas unas sillas al fresco y hablais y jugais a las cartas". @windux