martes, 12 de octubre de 2021

14 razones por la cual un administrador de sistemas perezoso es un buen administrador.

 

14 razones por la cual un administrador de sistemas perezoso es un buen administrador.

El trabajo de los administradores de sistemas no es siempre visible para otros grupos de TI o para los usuarios finales. En su mayoría, miran a los administradores de sistemas y se preguntan por qué parecen no estar haciendo nada, solo perdiendo el tiempo.

Si ves a un administrador de sistemas que siempre está corriendo, apagando fuegos y lidiando con problemas en ambientes de producción, puede pensar que está trabajando muy duro y realmente está haciendo bien su trabajo, pero en realidad, lo menos que está haciendo es precisamente lo que debe hacer. Al contrario, si ve a un administrador de sistemas (Sysadmin de Unix/Linux, DBA, Sysadmin de Windows o hasta administradores de red), que no parece estar haciendo mucho en la oficina que usted pueda ver, siempre parece relajado y no parece que tenga algún trabajo visible, puede estar completamente seguro que si está haciendo su trabajo eficientemente.

Las siguientes 14 razones por las que un administrador de sistemas perezoso es el mejor administrador de sistemas.

Razón 1 - Demostrar que es el jefe: La razón principal por la que el administrador de sistemas perezoso es el mejor administrador de sistemas es por su actitud. Ellos ven las máquinas de manera un poco diferente a como las ven otros departamentos de TI. Existe una diferencia entre los administradores de sistemas y los desarrolladores. Los desarrolladores creen que están aquí para servir a las maquinas desarrollando código. No hay nada de malo en ese enfoque, ya que los desarrolladores se divierten mucho codificando cualquier software. Los administradores de sistemas piensan de otra manera, creen que las maquinas están ahí para servirles. Todo lo que tienen que hacer es alimentar la maquina con trabajo y mantenerla feliz y dejar que la maquina haga todo el trabajo pesado mientras ellos pueden relajarse y ser perezosos. El primer paso para ser un administrador de sistemas perezoso es un ligero cambio de actitud y hacerle saber a la máquina que usted es el jefe.

Razón 2 - Automatizar todo: Ser perezoso significa ser inteligente desde este punto de vista. Un administrador de sistemas debe ser un maestro en los lenguajes de scripting (bash, awk, set, egrep, PowerShell, etc.) y cada vez que requiere realizar un trabajo y existe una remota posibilidad de que pueda utilizarse en un futuro, lo documenta (el por qué se hizo y para que funciona) y crea un proceso automatizado. Cuando lo necesite hacer de nuevo, solo busca el SCRIPT, ajustarlo y ejecutarlo. Esto evita en el futuro pensar mucho para la solución de un problema que se ha presentado antes y tener una solución a la mano. Ya con esto puede volver a ser perezoso.

Razón 3 - Respaldo de todo: Ser perezoso significa tener respaldo hasta del respaldo. Un administrador de sistemas sabe que para tener tiempo de ser perezoso solo debe esforzarse un poco para crear procesos de respaldos automatizados y sobre todo que la recuperación de la información sea lo más fácil posible. Estos respaldos deben hacerse a los sistemas, aplicaciones críticas, bases de datos y hasta de los servidores completos cuando la tecnología lo permita. Siempre es bueno tener más de un respaldo y al menos una ubicación de respaldo externa que puede ser en la nube. Cuando ocurra un problema no tiene que estresarse ni sudar, solo restaure de la copia de seguridad lo que necesite y seguirá jugando su partida de solitario. Esta es una de las reglas que un administrador de sistemas JAMAS debe romper que es respaldar todo, hasta antes de aplicar cualquier cambio.

Razón 4 - Crear un plan de recuperación de desastres: Cuando todo vaya bien, se necesita algo de tiempo para crear un plan de recuperación ante desastres (DRP o Disaster-Recovery Plan). Hay que tener más de un plan diseñado para cada posible situación, como falla de disco, falla de servidor, falla de un equipo de red (Switch, Router, Access Point, entre otros) o hasta un incendio. Cuando las cosas van realmente mal, solo debe aplicar el plan de recuperación que necesite rápidamente y así volver a la normalidad, ya cuando todo esté funcionando puede volver a ser perezoso.

