servidores

Cómo hacer un píxel de conversión

2017-03-24 - Categorías: General
Pixel de conversión, chocolate cookie

Imagina que contratas a una persona para que te haga publicidad en varias webs. Llegas a un acuerdo de darle un monto por cada visita que llega a través de la publicidad que te hace. O un porcentaje por venta que llega de su web. Pero ¿cómo saber si este comprador que ha llegado a tu web viene de haber visto la publicidad de esta persona que te publicita?

Esto se puede hacer con los llamados píxeles de conversión. Simple y llanamente son páginas web que estan en el servidor de tu negocio que se dedican a enviar cookies, incrustándose en las páginas que te hacen publicidad mediante iframes o llamadas de Javascript. Entonces, si alguno de dichos visitantes llega a tu negocio con una de esas cookies, ya sabes que ha visitado la web que te está haciendo publicidad y le darás las gracias con razón 😉

Continuar leyendo..

AWS OpsWorks: automatizando la creación de servidores

2016-10-14 - Categorías: Amazon Web Services / General / GNU/Linux / Magento / Symfony
OpsWorks Logo

Las nubes por definición son sistemas informáticos que crecen o decrecen según la necesidad. Son conjuntos de servidores/servicios que se adaptan a la demanda. Con todo esto, llegamos a una de las cosas más interesantes de AWS, el auto-escalado o la tolerancia a fallos, además de la personalización de los servidores. Podemos controlar la carga de los servidores que haya. Además automatizar el arranque y parada a ciertas horas de algunos de los servidores. O podemos duplicar los sistemas para evitar los ‘single point of failure como una casa’.

En OpsWorks tenemos herramientas muy interesantes relacionadas con esto. Algo rústicas, quizá clásicas dirían algunos. Pero gracias a ello, sin límites en la flexibilidad para configurar. Y si lo llevamos al extremo, este mismo sistema nos puede servir para automatizar la creación de nuestros servidores con herramientas como Chef y Kitchen. Todo esto y mucho más es lo que se puede hacer con el clásico OpsWorks.

Primero tendremos que ver qué son las AMIs. Cómo crear una manualmente o automáticamente. Y finalmente veremos cómo se usan, para hacernos una buena idea de qué podemos hacer en OpsWorks, y si es o no lo que necesitamos. Quizá es interesante ir a Docker con el EC2 Container Service o a CloudFormation, pero esto son otros temas..

No voy a entrar al detalle de cómo hacer cada cosa, no terminaría nunca. Así que si buscas una guía general para enfrentar después cada detalle poco a poco, este es tu post.

Continuar leyendo..

AWS: una buena infraestructura no es suficiente, pero sí necesaria

2016-10-03 - Categorías: Amazon Web Services / General / SEO
Logo de Amazon Web Services

Ya puedes tener la estrategia de marketing mejor del mundo, la mejor campaña publicitaria, los mejores anuncios. Unas publicaciones excelentes en blogs, una gran inversión en SEM, o un SEO de contenidos inmejorable. Que si la infraestructura informática subyacente no acompaña de poco servirá. Aquí es donde entra el estar o no en la nube. Y nunca mejor dicho, poner tu aplicación web por las nubes.

Continuar leyendo..

Actualizar Ubuntu Server 14.04 LTS a 16.04 LTS sin entorno de escritorio

2016-06-26 - Categorías: GNU/Linux
Ubuntu wallpaper

Ya tenemos entre nostros Ubuntu 16.04 LTS, la versión con soporte para mucho tiempo de Ubuntu más nueva hasta la fecha. Me instalé en los ordenadores de escritorio la actualización que me los pasó de la versión 14.04 LTS a la 16.04 LTS sin ningún problema.

Ahora disfruto de todas las novedades y mejoras que trae Ubuntu 16. El problema me ha llegado cuando he querido actualizar un servidor de Ubuntu 14 al 16. Resulta que en las versiones de escritorio de Ubuntu tenemos una sencilla interfaz para actualizar el sistema, mientras que en los servidores no. En las versiones de escritorio nos sale prácticamente todos los días las nuevas actualizaciones que tenemos disponibles, se pueden instalar automáticamente o seguir las instrucciones. Cuando ha salido la nueva versión de Ubuntuo 16.04 LTS nos salió junto con las actualizaciones la actualización a Ubuntu 16.04, simplemente seguimos las instrucciones y a correr.

