Primeros pasos con PowerShell para Google Cloud Platform

Cuando alguien me pregunta si realmente merece la pena aprender a manejarse con PowerShell siempre uso como uno de los argumentos a favor el gran apoyo de los fabricantes sobre éste. Compañías como VMware, Veeam, Amazon o Google (además de la propia Microsoft) han creado módulos oficiales con los que administrar sus productos. En la entrada de hoy vamos a ver cómo empezar a utilizar PowerShell para Google Cloud Platform, la plataforma de cloud público de Google.

Primeros pasos con PowerShell para Google Cloud Platform

Un vistazo al módulo de PowerShell para Google Cloud

Las Cloud Tools for PowerShell, que es el nombre que da Google a su módulo, nos van a permitir interactuar con la sintaxis habitual de PowerShell y usar todas sus bondades directamente contra los servicios y recursos de nuestra cuenta de Google Cloud Platform.

Si bien no todos los productos de Google Cloud Platform están cubiertos en su módulo de PowerShell a fecha de hoy, podemos ver que existen cmdlets para una buena cantidad de ellos:

A fecha de hoy ésto supone una nada despreciable cifra de 144 cmdlets disponibles una vez hayamos instalado su módulo, que es lo que vamos a hacer a continuación.

Cómo instalar el módulo de PowerShell para Google Cloud

Para obtener éste módulo de PowerShell tenemos dos opciones:

  • Instalar el módulo mediante Install-Module y luego instalar el SDK de Google.
  • Instalar directamente el SDK de Google que también nos instalará el módulo de PowerShell.

Para esta entrada vamos a ir con la segunda opción, por lo que podemos dirigirnos a la página de descarga del SDK de Google para Windows y descargaremos y ejecutaremos el instalador.

La instalación básicamente es un siguiente > siguiente > siguiente, pero debemos fijarnos en que en la pantalla para elegir componentes tengamos marcado Cloud Tools for PowerShell:

PowerShell para Google Cloud

Y en la pantalla final también nos aseguraremos de dejar marcado Run ‘cloud init’ to configure the Cloud SDK para configurar nuestra conexión a Google Cloud Platform una vez finalice el asistente.

Iniciar gcloud init tras instalacion

Tras pulsar en Finish se iniciará gcloud init, el cuál nos preguntará si queremos logear en nuestra cuenta. Evidentemente introduciremos Y para logear:

Tras ésto se abrirá una nueva pestaña en nuestro navegador por defecto en la que deberemos logear con nuestra cuenta de Google y permitir el acceso que se nos solicita.

Una vez hecho deberemos volver de nuevo a nuestra pantalla de gcloud init en la que deberemos indicar:

  • Proyecto a utilizar.
  • Zona por defecto.

Y tras finalizar la configuración deberíamos recibir un mensaje indicando que la instalación de Google Cloud SDK se ha completado con éxito:

Your Google Cloud SDK is configured and ready to use!

Trasteando con el módulo de PowerShell para Google Cloud Platform

Ahora que ya lo tenemos todo listo podemos empezar a cacharrear con nuestros nuevos cmdlets. Si queremos ver una lista completa de los cmdlets disponibles podemos ejecutar:

Get-Command -Module GoogleCloud

Si queremos ver el detalle de la funcionalidad de algún cmdlet podemos acudir a la referencia del módulo o bien ejecutar Get-Help sobre alguno de ellos.

A partir de aquí toca trastear el módulo. Algo que podríamos querer hacer sería programar un backup de algún archivo o carpeta hacia nuestro Google Cloud Storage. El procedimiento para ello sería sencillísimo.

Primero creamos el bucket donde guardaremos nuestro backup con New-GcsBucket:

 
New-GcsBucket -Name "sobrebits" -StorageClass COLDLINE 

Name        TimeCreated         Updated 
----        -----------         ------- 
sobrebits   10/02/2019 21:34:30 10/02/2019 21:34:30 

Con -Name le damos nombre al bucket y con -StorageClass seleccionamos el tipo de almacenamiento del bucket.

Y posteriormente creamos un nuevo objeto en nuestro bucket con New-GcsObject utilizando el que queremos copiar:

 
New-GcsObject -Bucket sobrebits -File C:\Scripts\Archivo_para_backup.txt -ObjectName "Archivo_par a_backup$((Get-Date).Day)" 

Name                      Size ContentType TimeCreated         Updated 
----                      ---- ----------- -----------         ------- 
Archivo_para_backup10     0    text/plain  10/02/2019 21:44:12 10/02/2019 21:44:12 

Con -Bucket indicamos el bucket creado en el paso anterior, con -File el archivo que utilizaremos para nuestro nuevo objeto y con -ObjectName el nombre que le daremos al objeto en destino añadiendo el día del mes con Get-Date.

Con esto lo último que nos faltaría sería programar una tarea de PowerShell que ejecutara esta última línea cada día y ya tendríamos nuestro backup externalizado a GCP con PowerShell en 2 minutos.

Conclusión

Y hasta aquí esta entrada introductoria sobre PowerShell para Google Cloud Platform. En próximas entradas nos centraremos en algunos de los productos de GCP para ver qué somos capaces de hacer con PowerShell y qué posibilidades de automatización tenemos con éste módulo.

¡Os espero en la próxima!

Deja un comentario