Razón 5 - Alta disponibilidad: A los administradores de sistemas perezosos no les gusta que le interrumpan el sueño por una falla en un servidor, de salir corriendo a la mitad de la noche a la oficina solo para resetear un equipo. Esta redundancia es tanto para hardware como software. Para que esto no ocurra, se debe crear sistemas con tolerancia a fallos, balanceos de carga, considerando factores como discos en RAID, dos o más tarjetas de red, dos o más servidores que cubran un mismo servicio, tener replicaciones de datos y de ser posible ubicaciones físicas diferentes. Ya cuando se despierte en la mañana y vea las notificaciones, solo debe salir a realizar la reparación después de tomarse un café en la comodidad de la casa.

Razón 6 - Disponibilidad de crecer: Un Sysadmin perezoso sabe que no puede permitirse que los sistemas estén funcionando a plena capacidad. Siempre se debe tener espacio suficiente para un crecimiento inesperado, debe tener CPU, RAM y Disco duro disponible, así cuando se requiera no sufrirá pensando en que cuando le pidan un requerimiento su plataforma colapse por quedarse sin recursos. Es recomendable expandir la infraestructura cuando la ocupación de los recursos lo requiera, aunque eso también depende del modelo de negocio y de la infraestructura tecnológica actual. Hacer este tipo de análisis, determinar el hardware a comprar, análisis de cargas, armar el plan de compras y donde comprar tomará solo unos minutos.  Tener esta previsión te ahorrará trabajos innecesarios y continuar tu descanso laboral.

Razón 7 - Ser Proactivo: Un administrador de sistemas perezoso sabe que debe adelantarse a los hechos y ser proactivo en vez de ser reactivo. Se debe anticipar a problemas, fallas, requerimientos, reparaciones y crecimiento en todos los escenarios, como desde una falla en un disco duro hasta un incendio en el Datacenter. Cuando tenga algo de tiempo libre se puede dedicar a optimizar tareas o procesos, actualizar la plataforma, investigar de nuevas tecnologías, evaluar el stock de partes, gestionar respaldos externos y hasta la gestión de las compras de sus requerimientos tecnológicos para un crecimiento. Con todo esto bien estructurado le tomará un mínimo esfuerzo y podrá tener tiempo se seguir siendo perezoso.

Razón 8 - Atajos de teclado: Un administrador de sistemas perezoso debe conocer los atajos o combinaciones de teclas para las aplicaciones favoritas. Con este conocimiento, estará dedicando el menor tiempo posible en editores como nano, vim o cualquiera de su preferencia para crear y modificar cualquier archivo, también estos atajos pueden ser en procesadores de palabras, sistema operativo o hasta solo mandar a imprimir y así poder ser perezoso rápidamente.

Razón 9 - Experto en la línea de comandos o CLI: Un administrador de sistemas es un amante de la línea de comandos. Esto aplica para un DBA, administrador de servidores, administrador de red, etc. Si vez a un administrador de sistemas utilizando un programa con versión grafica sabiendo que puede hacer lo mismo por comandos sabrás que no es un administrador de sistemas perezoso. Un administrador de sistemas ama la línea de comandos, primero por la rapidez de la ejecución y por otro es la sensación de poder sobre la máquina. Además, sabe específicamente que es lo que hay que hacer y cuál será el resultado. Por la línea de comandos se puede filtrar cualquier información, buscar lo que necesites, ejecutar procesos enormes con el menor consumo de recursos, ver LOGS o registros de eventos filtrando lo necesario. Con una interfaz GUI estas a merced de la aplicación por lo cual no podrás aplicar parámetros ni ver con detalle las salidas de las ejecuciones de los comandos, además de que el tiempo de respuesta es más lento. Así que para ser perezoso lo mejor es ser un experto en la línea de comandos.

Razón 10 - Aprender de los errores: A un administrador de sistemas perezoso no le gusta cometer el mismo error dos veces. Una vez solucionado el problema se sienta a pensar en que fue lo que pasó, determinar los orígenes de la falla y ajustar lo que sea necesario para que no vuelva a ocurrir. A un administrador de sistemas le gusta trabajar solo una vez en un problema y hace lo necesario para que no se repita, odia trabajar en problemas repetidos y pensar mucho en cómo solucionarlo cuando ya lo hizo antes. Ya tomando esa previsión puede volver a ser perezoso.