Continuar leyendo..

Magento: primeras incursiones, recorriendo los productos

2016-06-20 - Categorías: Magento / PHP
Logo de Magento

Este estupendo CMS orientado a la venta online de productos hace las delicias de los vendedores, de igual modo de los maquetadores, y cómo no, también de los programadores.

Como analista programador llevaba ya un tiempo queriendo meterle mano a las entrañas de Magento. Así que poco a poco, he ido cogiendo los manuales para el usuario, luego el del diseñador, y ahora tengo entre manos el del programador. Ahora según van surgiendo las necesidades voy haciendo incursiones cada vez más a fondo en el código fuente de esta humongous web application.

La verdad es que lo estoy disfrutando porque Magento está desarrollado con una buena estructura y sobre un gran framework de desarrollo PHP, el Zend Framework. Incorporando técnicas de programación que le dan una gran flexibilidad sin añadir demasiada complejidad.

Continuar leyendo..

Descargar un fichero vía web y enviarlo por email con PHP

2016-06-06 - Categorías: GNU/Linux / PHP
Logo de PHP

Este es otro pequeño how to para hacer una tarea rutinaria. Simplemente, como indica el título de la entrada, se hace lo que dice, en este caso mediante PHP. Esta tarea se puede programar en línea de comandos para ejecutarse todos los días. Es algo habitualmente necesario, y ya que PHP es un lenguaje de scripting muy sencillo y a la par potente, vamos a ver cómo hacer esto sin complejos sistemas intermedios.

Para este manual se usa Linux, y se ha probado sobre Ubuntu 14.

Continuar leyendo..

Creando custom AMI con OpsWorks y Chef 12

2016-05-22 - Categorías: Amazon Web Services
Chef Software Inc company logo

Traigo una pequeña receta de Chef 12 que he usado para crear un servidor virtual usando una pila de OpsWorks. He tenido que pegarle unas cuantas vueltas ya que el proyecto estaba con la versión 11, y era mi primera AMI completa creada 100% desde OpsWorks. Después de unas horas navegando, comprendiendo cómo funciona todo esto. He conseguido comprender, como dice un colega de trabajo, «uno de los pilares básicos sobre los que se basa Amazon Web Services».

La idea es tener una pila completa de OpsWorks, que cree completamente un servidor desde cero. Le vamos instalando todo lo que vayamos a necesitar, desde actualizaciones a todas las herramientas para el proyecto. En la última receta de creación de la instancia se limpia la instancia, se para, y podremos guardar nuestra propia AMI para lanzarla desde otra pila de OpsWorks, EC2, etc..

Ahí va el código en ruby para la receta de Chef que tanta guerra me ha dado. En la documentación oficial me faltaban algunos detalles que hacían que no funcionara con Chef 12 al arrancar de nuevo la instancia en otra pila de OpsWorks. Esto se puede poner en la última receta:

bash "clean_before_create_ami" do
 user "root"
 code <<-EOH
 sudo /etc/init.d/monit stop
 sudo /etc/init.d/opsworks-agent stop
 sudo rm -rf /etc/aws/opsworks/ /opt/aws/opsworks/ \
 /var/log/aws/opsworks/ /var/lib/aws/opsworks/ \
 /etc/monit.d/opsworks-agent.monitrc \
 /etc/monit/conf.d/opsworks-agent.monitrc \
 /var/lib/cloud/ /var/chef /opt/chef
 sudo dpkg -r opsworks-agent-ruby
 sudo dpkg --purge opsworks-agent-ruby
 sudo dpkg -r chef
 sudo dpkg --purge chef
 EOH
end

También se puede ejecutar esto desde línea de comandos conectando por SSH a la instancia.

Como cita la documentación oficial, si no hacemos esto, la nueva AMI quedará con las configuraciones de Chef y del agente de OpsWorks desde el que fue lanzada. Esto hará que no pueda hacer el setup si la arrancamos desde otra pila de OpsWorks creando servidores desde una «Custom AMI».

Espero que sirva.

Saludos.


Administrar tu servidor con Webmin y Authentic Theme

