Posts

Crear usuario y base de datos en MySQL y dar permisos

Una cosa que siempre se me olvida y tengo que buscar: cómo crear un usuario en MySQL (o MariaDB o Aurora MySQL), crear una base de datos, y dar permisos al usuario sobre esa base de datos:

CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'pickApassword';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
exit

Leer más...

Parsear MaintenanceWindow de RDS en Python

Para una aplicación que estamos desarrollando, necesitábamos saber cuándo se van a aplicar los mantenimientos en nuestras instancias de RDS. El problema es que según la documentación de Boto3, el método describe_pending_maintenance_actions devuelve la fecha de aplicación de la actualización en el campo CurrentApplyDate, pero esto siempre viene vacío:

$ aws rds describe-pending-maintenance-actions

Leer más...

Instalar Ansible en Cygwin

Instalaremos Cygwin de la forma habitual; simplemente nos aseguraremos de seleccionar el paquete wget en la ventana de selección de paquetes, o bien lanzar el instalador con el siguiente comando:

setup-x86_64.exe --download --site http://mirrors.fe.up.pt/pub/cygwin/ --upgrade-also --no-admin --root %LOCALAPPDATA%/cygwin64 --packages wget

Leer más...

Enviar salida éstandar y de error al mismo tiempo

Normalmente, en Bash, redirigimos la salida estándar a un fichero o la entrada de otro comando con la siguiente sintaxis:

ls -l mifichero.txt noexiste > salida.txt
ls -l mifichero.txt noexiste | tee salida.txt

Y la salida de error así:

ls -l mifichero.txt noexiste 2> salida.txt
ls -l mifichero.txt noexiste 2>&1 >/dev/null | tee salida.txt

Podemos redirigir la salida estándar y de error al mismo tiempo:

ls -l mifichero.txt noexiste > salida.txt 2>&1
ls -l mifichero.txt noexiste 2>&1 | tee salida.txt

O de esta otra forma más simplificada (&| no funciona):

ls -l mifichero.txt noexiste &> salida.txt

Leer más...

La forma más corta y simple de crear o vaciar un archivo en Linux

Pues eso, la forma más corta y simple de crear o vaciar un archivo en Linux:

> fichero

Otras formas:

touch fichero
echo "" > fichero
cat /dev/null > fichero

Leer más...

Ansible sin root

Cuando se instala Ansible, por defecto va a usar la configuración y fichero de hosts del directorio /etc/ansible. Si queremos poder ejecutar Ansible sin necesidad de estar tocando continuamente ficheros de configuración con root, podemos crear un archivo de configuración y otro de hosts en nuestro directorio personal, que prevalecerán sobre los que hay en /etc/ansible.

Para ello, crearemos el fichero de configuración ~/.ansible.cfg con el siguiente contenido:

[defaults]
inventory = ~/.ansible_hosts

Y tras esto, crear el archivo de hosts al que hacemos referencia:

localhost

Para probar que Ansible está cogiendo esta configuración, ejecutaremos el siguiente comando (muestra los facts del servidor que cumplan el filtro ansible_eth[0-2]):

ansible localhost -m setup -a 'filter=ansible_eth[0-2]'

Leer más...

Instalar OpenStack PackStack detrás de un proxy

Trasteando con Openstack, con ganas desde hace tiempo, y después de la Mini-Conf del grupo MAD for OpenStack, me animé a probarlo usando PackStack, que te lo configura todo en una única máquina (no tengo claro si se puede considerar una instalación productiva o sólo para pruebas), aunque luego puedes ir añadiendo nodos adicionales. Dado que no tengo acceso a ningún host físico, instalé un RH 7.2 (también vale Fedora o CentOS) en una máquina virtual de VMware (el rendimiento dependerá en gran medida si se tiene habilitado o no la nested virtualization). Empecé con una máquina con 2 procesadores y 2 GB de RAM, pero enseguida me di cuenta que se quedaba muy corta, incluso sin ninguna instancia arrancada. La versión final tiene 8 procesadores y 8 GB de RAM.

Leer más...

Red Hat, licencias y suscripciones (y una pequeña reflexión sobre el software libre)

Nota: No soy un experto en licencias o suscripciones, así que todo lo que diga en este post, no se debe tomar al pie de la letra. Si algún concepto está mal, comentádmelo y lo corrijo.

En un anterior cliente (de cuyo nombre no quiero acordarme), supongo que al igual que en muchos otros que os habréis encontrado, tienen la mala costumbre de instalar software sin licencia o suscripción. En este caso, voy a hablar de Red Hat, y su distribución Linux (Red Hat Enterprise Linux o RHEL). Aunque GNU/Linux siempre se ha caracterizado por sus licencias abiertas, quien modifique dicho software está obligado a publicar dicho fuente modificado (realmente depende de la licencia de cada pieza software que compone la distribución, pero aunque no se deba en general, en este post generalizaremos…). Éste es, en parte, el negocio de Red Hat. Ellos hace una recopilación de software, le hacen una serie de modificacionesy mejoras si procede, publican ese código fuente ( SRPMs), y finalmente generar unos binarios que los meten en un CD, además de dar actualizaciones y soporte de ese software. ¿Y qué es lo que pasa? Pues esos CDs “no te los puedes bajar gratis” (dependiendo de la licencia se puede permitir cobrar por el trabajo realizado, o incluso no liberar las modificaciones hechas). Esos CDs sólo los puedes conseguir si tienes una suscripción con Red Hat (previo pago), o bien si te has registrado para una evaluación. Esta demo incluye lo siguiente:

  • Actualizaciones durante 30 días
  • NO se incluye soporte técnico

Leer más...

Compilar NXLOG en Red Hat/CentOS 5

NXLOG es un sustituto revitalizado para Syslog. Puede recoger los mensajes tanto desde Windows como de Linux, aplicar reglas, y luego enviarlo a distintos sitios (archivos, bases de datos, servicios web, etc.). El caso es que necesitaba instalar este paquete en un CentOS 5 para enviar los LOGs a un servicio web de indexación, pero no había paquetes precompilados para esta versión.

Leer más...

Guía rápida de KVM

De la Wikipedia:

Kernel-based Virtual Machine o KVM, (en español, Máquina virtual basada en el núcleo) es una solución para implementar virtualización completa con Linux. Está formada por un módulo del núcleo (con el nombre kvm.ko) y herramientas en el espacio de usuario, siendo en su totalidad software libre. El componente KVM para el núcleo está incluido en Linux desde la versión 2.6.20.

KVM permite ejecutar máquinas virtuales utilizando imágenes de disco que contienen sistemas operativos sin modificar. Cada máquina virtual tiene su propio hardware virtualizado: una tarjeta de red, discos duros, tarjeta gráfica, etc.

En primer lugar, debemos comprobar si nuestro equipo es compatible con KVM:

egrep --color '(svm|vmx)' /proc/cpuinfo

Si la salida anterior muestra algo, podremos seguir adelante. Si no muestra nada, también podremos seguir, pero no se aprovecharán las capacidades de virtualización del equipo (se hará un fallback a emulación en lugar de virtualización).

Leer más...