Как установить несколько или две версии Terraform? - PullRequest
0 голосов
/ 07 февраля 2020

У меня много модулей Terraform, написанных на Terraform 0.11 с использованием gcp-провайдера Terraform, и я хочу обновить его до Terraform 0.12.

Для этой цели мне нужно сохранить обе версии на моем используйте систему в соответствии с версией, в которой написан модуль.

Я буду go один за другим в каждом модуле и обновлю модуль, используя terraform 0.12upgrade, чтобы он был совместим с Terraform 0.12 согласно эта документация .

Как безопасно хранить две версии Terraform в одной системе?

Ответы [ 2 ]

1 голос
/ 07 февраля 2020

Я очень рекомендую инструмент tfenv . Его разумно и легко можно использовать для управления несколькими установками Terraform. Это знакомо, если вы когда-либо использовали nvm (для nodejs) или rvm (для ruby).

Вы даже можете добавить файл .terraform-version в свои модули, и инструмент автоматически переключит версии terraform для вас, когда вы cd в модуль.

1 голос
/ 07 февраля 2020

Я пользуюсь Ubuntu 18.04 и добился этого безопасно, выполнив следующие шаги. Аналогичные шаги можно выполнить, чтобы сделать то же самое в любом дистрибутиве Linux (убедитесь, что вы загружаете совместимый двоичный файл. Подтвердите здесь )

ПРИМЕЧАНИЕ Выполнение следующих команд от имени root или пользователя sudo

Создание каталогов для хранения двоичных файлов Terraform

$ mkdir -p /usr/local/tf
$ mkdir -p /usr/local/tf/11
$ mkdir -p /usr/local/tf/12

Загрузка двоичных файлов для обеих версий

  1. Загрузите и распакуйте двоичный файл для Terraform 0.11 в отдельном каталоге:
    $ cd /usr/local/tf/11
    $ wget https://releases.hashicorp.com/terraform/0.11.14/terraform_0.11.14_linux_amd64.zip
    $ unzip terraform_0.11.14_linux_amd64.zip
    $ rm terraform_0.11.14_linux_amd64.zip
    
  2. Загрузите и распакуйте двоичный файл для Terraform 0.12 в отдельном каталоге:
    $ cd /usr/local/tf/11
    $ wget https://releases.hashicorp.com/terraform/0.12.20/terraform_0.12.20_linux_amd64.zip
    $ unzip terraform_0.12.20_linux_amd64.zip
    $ rm terraform_0.12.20_linux_amd64.zip
    
  3. Создайте символические ссылки для обеих версий Terraform в каталоге /usr/bin/:

    ln -s /usr/local/tf/11/terraform /usr/bin/terraform11
    ln -s /usr/local/tf/12/terraform /usr/bin/terraform12
    
    # Make both the symlinks executable
    chmod ugo+x /usr/bin/terraform*
    

Вызов различных версий

  • Теперь команда terraform11 вызывает версию 0.11 и terraform12 вызывает версию 0.12
  • Пример:
    $ terraform11
    $ terraform12
    

NOTE

  • Сохранение двоичные файлы в отдельных каталогах также помогают разделять их плагины, не мешая друг другу. * 10 50 *
...