Razón 11 - Aprender nuevas tecnologías: La evolución en la informática es enorme, cada día salen nuevas tecnologías y soluciones que pueden mejorar el trabajo ahorrando tiempo y costos con pequeñas inversiones. Un administrador de sistemas perezoso se toma el tiempo de revisar nuevas tecnologías, evaluar cual es la más conveniente, aplicar un mínimo esfuerzo en realizar pruebas y evaluar sus beneficios. Si le es factible a su infraestructura tecnológica la aprende lo más que pueda, lo prueba de mil y un maneras y cuando compruebe todo lo implementa y con esto tiene mayor tiempo de ser perezoso.

Razón 12 - Documentar todo: Solo los mejores administradores de sistemas perezosos hacen esto. Nunca verás a un administrador de sistemas ser molestado en vacaciones o atender una llamada fuera del horario de trabajo solo para una consulta. Además de esto, un administrador de sistemas lo documenta todo porque hasta un detalle de importancia se puede olvidar. Para evitar pensar mucho, solo debe escribir todo, algo así como un HowTo for Dummies de tal manera que cualquier persona con leerlo pueda entender todo.

Razón 13 – Tener actualizada la infraestructura tecnológica: Este punto se refiere tanto a hardware como a software. En cuanto a hardware, tener equipos que estén vigente en el mercado es lo más recomendable, con las ultimas versiones de firmware y de ser posible con garantías extendidas por parte del fabricante. Si llegara a dañarse un servidor y se encuentra dentro de la garantía, no te queda más que sentarte a disfrutar de ver como el proveedor corre buscando la parte dañada y tu ves sentado como trabajan para ti. Mantener en uso equipos descontinuados dificulta el soporte y la compra de partes de reemplazo. En cuanto al software, lo recomendable es tener los equipos actualizados con los últimos parches de seguridad, sean virtualizados o físicos, tanto en servidores como equipos de comunicaciones para evitar intrusiones no deseadas. Con todo esto al día, dará mas tiempo de ser perezoso.

Razón 14 – Restringir todo: Una manera de ser perezoso es evitar accesos no autorizados, usuarios no deseados, ataques maliciosos y hasta ser víctima de hackers. Para que nada de esto ocurra es recomendable aplicar políticas de seguridad restrictivas, permitiendo solo el acceso necesario. Inclusive, muchas veces es mejor pedir perdón que pedir permiso al momento de restringir, aplicando parches de seguridad, reinicio de servidores de acuerdo a una programación previa y actualizaciones forzadas en las estaciones de trabajo. Una brecha de seguridad es suficiente para ocasionar grandes dolores de cabeza y un administrador de sistemas debe es pensar en ser perezoso, así que lo mejor que puede hacer es tener todo el software actualizado.

Ahora comprenderás por qué ser un administrador de sistemas perezoso no es cosa fácil, es muchísimo trabajo duro previo, así que cuando vea a un administrador de sistemas viendo TikTok, jugando solitario o simplemente tomando café relajado mientras todo funciona perfectamente recuerda TODO el trabajo anterior para llegar a ese nivel de tranquilidad.

Fuentes:

https://www.thegeekstuff.com/2011/07/lazy-sysadmin/ 

https://phenobarbital.wordpress.com/2012/07/23/las-12-razones-por-las-que-un-administrador-de-sistemas-perezoso-es-un-buen-administrador/

jueves, 2 de abril de 2020

Activar el debug de PHP en Linux Debian Buster, utilizando el IDE NETBEANS

Activar el DEBUG de PHP en Linux Debian 10 Buster utilizando el IDE NETBEANS.

Actualizando una entrada anterior y sin tantas explicaciones iniciamos la instalación de los paquetes basicos para poder instalar el NetBeans y el PHP. Necesitamos el open-jdk version 11 y para ello necesitamos los repositorios backports de Debian Buster. Los comandos que se necesitan ejecutar siempre debe ser como root.

echo 'deb http://ftp.debian.org/debian buster-backports main' >> /etc/apt/sources.list
apt update
apt install openjdk-11-jdk

Para saber si el java se encuentra bien instalado, ejecutamos el siguiente comando:

java --version

Mostrará un mensaje como este:

openjdk 11.0.6 2020-01-14
OpenJDK Runtime Environment (build 11.0.6+10-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.6+10-post-Debian-1deb10u1, mixed mode, sharing)


Luego de esto, debemos instalar el Apache2 y el PHP en nuestro equipo:

apt install -y php libapache2-mod-php apache2

