Administre múltiples versiones de Terraform con tfenv

En mi artículo para principiantes de Terraform para Kubernetes, usé Terraform 11 y en un artículo futuro cubriré la actualización de Terraform 11 a 12. Para prepararse para esto, en este artículo le mostraré cómo usar tfenv, una herramienta que simplifica enormemente la conversión de una versión a otra, así como la gestión de múltiples versiones de Terraform en tu entorno de trabajo.

Índice

    Instalar tfenv

    Muchos lenguajes de codificación tienen herramientas que le permiten alternar entre versiones según las reglas ambientales. Un ejemplo (en el que se basa tfenv) es rbenv, que le permite elegir qué versión del Rubí con el que quieres trabajar.

    tfenv funciona en Linux, macOS y Windows; Cubriré la instalación de Linux usando Ubuntu 18.04, pero el repositorio GitHub de la herramienta tiene Instrucciones de instalación para otros sistemas operativos.

    La instalación de Linux utiliza algunos comandos de Git (consulte la introducción a la serie Git si aún no está familiarizado con ellos).

    Primero, crea un .tfenv carpeta en tu ${HOME} directorio:

    [email protected]:~$ mkdir .tfenv

    Clonar el tfenv depositar:

    [email protected]:~$ git clone https://github.com/tfutils/tfenv.git ~/.tfenv
    Cloning into '/home/jess/.tfenv'...
    remote: Enumerating objects: 21, done.
    remote: Counting objects: 100% (21/21), done.
    remote: Compressing objects: 100% (19/19), done.
    remote: Total 1105 (delta 8), reused 10 (delta 2), pack-reused 1084
    Receiving objects: 100% (1105/1105), 216.01 KiB | 2.84 MiB/s, done.
    Resolving deltas: 100% (703/703), done.

    Si prefieres Homebrew, puedes usar:

    $ brew install tfenv

    Exporta tu ruta a tu perfil de Bash:

    [email protected]:~$ echo 'export PATH="$HOME/.tfenv/bin:$PATH"' >> ~/.bash_profile

    Si solo desea usar comandos básicos para sistemas basados ​​​​en Ubuntu / Debian, hay otra opción que facilita un poco las cosas. Después de ejecutar el clon en .tfenv directorio, configure su perfil para publicar el archivo tfenv Comando en tu perfil en la próxima sesión:

    [email protected]:~/.tfenv$ . ~/.profile

    Una vez configurado el perfil, puede vincular simbólicamente su directorio al suyo .local/bin directorio para crear tfenv un ejecutable binario:

    [email protected]:~/.tfenv$ ln -s ~/.tfenv/bin/* ~/.local/bin

    ejecutar el which Comando y deberías ver tfenvla posición:

    jess@Athena:~/.tfenv$ which tfenv
    /home/jess/.local/bin/tfenv

    Cómo usar Tfenv

    Ahora que todo está instalado, verifique qué comandos están disponibles:

    [email protected]:~$ tfenv
    tfenv 2.0.0-37-g0494129
    Usage: tfenv <command> [<options>]

    Commands:
       install      Install a specific version of Terraform
       use          Switch a version to use
       uninstall    Uninstall a specific version of Terraform
       list         List all installed versions
       list-remote  List all installable versions

    Como puede ver, es una herramienta bastante simple que le permite instalar y desinstalar versiones de Terraform según sea necesario.

    Antes de decidir qué instalar, verifique qué versiones están disponibles. Este es un pequeño fragmento, ya que la lista tiene aproximadamente una milla de largo:

    [email protected]:~$ tfenv list-remote
    0.14.0-beta1
    0.14.0-alpha20201007
    0.14.0-alpha20200923
    0.14.0-alpha20200910
    0.13.5
    0.13.4
    0.13.3
    0.13.2
    0.13.1
    0.13.0
    0.13.0-rc1
    0.13.0-beta3
    0.13.0-beta2
    0.13.0-beta1
    0.12.29
    0.12.28
    0.12.27

    Instalar versiones de Terraform

    Para instalar la última versión de Terraform:

    [email protected]:~$ tfenv install latest
    Installing Terraform v0.13.5
    Downloading release tarball from https://releases.hashicorp.com/terraform/0.13.5/terraform_0.13.5_linux_amd64.zip
    ###################################################################################################################################################################################### 100.0%
    Downloading SHA hash file from https://releases.hashicorp.com/terraform/0.13.5/terraform_0.13.5_SHA256SUMS
    No keybase install found, skipping OpenPGP signature verification
    Archive:  tfenv_download.N3bzZ2/terraform_0.13.5_linux_amd64.zip
      inflating: /home/jess/.tfenv/versions/0.13.5/terraform  
    Installation of terraform v0.13.5 successful. To make this your default version, run 'tfenv use 0.13.5'

    Para instalar una versión específica de Terraform (en este caso, 0.12.29):

    [email protected]:~$ tfenv install 0.12.29
    Installing Terraform v0.12.29
    Downloading release tarball from https://releases.hashicorp.com/terraform/0.12.29/terraform_0.12.29_linux_amd64.zip
    ###################################################################################################################################################################################### 100.0%
    Downloading SHA hash file from https://releases.hashicorp.com/terraform/0.12.29/terraform_0.12.29_SHA256SUMS
    No keybase install found, skipping OpenPGP signature verification
    Archive:  tfenv_download.1YFOLh/terraform_0.12.29_linux_amd64.zip
      inflating: /home/jess/.tfenv/versions/0.12.29/terraform  
    Installation of terraform v0.12.29 successful. To make this your default version, run 'tfenv use 0.12.29'

    Finalmente, para instalar la última versión de Terraform 0.11:

    [email protected]:~$ tfenv install latest:^0.11
    Installing Terraform v0.11.15-oci
    Downloading release tarball from https://releases.hashicorp.com/terraform/0.11.15-oci/terraform_0.11.15-oci_linux_amd64.zip
    ###################################################################################################################################################################################### 100.0%
    Downloading SHA hash file from https://releases.hashicorp.com/terraform/0.11.15-oci/terraform_0.11.15-oci_SHA256SUMS
    No keybase install found, skipping OpenPGP signature verification
    Archive:  tfenv_download.8OxQ8k/terraform_0.11.15-oci_linux_amd64.zip
      inflating: /home/jess/.tfenv/versions/0.11.15-oci/terraform  
    Installation of terraform v0.11.15-oci successful. To make this your default version, run 'tfenv use 0.11.15-oci'

    ¡Era simple y ahora puedes ponerlos en uso!

    Cambiar versiones de Terraform

    Una vez que haya instalado varias versiones de Terraform, puede elegir cuál usar. Primero, averigüe sus opciones enumerando las versiones instaladas:

    [email protected]:~$ tfenv list
      0.13.5 (set by /home/jess/.tfenv/version)
      0.12.29
      0.11.15-oci

    De forma predeterminada, tfenv elige la versión más actualizada de Terraform que haya instalado. Averigüe la configuración predeterminada ejecutando el tfenv use mando:

    [email protected]:~$ tfenv use
    Switching default version to v0.13.5
    Switching completed

    [email protected]:~$ terraform --version
    Terraform v0.13.5

    Pero, ¿qué sucede si necesita usar una versión anterior? Este ejemplo cambia a la versión más antigua que instalé:

    [email protected]:~$ tfenv use 0.11.15-oci
    Switching default version to v0.11.15-oci
    Switching completed

    [email protected]:~$ terraform -version
    Terraform v0.11.15-oci

    Your version of Terraform is out of date! The latest version
    is 0.13.5. You can update by downloading from www.terraform.io/downloads.html

    ¡Es tan fácil como un pastel! Solo ejecuta el list comando y utilice la convención de nomenclatura proporcionada.

    Desinstalar versiones de Terraform

    Si tiene una versión de Terraform que ya no desea o necesita, puede eliminarla con el uninstall mando. Por ejemplo, no necesito la versión 0.13 de Terraform:

    [email protected]:~$ tfenv uninstall 0.13.5
    Uninstall Terraform v0.13.5
    Terraform v0.13.5 is successfully uninstalled

    Para confirmar que ya no está instalado:

    [email protected]:~$ tfenv list
      0.12.29
      0.11.15-oci

    Pensamientos finales

    La herramienta tfenv es excelente por muchas razones. Si necesita actualizar de una versión de Terraform a otra, esta es una de las formas más rápidas de actualizar y probar el resultado. Si su entorno tiene cosas que se ejecutan en diferentes versiones de Terraform, es fácil alternar según sea necesario. Si usa Terraform, pruebe tfenv y vea cómo puede transformar su entorno.

    Artículos de interés

    Subir