2016-01-24 - Categorías: Amazon Web Services / GNU/Linux
Webmin dashboard

¡Buenos días a todos! Voy a tratar de no perder las buenas costumbres, como esta de compartir en el blog mi granito de arena en todo esto de la informática. Hasta estos últimos días, que no he tenido la necesidad de mantener al día tantos servidores como últimamente. Estaba haciéndolo manualmente, a pelo como se suele decir, entrando en los servidores y aplicando actualizaciones, modificaciones, etc.. Todo esto es mucho tiempo así que delegar en un proveedor de hosting todo éste trabajo es una buena elección. Pero no siempre te va a valer y puede que necesites hacer configuraciones que un proveedor de hosting no te va a permitir. Administrar tu propio servidor no tiene que ser complejo.

Todo esto me ha llevado a investigar sobre paneles de control de servidores. Tenemos el gran Cpanel, Plesk, Zpanel, y un largo etcétera. Por temas laborales ya he probado algunos en los propios proveedores. Muchos funcionan de maravilla y son sencillos de gestionar. Pero no me voy a dedicar a alquilar hosts, sino que simplemente necesito mantener unos pocos servidores y no es viable comprar una solución comercial. Así que navegando y navegando al final me topé con Webmin.

Qué tiene

Webmin configurando

A grandes rasgos es una web desarrollada sobre Perl, que se instala en el puerto 10000 del servidor y se integra con el sistema operativo. Nos permite ver el estado del servidor, hacer configuraciones de red, actualizarlo, programar actualizaciones automáticas recibiendo informes a tu email. Te permite configurar usuarios, permisos, instalar bases de datos, servidor web, configurarlos. También hay módulos para instalar un servidor de correo electrónico. Puedes administrar Apache2, Mysql, Postgres, Postfix, Dovecod, etc, etc, etc.

La verdad es que te quedas mucho más tranquilo teniendo una herramienta de estas instalada en un servidor. No tienes más que entrar  y de un vistazo puedes saber qué tal anda el sistema. Puedes aplicar las principales configuraciones y a correr que el tiempo es muy valioso.

Hay algunas tareas como la configuración hosts virtuales que haciéndolas a mano me he aclarado mejor. Pero deduzco que será cuestión de acostumbrarme al panel. Leo que hay extensiones de Webmin para configurar fácilmente hosts con varios dominios, permitiendo la lectura de correos a los usuarios proporcionándoles un panel de entrada al sistema.

Un detalle que me ha gustado mucho es la autenticación en dos pasos (multi-factor authentication, MFA). Con el que podemos tener por ejemplo en nuestro móvil el Google Authenticator, y tener un código de seguridad extra que se genere a cada 30 segundos, para poder entrar como en la imagen siguiente:

Webmin mfa


El theme, piel, o plantilla que podéis ver en las imágenes no es el original. Es el ‘Authentic theme’ que me ha gustado también mucho. Es totalmente sensible al dispositivo (responsive), con lo que también podemos aplicar configuraciones sobre nuestro servidor desde el móvil o tablet, cosa que se agradece en gran manera.

Aquí podemos ver lo sencillo que se hace mantener actualizado el sistema:

Webmin update


Aquí en la imagen se puede ver cómo configurar que todos los días se apliquen todas las actualizaciones del sistema, no sólo las de seguridad. Esto dispara cada día la instalación de todos los paquetes para actualizar y me envía un informe del resultado de la instalación a mi email. Ya os podéis hacer a la idea de que tiene muchas cosas, y lo tranquilo que me quedo con cada correo que recibo diciéndome que todo se ha actualizado correctamente.

Como buen usuario de Ubuntu, todas las pruebas y las imágenes que se ven son sobre Ubuntu. Me lo voy a anotar como indispensable en las nuevas instalaciones. Navegando y navegando por el menú lateral ya veo que no me lo voy a acabar, así que tendré que ver la documentación oficial de cada herramienta para ir más al grano en las tareas que se necesiten.

Terminando

Aquí la web oficial: http://webmin.com/

Es un proyecto alojado en Github, que por lo que veo se ve bien activo. Ahora mismo hace 4 horas que han subido una actualización, lo que denota que vamos a seguir teniendo actualizaciones frecuentemente, como todo buen proyecto Open Source.