Ahora, instalamos la librería que necesitamos para poder hacer el debug:

apt install -y php-xdebug 

Una vez instalado, debemos configurar el siguiente archivo y colocar los parámetros que se encuentran entre las dos líneas:

nano /etc/php/7.3/mods-available/xdebug.ini

------------------------------------------------------------------------------
zend_extension=xdebug.so
xdebug.profiler_enable=1
xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_handler="dbgp"
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.idekey=netbeans-xdebug
------------------------------------------------------------------------------

Para que los cambios tengan efecto, reiniciamos el servicio de apache

service apache2 restart

Para probar que el modulo se encuentra correctamente instalado, ejecutamos el comando siguiente en la consola como root:

php -m

Al final, debe mostrar lo siguiente:

[Zend Modules]
Xdebug

Si muestra esto, habremos instalado el modulo XDEBUG correctamente.

Si deseas ver todas las opciones de esta libreria, solo ejecutas el comando a continuación y te detallará todo:

php -i | grep xdebug

Tambien puedes ver esto en desde el navegador web, ejecutando en un archivo PHP la función phpinfo().

Ahora, descargamos e instalamos el NetBeans.


NOTA: Para este articulo, utilizamos la version 11.3, pero puede ser cualquier IDE, versión 11.X.

Una vez descargado, como usuario limitado entramos en la carpeta donde se descargó el programa, le colocamos el atributo de ejecución y como usuario limitado iniciamos la instalación:

cd /home/sysadmin/Descargas
chmod +x Apache-NetBeans-11.3-bin-linux-x64.sh
sh Apache-NetBeans-11.3-bin-linux-x64.sh

La instalación es muy intuitiva, solo sigue el asistente de instalación:





Despues de completar la instalación, iniciamos la aplicación y entramos en la ruta Tools > Options, buscamos el menu de PHP y en la pestaña DEBUGGING colocamos los siguientes parametros:



Debugger port:                   9000
Session-ID:                        netbeans-xdebug
Maximun Data Lenght:      2096

Luego de esto, simplemente buscamos el código, lo abrimos con el NetBeans y ejecutamos la depuración paso a paso, en este IDE es con CTRL + F5. Nos mostrará una pantalla como se muestra a continuación:


Despues, puedes ejecutar paso a paso, ejecutar subprocesos paso a paso o saltarlos, en fin, un montón de posibilidades.

Espero que este artículo este bien explicado.

Feliz desarrollo!!!

miércoles, 1 de abril de 2020

Instalación de un Servidor en Linux Debian 10 (Buster) - Instalación Mínima

Instalación Servidor Linux Debian 10 (BUSTER)

Esta guía de instalación de un servidor en Gnu/Linux distribución Debian version 10 (nombre código Buster). Esta instalación servirá para cualquier servicio en el futuro.

Video en Youtube:

Este video muestra el proceso de instalación de manera visual.


Ahora explicamos paso a paso con capturas de pantalla la instalación realizada.

Hardware:

  • Intel i5 o equivalente.
  • 8GB de RAM.
  • HDD de 500GB.
Inicio de la instalación:

Lo primero es descargar el archivo .ISO de la versión NetInstall desde el portal oficial debian.org y la quemamos en un CD, DVD o la copiamos a un pendrive utilizando herramientas como unetbootin. Procedemos a bootear en el equipo de acuerdo a nuestro medio de instalación. La primera pantalla que nos sale seleccionamos "Install" que es la instalación modo texto.

NOTA: El modo de instalación no varía con la instalación en sí, al final el proceso de instalación quedará el mismo sistema operativo.

Ahora, seleccionamos el idioma (Español):

Posteriormente, seleccionamos el país donde se va a encontrar la instalación. En este caso, seleccionamos Argentina.

Luego, seleccionamos la distribución del teclado, en este caso es latinoamericano:

NOTA: El teclado español es cuando tiene el @ (arroba) en el número 2 y latinoamericano cuando tiene el @ en la letra Q.

Posterior colocaremos los datos de red de manera manual. Lo primero es la dirección IP:

Máscara de red:

Puerta de enlace o gateway:

Servidores DNS:

Colocamos el nombre del servidor:

Y colocamos el dominio:

Ahora, colocamos la contraseña del usuario root y la confirmamos:

Creamos el usuario normal y establecemos su contraseña:


Ahora, particionaremos el disco, seleccionamos manual:

Luego, creamos la tabla de particiones, seleccionamos la pantalla donde nos indica el disco y presionamos ENTER:

Seguimos las instrucciones que nos indica el asistente:

Ahora, creamos el particionado de la siguiente manera:

/            50GB
/tmp        5GB
/srv     482GB

NOTA 1: No se crea la partición SWAP (partición de intercambio) ya que no es necesario para servidores, siempre y cuando tenga al menos 8GB de RAM.

NOTA 2: Para servidores WEB, la distribución seria la misma, salvo que la partición /srv es cambiada por la partición /var.

La particiones quedarían de la siguiente manera:


Finalizamos el asistente de particionado. El instalador nos advertirá que falta la partición de intercambio. Seleccionamos NO y continuamos:

Ahora, confirmamos los cambios en el disco:

Luego de esto, el instalador solicitará un repositorio en el cual va a descargar los paquetes necesarios para actualizar o instalar programas. Seleccionamos "introducir manualmente" y colocamos el repositorio http://deb.debian.org/debian/




Continuando con la instalación y despues de realizar algunas descargas, el instalador solicitará la configuración del popularity-contest, el cual en mi caso selecciono que no, aunque queda al criterio del usuario.

Ya el servidor base se encuentra instalado. En este paso, es donde seleccionamos los paquetes adicionales a instalar. Solamente dejaremos los siguientes items:

  • Servidor ssh
  • Utilidades estandar del sistema.


Despues de descargar los paquetes e instalarlos, nos solicitará el cargador de arranque GRUB del disco, el cual será en el registro principal de arranque:



Luego de este paso, la instalación quedará completa. Queda es retirar el medio de instalación y reiniciar.

Luego de reiniciar, nos debe aparecer una pantalla como esta:


Ya ahora queda es instalar los servicios que se requieran el cual serán explicados en otra entrega.

Hasta la próxima!!!

lunes, 17 de julio de 2017

Activar el debug de PHP en Linux Debian Jessie, utilizando el IDE NETBEANS

Para esta ocasión, mi artículo mostrará la manera de realizar una configuración de un apache y del PHP para que puedas ejecutar paso a paso mostrando las variables en tiempo real, tal como programar en windows con los IDE para Microsoft Framework.

Muchas veces, para realizar desarrollos en PHP es difícil detectar un error de lógica o una mala sintaxis en códigos muy complejos, es por ello que se recurre a los llamados "policías" los cuales no es mas que crear errores controlados, impresiones en pantalla o cualquier otro método que pueda realizar interrupciones en la ejecución de un código para ver el trabajo real del sistema, es por ello que muchas veces el desarrollo en PHP para muchos se hace cuesta arriba.

1.- Instalamos los paquetes que necesitamos:

apt install php5 libapache2-mod-php5 apache2 -y

Instalamos el paquete para realizar el debugging de PHP:

apt install php5-xdebug -y

Una vez instalado, debemos configurar el siguiente archivo y colocar los parámetros que se encuentran entre las dos líneas:

nano /etc/php5/mods-available/xdebug.ini
------------------------------------------------------------------------------
xdebug.profiler_enable=1
xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_handler="dbgp"
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.idekey=netbeans-xdebug
------------------------------------------------------------------------------

Para que este cambio surta efecto debemos reiniciar el servicio de Apache

/etc/init.d/apache2 restart

2.- Ahora configuraremos el IDE (En este caso es NetBeans 8.2)

Buscamos la siguiente Ruta:

Herramientas > Opciones > PHP > Debugging

Las variables xdebug.remote_port y xdebug.idekey la colocamos en el IDE como configuramos en el archivo del xdebug.  Veamos la imagen a continuación:


Una vez realizada la configuración, solamente debemos ir al menu “Depurar” y utilicemos las opciones que allí nos indiquen de acuerdo al criterio necesario.

Ahora les muestro como es el debugging en tiempo de ejecución:



Se puede observar en la pestaña de abajo del IDE como muestra las variables cargadas en RAM y el tipo de las mismas. Adicionalmente, colocas el cursor sobre una variable que ya ha pasado por el punto de ejecución y te indicará el valor de la misma.

NOTA: Pueden utilizar cualquier IDE de su preferencia, solo deben recordar los parametros indicados en el archivo xdebug.ini.

Cuando termina de ejecutar el bloque de instrucciones, el navegador muestra el resultado del código ejecutado.


