lunes, 30 de noviembre de 2015

Cambiar el tamaño de disco duro en una VM en GCE

Que tal ya me había tardado en poner una entrada, debería ser mas constante, pero publico aquí cosas que aprendo sobre la marcha de mi trabajo.

Así que el día de hoy me tope con el problema de cambiar el tamaño de un disco duro de una maquina virtual que administro en Google Compute Engine (GCE) y pues después de andar buscando aquí tengo el como hacer el resize de un HD en GCE


Los pasos para hacer le resize del disco duro son los siguientes:

  1. Crea un nuevo disco con mas espacio en GCE con la imagen antes creada a la cual quieras incrementar el espacio de disco duro.
  2. Crea una nueva instancia de GCE usando para ser creada el nuevo disco el cual ya tiene mas capacidad que el anterior.
  3. Ingresa en tu instancia y utiliza el siguiente comando
$ sudo resize2fs /dev/sda1 

Con esto tu parición pasara del almacenamiento pasado al nuevo como se puede ver en la imagen de arriba

Y ya con eso tendrás nuevo espacio disponible, debes recordar que si incrementas el espacio del disco o de otro componente en GCE puede venir un cargo extra en la factura.

Información vía : stackoverflow

lunes, 12 de octubre de 2015

Exportar instance (VM) de Google Compute engine para resguardo local (LINUX VM)

Para hacer un respaldo de la VM de GCE debes de hacer lo siguientes:

1.- Crear un nuevo disco temporal este debe ser una copia del disco actual que estas utilizando, para esto debes de hacer un "snapshot" de tu disco y con ese crear el nuevo.





 


2.-Debes de ejecutar el comando attach-disk desde tu maquina local para poder vincular el disco creador a tu sistema operativo, esto se logra con el siguiente comando:
$ gcloud compute instances attach-disk  [tu instancia]  --disk temp  \--device-name  temporary-disk  \--zone  [zona de tu proyecto]   

4.-Con el proceso anterior finalizado, ingresa por SSH a tu VM y revisa que el vinculo de tu Disco duro temporal se haya realizado y se encuentre montado en tu sistema operativo. para eso deberás listar los discos duros de tu SO con el siguiente comando:
$ ls -l /dev/disk/by-id/google-*
tendrás un salida similar a la siguiente:

$ ls -l /dev/disk/by-id/google-* lrwxrwxrwx 1 root root 9 Jul 29 17:56 /dev/disk/by-id/google-persistent-disk-0 -> ../../sda lrwxrwxrwx 1 root root 10 Jul 29 17:56 /dev/disk/by-id/google-persistent-disk-0-part1 -> ../../sda1 lrwxrwxrwx 1 root root 9 Aug 25 18:16 /dev/disk/by-id/google-temporal-disk -> ../../sdb # El disco temporal reside en: /dev/sdb

5.-Se crea un carpeta temporal, este paso es importante recuerda la ruta:
$ sudo mkdir /mnt/tmp

6.-Monta el nuevo disco:
$ sudo /usr/share/google/safe_format_and_mount -m "mkfs.ext4 -F" /dev/sdb /mnt/tmp

7.-Este paso es el mas importante, con el comando "gcimagebundle" se creará un archivo .tar del disco duro montado, y lo pondrá en la carpeta temporal que se creo antes, por eso es importante crear el disco duro temporal con las imagen del disco a resguardar.
$ sudo gcimagebundle \-d /dev/sda -o /mnt/tmp/ --log_file=/tmp/abc.log
nota: el tiempo de ejecución de este proceso, dependerá del tamaño de tu disco y del tipo de VM que estés utilizando.

8.-Cuando el proceso termine, busca un archivo con un nombre conformado de un gran cadena de números hexadecimales  con extensión .tar.gz
/mnt/tmp/HEX-NUMERO.image.tar.gz
9.-Por ultimo copia ese archivo a tu maquina local con el comando de copia que puse anteriormente (Copiar archivos de pc local a VM en Google Compute Engine) y respalda el archivo de la manera que mas te agrade, en mi caso son  dvds




miércoles, 30 de septiembre de 2015

Krita, la alternativa, de la alternativa.

Krita, es un software de edición, pintura e ilustración digital distribuido bajo la licencia GNU GLP.

Las característica de Krita son orientadas a la creación de dibujo digital, mas que las funciones de edición de fotográfica, sin embargo soporta funciones de edición de mapa de bits e ilustración vectorial.

