Terraform

Cómo utilizar Terraform con Google Cloud Platform?

Cómo utilizar Terraform con Google Cloud Platform?
Terraform es una herramienta que se utiliza para administrar la infraestructura como códigos con facilidad. Está desarrollado por HashiCorp como un proyecto de código abierto para que los desarrolladores de la nube administren su infraestructura en un lenguaje de muy alto nivel (HCL). La mayor ventaja de esta herramienta es que abstrae los principales servicios de infraestructura como AWS, OpenStack, Vultr, Digital Ocean, Google Cloud y permite a los desarrolladores unificar su configuración en un solo formato estándar. Además de eso, la automatización y la ejecución detallada también son posibles con Terraform. Está disponible en plataformas Windows, Linux, MacOS y se puede utilizar con cualquier plataforma en la nube importante con un nivel moderado de conocimientos técnicos.

Esta guía demuestra cómo utilizar Terraform con la plataforma Google Cloud. Esta guía asume que el usuario tiene una cuenta en la plataforma Google Cloud y está lista para usar, de lo contrario, es posible crear una cuenta de prueba gratuita con facilidad durante un año. Sin embargo, Google Cloud requiere que se envíe un número de tarjeta de crédito válido para acceder a su consola; por lo tanto, asegúrese de que se solucione antes de continuar.

Requisitos y condiciones

La plataforma de Google Cloud consta de una gran cantidad de servicios; por lo tanto, es difícil cubrirlos todos en una sola guía y, por lo tanto, esta guía solo cubre la sección de instancias de VM de Google. Demuestra cómo instalar un servidor web Nginx en una instancia de VM de Ubuntu en la infraestructura de Google Cloud.

Dado que la guía trata sobre terraform, obviamente hay que instalarla en el sistema. Además, se debe generar una clave SSH para acceder a la instancia de VM.

Cómo instalar Terraform en Ubuntu

Terraform se puede instalar de dos formas diferentes. El primer método es de forma manual, que requiere que el usuario lo descargue e instale en el sistema, la alternativa y la forma más recomendada es la forma automatizada, que descarga e instala el terraform en el sistema con un par de líneas de código. Siga los siguientes comandos para que esto suceda.

  1. Instale el paquete de descompresión en el sistema para extraer el paquete terraform una vez que se descargue.
sudo apt-get install descomprimir
  1. Descargue e instale terraform desde el enlace dado. Tenga en cuenta que en el momento en que se está escribiendo el artículo, la última versión de terraform es 0.11.10. En el futuro, la versión podría ser diferente. Así que siempre preste atención a su sitio web oficial para obtener información sobre el último paquete terraform.
wget https: // lanzamientos.hashicorp.com / terraform / 0.11.10 / terraform_0.11.10_linux_amd64.Código Postal
  1. Extraiga el terraform al directorio activo actualmente. De forma predeterminada, es el directorio de inicio en Ubuntu.
descomprimir terraform_0.11.10_linux_amd64.Código Postal
  1. Mueva el terraform a la carpeta binaria. Terraform no tiene un archivo de instalación; por lo tanto, su archivo binario debe colocarse en el archivo bin manualmente.
sudo mv terraform / usr / local / bin /
  1. Utilice el siguiente comando para acceder a terraform desde la línea de comandos sin especificar su directorio.
terraform --versión

Cómo generar su propia clave SSH

Después de instalar terraform, el siguiente paso importante es generar su propio par de claves SSH pública / privada para comunicarse con la instancia de VM que está a punto de crearse. El par de claves SSH proporciona una seguridad sólida sobre la autenticación tradicional de contraseña / nombre de usuario; por lo tanto, se recomienda encarecidamente seguir esta opción, aunque no es obligatorio.

1. En el shell de Ubuntu, escriba el siguiente comando para generar el par de claves SSH.

ssh-keygen

2. Al principio, pide un nombre para el par de claves, luego la frase de contraseña para la clave ssh. La clave pública se crea como .pub, mientras que la clave privada se crea como . Ambas claves se crean en el directorio activo actualmente. Mantenga la clave privada segura en una ubicación segura, ya que es importante acceder a la instancia de VM.

Configurar Google Cloud con Terraform