Hasta una próxima entrega.

Cómo escoger el Mirror mas Rápido. Uso del comando netselect-apt

Uno de los grandes problemas que se presentan al momento de realizar cualquier proceso de instalación o al realizar las replicas es la de escoger un mirror el cual represente menos congestión o latencia, es por ello que hoy explico el comando netselect-apt.

Este comando se encarga de realizar un análisis de los mirror que se encuentren en la nube y nos mostrará cual es el que presenta menos latencia. Este comando descargará un listado de los servidores activos de la siguiente dirección:

http://www.debian.org/mirror/mirrors_full

El comando es muy sencillo.

netselect-apt -a amd64 -n -o mirror_mas_rapido.txt -t 10

Explicamos los parámetros:

-a = Representa las arquitecturas a evaluar, en el caso que se omita, el entenderá que son todas las arquitecturas.

-n = incluye los paquetes de la rama non-free

-o = genera un archivo de salida el cual en este ejemplo es mirror_mas_rapido.txt

-t = es la cantidad de servidores a probar, en mi caso coloqué 10

-f = que también realice pruebas de transferencia vía FTP

-c = Indica el país a analizar (Venezuela, Brazil, France, entre otros). En el caso que deseen buscar el de un país especifico.

También puede utilizarse sin parámetros, es decir:

netselect-apt

Este comando solo creará un archivo sources.list en la ubicación del directorio actual.

Es todo por ahora.

Hasta la proxima entrega!!!

Instalación de un servidor mirror basado en Debian Jessie

En una red corporativa, es necesario tener un mirror local para evitar trafico innecesario al Internet, optimizamos el tiempo de instalación y podemos realizar procesos de actualización periódica en las estaciones de trabajo. En mi caso, cuento con servidores y estaciones de trabajo en Debian 8 (Jessie) y utilizo solamente arquitectura de 64 bits (el equipo mas viejo que poseo es un Intel Dual Core con 2 GB de RAM y soporta instrucciones de 64 bits).

El procedimiento es el que describiré a continuación.

En primer lugar, tener un equipo con suficiente almacenamiento de disco (al menos 160GB). Si se observa que es necesario tener mas RAM o un mejor equipo ya depende del requerimiento y la concurrencia que exista en la empresa.

Instalamos Debian Jessie (version actual 8.8) con una instalación minima. El particionado que utilicé fue el siguiente:

/                 20GB
swap           1GB
/var         138GB (lo que queda)

Procedemos a instalar los paquetes necesarios:

apt install -y debmirror apache2 php5 libapache2-mod-php5

Una vez completado ejecutamos los comandos para poder realizar la descarga:

Descargamos con este comando los paquetes estables, seguridad y Backports:

debmirror -debug -progres --no-source --verbose --getcontents --diff=none --no-check-gpg --ignore-release-gpg --ignore-missing-release --i18n -a amd64 -s main,contrib,non-free -h ftp.debian.org -d jessie,jessie-updates,jessie-backports -e http -r /debian /var/www/html/debian

Este comando tomará su tiempo al momento de realizar la primera replica. Una vez se encuentra descargada solamente se encargará de actualizar las diferencias existentes entre el servidor de la nube y el local.

Ahora bien, para poder realizar una actualización del mirror periódica, se puede realizar un script de shell para que el proceso pueda automatizarse. En mi caso, realizo un proceso de registro de eventos para llevar un mejor control. Ejecutamos el siguiente comando para crear el script:

nano /root/mirror.sh

Y copiamos el siguiente contenido:
------------------------------------------------------------------------------
#!/bin/bash
clear
echo “########################################################” >> /root/registro_mirror.log
#debian jessie
echo “Inicio de descarga de Mirror, distribucion Debian 8 estable, Updates y Backports (solo 64 bits) – ” `date`>> /var/www/html/logs/registro_mirror.log
debmirror -debug -progres --no-source --verbose --getcontents –--=none --no-check-gpg --ignore-release-gpg -ignore-missing-release --i18n -a amd64 -s main,contrib,non-free -h ftp.debian.org -d jessie,jessie-updates,jessie-backports -e http -r /debian /var/www/html/debian
echo “Fin de descarga de Mirror, distribucion Debian 8 estable, Updates y Backports (solo 64 bits) – ” `date`>>/var/www/html/logs/registro_mirror.log
echo “Reiniciando el Servidor -  ” `date`>>/var/www/html/logs/registro_mirror.log
reboot
------------------------------------------------------------------------------