La popularidad de Krita va en aumento llegando al punto que el departamento de Arte y Tecnología de la Imagen (ATI) de la Universidad de París sustituyo el uso de Photoshop por el de Krita (https://krita.org/item/goodbye-photoshop-and-hello-krita-at-university-paris-8/)

Lo restante por mencionar seria que le des una oportunidad a Krita y tu decidas si es la alternativa que estabas buscando. 

Descarga Aquí 

martes, 29 de septiembre de 2015

Copiar archivos de pc local a VM en Google Compute Engine

Si tienes una VM en GCE (Google Compute Engine) y necesitas copiar archivos de tu VM a tu pc local o quieres enviar archivos de tu pc local a tu VM hay un comando que te puede  funcionar

Los ejemplos que se mostraran son en PC con Linux a un VM con Linux (Sí, trabajo con Linux...)

PC a VM

gcloud compute copy-files [/archivo/a/copiar] [Nombre de tu VM]:[/directorio/destino] --zone "[la zona donde reside tu VM]"

VM a PC

gcloud compute copy-files [Nombre de tu VM ]:[/archivo/a/copiar] --zone "[la zona donde reside tu VM]" [/directorio/destino]


Importante:

Para hacer la copia de archivos debes de estar "logueado" en gcloud

gcloud auth loggin  

y tener seleccionado el proyecto donde se encuentra tu VM

gcloud config set [projectnombre-de-tú-proyecto] 
 

lunes, 28 de septiembre de 2015

Conectar Google Cloud SQL a un Cliente MySQL



Antes que anda debes de tener una cuenta de Google (gmail) y activar tus 60 días gratis de prueba dentro de:


Con tu cuenta gratis podrás acceder  durante 60 días a casi todos los componente de Google Cloud Platform.(No tendrás acceso a componente premium).


Aquí comienza tu travesía para lograr conectar Cloud SQL en la nube a tu maquina a tú lado.

1.- crea un "Instancia" de Cloud SQL recuerda usar nombres con minúsculas, sin caracteres especiales y separados por ' - ' (no emoticon)

2.-Accede a tu instancia creada para ver las opciones que ofrece CloudSQL

3.-Dentro de "Base de datos" podrás crear tu BD que después podrás manipular con un cliente de MySQL



4.-Ahora en control de acceso crea un usuario el cual podrá acceder desde el cliente. 
5.- Ahora debes autorizar la aplicaciones o IPs las cuales tendrán acceso a tu base de datos. esto es parte de la seguridad de Google  la cual puedes amar u odiar (en mi caso la odie un poquito).

  • Redes permitidas: son rangos de IPs o IPs que sabes que tendrán acceso a tu base de datos para el caso de este ejemplo debes de usar la ip que tienes asignada  para saberla entra a la pagina https://www.whatismyip.com/es/ y así podrás garantizar el acceso de tu cliente local.
 
  • Aplicaciones de App Engine: aquí podrás dar acceso a las aplicación de que tengas hospedadas en App Engine y que deban de utilizar una base de datos

6.- Obtener un IPv4, Cloud SQL otorga por default una IPv6 para poder conectar o manipular la base de datos es mas fácil utilizar un IPv4, lo lamentable es que para obtener un IPv4 Cloud SQL te la otorgara con un costo de 0.01 cents por cada hora que no se use !! para este ejemplo y como tenemos nuestra prueba gratis utilizaremos la IPv4





7.- Ya con usuario y control de accesos es momento de conectar el cliente a la nube, para este ejemplo utilizare el cliente de MySQL Workbench.

8.- Ya instalado Mysql WorkBench procedemos a la conexión llenamos todos los campos necesarios en el cliente para conectarnos y hacemos el teste de conexión



 9.- Hacemos la conexión

10.- Ahora si tendremos  acceso a nuestra base de datos en la nube gracias a Cloud SQL y a Mysql WorkBench

Google SQL Cloud







Google Cloud SQL es un manejador de base de datos MySQL (maɪˌɛskjuːˈɛl/ [mai es-quiu-el]) que recide en la infraestructura de Google Cloud.

Este manejador tiene todas las capacidades de MySQL con algunas funciones adicionales, pero también  con algunas funciones no soportadas, GCSQL es fácil de usar (una vez entendido algunos funcionamientos), no requiere instalaciones de software adicionales y es una excelente opción para para aplicaciones de tamaño bajo a medio.

Se puede acceder a GCSQL a travez de:
  • MySQL Client
  • Aplicaciones de terceros como SQL Workbench o Toad for MySQL 
  • Aplicaciones externas usando  MySQL database drivers 
  • Aplicaciones Engine Java
  • Aplicaciones Engine Pytho
  • Google Apps Script 
 Lo importante que se debe mencionar también es que al ser un servicio de Google genera un costo, de esos costos que son por .00xx centavos pero que a la larga puede llegar a un monto considerable.

Para mas información consulte https://cloud.google.com/sql/docs/introduction


 

jueves, 17 de septiembre de 2015

JAVA StringUtils

En mi trabajo, utilizo java para la cuestión de programación y no conocía la clase de StringUtils la cual me ha ayudado en algunos aspectos básicos del manejo de String (cadenas) en java.

Bueno aquí paso a los ejemplos y uso de StringUtils:


StringUtils.isEmpty()
Esta función booleana checa si la cadena es vacia ("") o nula (null).
 
StringUtils.isEmpty(null)        =   true
StringUtils.isEmpty("")            =  true
StringUtils.isEmpty(" ")           =  false
StringUtils.isEmpty("bob")     =  false
StringUtils.isEmpty("  bob  ") =  false 
 
Esta función tiene su contraparte que es: 
StringUtils.isNotEmpty() 

StringUtils.isNotEmpty(null)         = false

StringUtils.isNotEmpty("")             = false
StringUtils.isNotEmpty(" ")            = true
StringUtils.isNotEmpty("bob")      = true
StringUtils.isNotEmpty("  bob  ")  = true
 
Si es requerido también existe la funcion isBlank la cual da "más " mas precisión al momento de 
revisar si una cadena es vacía o no.
  
StringUtils.isBlank() 
Esta función booleana checa si la cadena es vacia ("")("    ") o nula (null).
 
StringUtils.isBlank(null)         = true
StringUtils.isBlank("")            = true
StringUtils.isBlank(" ")           = true (toma como vacío la cadana sin nada en su interior)
StringUtils.isBlank("bob")     = false
StringUtils.isBlank("  bob  ") = false

Esta función también tiene su contraparte que es: 
StringUtils.isNotBlank() 
 
StringUtils.isNotBlank(null)         = false
StringUtils.isNotBlank("")            = false
StringUtils.isNotBlank(" ")           = false
StringUtils.isNotBlank("bob")     = true
StringUtils.isNotBlank("  bob  ") = true 


Hay muchísimo mas funciones que se pueden utilizar y son muy utiles. aqui les dejo la documentacion
http://commons.apache.org/proper/commons-lang/javadocs/api-3.1/org/apache/commons/lang3/StringUtils.html