Para el que quiera seguir investigando en esta joya de la informática, son interesantes los módulos Usermin y Virtualmin. No creo que tarde mucho en probarlos. De estos tenemos una versión gratuita y otra comercial, con las que vamos añadiendo más y más funcionalidades al panel de control.

¿Alguna sugerencia de otro programa similar para administrar servidores?


Cómo configurar los permisos del directorio de un proyecto para Apache en Linux

2015-12-05 - Categorías: GNU/Linux
Powered by Apache

¡Hola! Este es un pequeño HOWTO para configurar los permisos de directorio de un proyecto web que está en un servidor Apache. Nos puede pasar que estamos editando los ficheros del proyecto, pero puede ser que Apache no pueda acceder correctamente a los nuevos ficheros, crearlos, modificarlos o borrarlos. También nos puede pasar que Apache cree ficheros y nosotros no podamos tocarlos. Vamos a evitarlo con unos sencillos pasos. Esto sirve para configurarlo en Ubuntu. También se puede aplicar a cualquier otro sistema operativo Linux.

El usuario por defecto de un servidor Ubuntu es ‘ubuntu’. El usuario de Apache es ‘www-data’, así que comenzamos dando permiso a Apache para que pueda usar nuestro directorio de trabajo donde desarrollamos la web. Por defecto Apache trabaja sobre con la página principal en /var/www/html pero este post es para configurar a nuestro gusto el destino el directorio donde vamos a tener la web.

Supongamos que tenemos nuestra web en desarrollo en:

/home/jaime/miweb/

Ahora bien vamos al directorio donde está nuestra web y damos permisos a Apache así:

cd /home/jaime/
sudo chown www-data:www-data -R miweb/

Doy por sentado que ya tenemos instalado Apache y que tenemos configurado el host. Ahora bien, queremos trabajar como usuario editando y viendo los resultados en el navegador. Añadimos a nuestro usuario al grupo www-data:

sudo adduser jaime www-data

Con esto ya podremos editar el contenido del directorio de la web en /home/jaime/miweb/. Antes no podíamos porque hemos dado la propiedad a www-data que es el usuario de Apache con el comando chown.

Ahora para que los nuevos archivos creados dentro del directorio de la web sigan siendo propiedad del mismo grupo www-data para que tanto Apache como el usuario (tú) podáis seguir trabajando ejecutamos lo siguiente para poner el ‘sticky-bit’ de grupo a los directorios:

sudo chmod g+s /home/jaime/miweb/
find /home/jaime/miweb/* -type d -print0 | sudo xargs -0 chmod g+s

Esto pone el directorio del proyecto con el sticky-bit de grupo y luego busca dentro todos los subdirectorios y también le ponemos el sticky-bit de grupo. Ahora cualquier archivo que crees dentro del directorio seguirá tendrá tu usuario de propietario, y de grupo www-data. Así Apache podrá seguir sirviendo los archivos sin problemas y podremos trabajar sin preocuparnos de dar permiso o propiedad a los archivos que ya no sean de www-data.

Espero que sirva.

Un saludo.


Instalación de Postgresql 9.3 en Ubuntu 14.04

2015-10-06 - Categorías: General

Hola de nuevo.
Aquí traigo otro pequeño HOWTO para automatizar la instalación de un servidor Postresql. Como ya indico en el post anterior, estoy jugueteando con Vagrant y necesito instalar la base de datos automáticamente para no tener que estar haciéndolo cada vez. Así que ya puestos a usar Vagrant o simplemente a usar la línea de comandos podemos ejecutar estos comandos para instalar y configurar Postgresql sin sufrir mucho y comenzar a trabajar lo antes posible.

Porqué Postgresql

Un compañero de trabajo me hizo una vez la pregunta, ¿porqué Postgresql?

Es un gigante de las bases de datos relacionales. Robusta como ella misma, soporta clustering, integridad referencial.. una cantidad ingente de características. En sus últimas versiones no tiene nada que envidiar al resto de bases de datos. Y mucho la catalogan como la mejor base de datos relacional Open Source. Además de que tenemos el pgAdmin que funciona a las mil maravillas.

https://es.wikipedia.org/wiki/PostgreSQL

Hay cantidad de información por Internet, ya que desde 1982 leo que está dando guerra, así que te puedes hacer una idea de si es o no una buena elección. Cada cual que mire cuáles son sus requisitos pues no es objetivo de este post hacer una comparativa.

Dónde está el script

Sin más preámbulos el script de instalación es el siguiente:

postgres_conf_file=»/etc/postgresql/9.3/main/postgresql.conf»
postgres_pg_hba_file=»/etc/postgresql/9.3/main/pg_hba.conf»

main() {
    apt-get -y install postgresql

    sudo -u postgres psql<<EOI
password postgres
postgres
postgres
q
EOI

    sed -i «s/#listen_addresses = ‘localhost’/listen_addresses = ‘*’/g» ${postgres_conf_file}

    cat <<EOI > ${postgres_pg_hba_file}
local   all             all                                     md5
host    all             all             127.0.0.1/32            md5
host    all             all             10.0.2.2/32             md5
host    all             all             ::1/128                 md5
EOI

    service postgresql restart
}

main
exit 0

A fecha en que escribo, este código se puede incluir en un Schell Script que por ejemplo podemos llamar instalarPostgresql.sh, darle permiso de ejecución y lanzarlo. Funciona con la versión que se instala actualmente en un servidor de producción con Ubuntu Server 14.04 que es la 9.3 de Postgresql si no me falla la memoria.

Simplemente instala el servidor, se conecta con el cliente psql para cambiar la contraseña del administrador postgres, escucha en todas las interfaces de red y permite conectar por red a 127.0.0.1 y a 10.0.2.2 que es la IP que se ve desde dentro de una máquina virtualizada con Vagrant.

Espero que sirva.
Saludos.


Instalación de MariaDB 10.0 en Ubuntu 15.04

2015-10-05 - Categorías: General

Este es un pequeño HOWTO para instalar la base de datos. He estado jugueteando con Vagrant estos días probando como instalar automáticamente máquinas virtuales de forma automática, y me topé con el problema de cómo hacer un script que me instalara la BD en el sistema y que además dejara configurada la contraseña de administrador.

Este script funciona para Ubuntu 15.04, el cual te instala MariaDB 10.0 por defecto, que viene a ser la última versión estable de la aplicación.

MariaDB

Esta base de datos es un replace del archi-conocido MySQL pero al cual le han mejorado en varios aspectos. Es decir, tras la compra por parte de Oracle de MySQL, el equipo de desarrollo de la base de datos se separó continuando su desarrollo en lo que ahora se conoce como MariaDB.

Hay quien dice que Oracle pretendía estancar el desarrollo porque ya tiene sus propios productos de base de datos. Pueden haber sido diferencias de opiniones entre los desarrolladores. A saber cuál ha sido el porqué, el hecho es que MariaDB ha cogido fuerza. Por lo que la he probado funciona muy bien y tengo un servidor en producción que va muy bien hasta la fecha de hoy.

Al grano, el script

Esto a continuación se puede poner en un fichero, por ejemplo, llamado instalarMariaDB.sh y ejecutarlo:

echo «######################################################################################»
echo «# This script will install MariaDB and will set the root password.»
echo «# It only works for first time execution. If it fails, check one command each time.»
echo «######################################################################################»

sudo apt-get -y install mariadb-client mariadb-server

sudo mysql -u root<<EOI
use mysql;
update user set plugin=» where User=’root’;
update user set password=PASSWORD(«root») where User=’root’;
flush privileges;
quit
EOI

sudo service mysql restart

Con esto ya dejo el ordenador y al sobre.
Un saludo.


ClamAV con ClamTk en Ubuntu, aún más seguro si cabe

2015-02-22 - Categorías: GNU/Linux / Seguridad
ClamTk

En GNU/Linux dicen que no hay virus. Pero ¿es así realmente? Podemos buscar información que nos dice que en todos los sistemas operativos hay virus. Incluso en ordenadores Mac hemos tenido los sonados casos con miles de ordenadores infectados. En Linux de igual manera que podemos tener virus. Pero hay una gran diferencia, es muy raro que lleguemos a instalarnos uno.

Continuar leyendo..

© 2024 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.