Ahora procedemos a automatizar el proceso de actualización, colocando la siguiente línea en el crontab (programador de tareas).

nano /etc/crontab

Agregamos estas lineas al final

#Tarea mirror debian
00 22 * * * root  -c "sh /root/mirror.sh"

Con este comando, la tarea se ejecutará todos los días a las 10:00 PM y el proceso de actualización dependerá de las diferencias existentes entre el mirror local y el de la nube.

Para poder acceder desde un equipo cualquiera y evitar errores de transcripción de los datos, he diseñado este index.php para que pueda ser dinamico. A su vez, muestra información referente al equipo desde el cual nos estamos conectando. 


Ahora el fuente del index.php

nano /var/www/html/index.php


------------------------------------------------------------------------------
<?php
print '<html><head><title>Mirror Local</title></head><body>';
print '<h1>Mirror Local </h1>';
print '<p>#mirror local Debian 8<br>';
print 'deb [arch=amd64] http://mirror/debian/ jessie main contrib non-free<br>';
print 'deb [arch=amd64] http://mirror/debian/ jessie-updates main contrib non-free<br>';
print 'deb [arch=amd64] http://mirror/debian/ jessie-backports main contrib non-free<br></p>';
print '<br>';
print '<p>Tu IP es: <b>'.$_SERVER["REMOTE_ADDR"].'</b></p>';
print '<br>';
print '<p>El IP del servidor es: '.$_SERVER["SERVER_ADDR"].'</p>';
?>



------------------------------------------------------------------------------

Debemos borrar el archivo index.html con el siguiente comando:

rm /var/www/html/index.html

Para poder acceder al mirror, solamente debemos acceder con la siguiente dirección:

http://IP_MIRROR/

NOTA: Se observa que en este caso, en el repositorio se hace mención a la arquitectura que posee el repositorio, la cual se establece con el parámetro [arch=amd64]. Si se desea  agregar otras arquitecturas, se debe cambiar en el SCRIPT el siguiente parámetro: -a i386,amd64 para agregar la arquitectura i386. Cabe mencionar que el tamaño del mirror se incrementará dramaticamente.

jueves, 8 de marzo de 2012

Instalación de un servidor Web en Debian Lenny (Apache2 + php5)


Antes que nada, deben tener una instalación básica de un Servidor en Debian 5 (Lenny), para ello pueden consultar mi artículo haciendo clic aqui.

Primero debemos ingresar a la consola del Debian logueandonos en el equipo ó remotamente utilizando putty.

En la consola ejecutamos el siguiente comando:

apt-get install apache2 libapache2-mod-php5 php5

Ya con este comando el apt-get se encargará de instalar las dependencias necesarias para ejecutar el servidor web.

ahora, configuramos el archivo php.ini, utilizamos el siguiente comando:

nano /etc/php5/apache2/php.ini

Los campos a cambiar son los siguientes (valores en rojo):

short_open_tag = Off
max_execution_time = 0
memory_limit = 256M                  <=== debe ser minimo 128MB y debe estar entre el 25% y 50% 
                                                                 de la RAM del servidor
 register_globals = Off                   <=== En algunos casos puede estar en On
upload_max_filesize = 4M            <=== En mi caso requiero archivos un poco mas grandes, eso 
                                                                 es de acuerdo al criterio del administrador del servidor
date.timezone = America/Caracas <== Zona horaria, necesario para cronologia de fechas y horas
                                                               (deben descomentar la linea quitandole el punto y coma)

Una vez cambiado los valores guardamos y cerramos el archivo. Despues para que los cambios tengan efecto debemos reiniciar el servicio de Apache, ejecutamos el siguiente comando:


service apache2 restart

Ahora, para probar que el php esta funcionando correctamente con el apache ejecutamos cualquier editor de texto (notepad por ejemplo) y escribimos las siguientes lineas:

<?php

phpinfo();


?>


guardamos el archivo con el nombre phpinfo.php y lo colocamos en la carpeta /var/www/

Ahora, en un navegador cualquiera buscamos la siguiente dirección:

http://ip_del_servidor/phpinfo.php

En mi caso, seria la siguiente dirección:

http://172.20.21.53/phpinfo.php

Si se muestra la siguiente ventana significa que el servidor esta listo para ejecutar php