Una vez que se completen los dos segmentos mencionados anteriormente, continúe y cree una cuenta de prueba gratuita en Google Cloud. Dado que crear una cuenta es un proceso simple, no se describe aquí. Después de obtener acceso a la consola de Google Cloud, siga los siguientes pasos para configurar Google Cloud con terraform.

  1. Navega a la siguiente URL.
    https: // consola.nube.Google.com
  1. Haga clic en el botón "Mis proyectos" en la esquina superior izquierda de la consola.
  2. Cree un nuevo proyecto o use un proyecto existente para esta guía. El propósito del "proyecto" es agrupar varios servicios en Google Cloud. El proyecto es el nodo más alto de esta jerarquía de servicios, y el resto de los servicios están bajo él. Un servicio creado en un proyecto no es accesible desde otro proyecto. Una vez que se creó el proyecto, copie y guarde su ID en un lugar seguro. En la siguiente captura de pantalla, el ID del proyecto es carismático-suma-202020, y puede ser diferente en su consola en la nube. 
  3. Navegue a la siguiente URL web para descargar el archivo de credenciales en formato JSON para autenticar al usuario cuando se conecte con la plataforma en la nube de Google. Esta es la cuenta de administrador; por lo tanto, asegúrese de que este archivo de credenciales esté seguro en una ubicación segura. https: // consola.nube.Google.com / apis / credentials / serviceaccountkey 
  4. Cree un archivo y cámbiele el nombre a principal.tf. Este archivo es el archivo de configuración para terraform, luego use el siguiente bloque de código como sus primeras líneas de código. El nombre del proveedor es para indicar el proveedor con el que conectarse. Terraform admite una gran cantidad de plataformas en la nube; por lo tanto, el nombre de la plataforma en la nube debe indicarse explícitamente. Aquí está Google, lo que significa que se conecta con la plataforma en la nube de Google. Además del encabezado, hay 3 atributos en el bloque, el atributo "credenciales" es para especificar el nombre del archivo de credenciales descargado anteriormente, el nombre del proyecto es la ubicación en la nube de Google donde se crea la instancia de VM. La identificación creada en el paso 3 se usa como el nombre del proyecto aquí. La región es la ubicación geográfica donde se crea la instancia de VM. Hay varias regiones. Utilice este enlace para hacer referencia a todas las regiones disponibles. https: // nube.Google.com / appengine / docs / locations proveedor "google"
    credenciales = "$ archivo (" CREDENTIALS_FILE.json ")"
    proyecto = "PROJECT_NAME"
    region = "REGION_NAME"

  1. Utilice el siguiente comando para instalar complementos para terraform. El siguiente comando escanea automáticamente el archivo de configuración de terraform e identifica qué complementos se instalarán, además, también descarga la información del proveedor para terraform. Esta guía utiliza la plataforma Google Cloud; por lo tanto, descarga la información del proveedor de terraform en la nube de Google. El comando identifica al proveedor a partir del nombre indicado en la palabra clave "proveedor" en el archivo de configuración terraform. terraform init
  1. Use los siguientes dos bloques de código para definir más información para la instancia de VM. Desde el principio, usa el complemento de identificación aleatoria para generar un número aleatorio con 8 dígitos, luego asigna ese número a la variable instance_id para usar como prefijo para el nombre de la instancia de VM. En el segundo bloque de código, crea una instancia de VM con el nombre "nucuta-vm-. El tipo de máquina es el paquete de servidor que se usa para alojar la instancia de VM. Consulte esta URL web para encontrar los tipos de máquinas disponibles. https: // nube.Google.com / compute / docs / machine-types. La zona es la ubicación exacta de la región. Hay principalmente 3 zonas disponibles en cada región, a, b, c. Cada zona tiene su propia configuración de hardware / software. Utilice esta URL web para consultar todas las zonas disponibles y su configuración de hardware. https: // nube.Google.com / compute / docs / Regions-zones / resource "random_id" "instance_id"
    byte_length = 8

    recurso "google_compute_instance" "nucuta"
    nombre = "nucuta-vm - $ random_id.instance_id.maleficio"
    machine_type = "f1-micro"
    zone = "asia-south1-a"
  1. Utilice el siguiente bloque de código dentro del bloque de código "google_compute_instance". Especifica el sistema operativo que se utilizará. Utilice esta URL web para encontrar todos los sistemas operativos disponibles para la plataforma en la nube de Google. https: // nube.Google.com / compute / docs / images. Dice imagen, porque los sistemas operativos se almacenan como archivos de "imagen". Cuando se ejecuta el archivo de configuración de terraform, se extrae el archivo de imagen y su sistema operativo se instala en la instancia de VM como en una computadora normal. El atributo de imagen está en este formato, proyecto de imagen / familia de imágenes. disco de inicio
    initialize_params
    imagen = "ubuntu-os-cloud / ubuntu-1604-lts"

  1. Utilice el siguiente código en el bloque de código "google_compute_instance". Especifica la secuencia de comandos de inicio que se ejecutará en la instancia de VM recién creada. Esta secuencia de comandos se ejecuta tan pronto como se creó la instancia de VM. En el siguiente ejemplo, actualiza el repositorio de información de paquetes local con la información más reciente, luego actualiza todos los paquetes con dist-upgrade, luego instala el paquete nginx. Asegúrese de usar el indicador -y para hacer que el proceso no sea interactivo, lo que significa que se ejecuta automáticamente y lleva a cabo el proceso sin requerir la intervención del usuario. metadata_startup_script = "sudo apt-get -y update;
    sudo apt-get -y dist-upgrade;
    sudo apt-get -y install nginx "
  1. Utilice el siguiente bloque de código en el bloque de código "google_compute_instance". El siguiente bloque de código especifica la interfaz de red, que se usa para conectar la instancia de VM actual con otras instancias, dispositivos y redes de VM. El bloque Access_config se utiliza para asignar a la instancia de VM una dirección IP externa para acceder a ella desde Internet. interfaz de red
    network = "predeterminado"
    access_config

  1. Finalmente, use el siguiente bloque de código en el bloque de código "google_compute_instance". Especifica el nombre de usuario y la clave SSH pública. Asegúrese de que la clave SSH pública generada esté en la misma carpeta que el archivo de configuración de terraform. El nombre de usuario debe ser el nombre de la cuenta desde donde se creó la clave SSH, por ejemplo, si el nombre de la cuenta es root, entonces su nombre de usuario es root. metadatos
    sshKeys = "dilanga: $ archivo (" dilanga.pub")"

  1. El bloque de código final debería verse así 
  2. Utilice el siguiente bloque de código fuera de del bloque de código "google_compute_instance". De forma predeterminada, la instancia de VM bloquea todo el tráfico entrante y saliente. Dado que esta guía crea un servidor web, los puertos 80 y 443 deben abrirse para permitir que los usuarios accedan a él a través de Internet. Desde el principio, el atributo de nombre crea un perfil en Google Compute Firewall para esta regla, el atributo de red especifica a qué interfaz de red se aplica la regla, allow block permite los protocolos y sus puertos especificados en ella. El protocolo Icmp se utiliza para hacer ping al servidor web para asegurarse de que esté disponible para el público. El ping se utiliza a menudo en muchos servicios para averiguar la disponibilidad de un sitio web. recurso "google_compute_firewall" "predeterminado"
    nombre = "nginx-firewall"
    network = "predeterminado"
     
    permitir
    protocolo = "tcp"
    puertos = ["80", "443"]

     
    permitir
    protocolo = "icmp"

  3. Utilice el siguiente bloque de código fuera de de "google_compute_instance" para imprimir la dirección IP pública de la instancia de VM actual. salida "ip"
    value = "$ google_compute_instance.nucuta.interfaz de red.0.access_config.0.nat_ip "
  4. Utilice el siguiente comando para verificar el archivo de configuración y el archivo de credenciales. También muestra una vista previa de cómo se ve el resultado final una vez que se ejecutó el archivo de configuración. plan de terraform
  5. luego use el siguiente comando para ejecutar el archivo de configuración. aplicar terraform
  6. Ahora use la dirección IP pública en cualquier navegador web para acceder al servidor web de la instancia de VM.
  7. Use el siguiente comando para acceder a la instancia de VM a través de SSH para administrar el servidor. Asegúrese de que la clave privada esté en el directorio actual o especifique la ruta a la clave privada.
  8. ssh -i @

    Conclusión

    Esto debería ser suficiente para que comiences.  El archivo de configuración completo, principal.tf, se muestra a continuación. Los textos resaltados se pueden cambiar según los requisitos del usuario.

    proveedor "google"
    credenciales = "$ archivo (" dilannga_credentials.json ")"
    proyecto = "suma-carismática-202020"
    region = "asia-south1"

     
    recurso "random_id" "instance_id"
    byte_length = 8

     
    recurso "google_compute_instance" "nucuta"
    nombre = "nucuta-vm - $ random_id.instance_id.maleficio"
    machine_type = "f1-micro"
    zone = "asia-south1-a"
     
    disco de inicio
    initialize_params
    imagen = "ubuntu-os-cloud / ubuntu-1604-lts"


     
    metadata_startup_script = "sudo apt-get -y update; sudo apt-get -y dist-upgrade;
    sudo apt-get -y install nginx "
     
    interfaz de red
    network = "predeterminado"
     
    access_config
     


     
    metadatos
    sshKeys = "dilanga: $ archivo (" dilanga.pub")"


     
    recurso "google_compute_firewall" "predeterminado"
    nombre = "nginx-firewall"
    network = "predeterminado"
     
    permitir
    protocolo = "tcp"
    puertos = ["80", "443"]

     
    permitir
    protocolo = "icmp"


     
    salida "ip"
    value = "$ google_compute_instance.nucuta.interfaz de red.0.access_config.0.nat_ip "
Trackpad en pantalla y puntero del mouse AppyMouse para tabletas Windows
Los usuarios de tabletas a menudo pierden el puntero del mouse, especialmente cuando son habituales para usar las computadoras portátiles. Los teléfon...
El botón central del mouse no funciona en Windows 10
La botón central del ratón le ayuda a desplazarse por páginas web largas y pantallas con una gran cantidad de datos. Si eso se detiene, bueno, termina...
Cómo cambiar los botones izquierdo y derecho del mouse en una PC con Windows 10
Es una norma que todos los dispositivos de mouse de computadora estén diseñados ergonómicamente para usuarios diestros. Pero hay dispositivos de mouse...