Обновите terraform до определенной версии

Вариант использования

Я установил Terraform v0.11.13 через доморощенное пиво и, согласно рекомендациям terraform, хочу перейти на версию v0.11.14, прежде чем выполнять основное обновление до v0.12.0.

Эта проблема

Когда я запускаю brew upgrade terraform или загружаю пакет Mac с веб-сайта terraform, я думаю, что моя версия terraform немедленно обновляется до версии 0.12.0.

Итак, как я могу вместо этого перейти на v0.11.14?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
121
0
71 772
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Ответ принят как подходящий

Особенно, играя с бета-версиями Terraform 0.12, я научился любить тфенв.

После установки (через brew install tfenv в MacOS) это позволяет легко обнаружить, установить и активировать любую версию Terraform:

$ tfenv list-remote
0.12.0
0.12.0-rc1
0.12.0-beta2
0.12.0-beta1
0.12.0
0.11.14
...

$ tfenv install 0.11.14
[INFO] Installing Terraform v0.11.14
[INFO] Downloading release tarball from https://releases.hashicorp.com/terraform/0.11.14/terraform_0.11.14_darwin_amd64.zip
...
[INFO] Installation of terraform v0.11.14 successful
[INFO] Switching to v0.11.14
[INFO] Switching completed

Если вы хотите перейти на другую версию:

$ tfenv use 0.12.0
[INFO] Switching to v0.12.0
[INFO] Switching completed

Стивен, ты король!

Ben Yitzhaki 07.01.2020 17:06

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

luk2302 13.08.2020 14:45

Я получаю следующее: "Инициализация плагинов провайдера... - Поиск последней версии hashicorp/google... Ошибка: не удалось запросить доступные пакеты провайдеров"

JackTheKnife 18.03.2021 17:22

если уже установлена ​​последняя версия. Возможно, вам придется сначала отключить brew unlink terraform перед установкой определенной версии из tfenv. После установки введите tfenv use 0.12.30, чтобы использовать новую версию.

Anum Sheraz 04.02.2022 12:47

Для тех, кто хочет сделать то же самое, не используя доморощенный:

  1. Получить источник
$ wget https://releases.hashicorp.com/terraform/0.11.14/terraform_0.11.14_linux_amd64.zip

$ unzip terraform_0.11.14_linux_amd64.zip
  1. Дайте бинарным исполняемым файлам разрешения и установите (перезапишет текущую версию)
$ chmod +x terraform

$ sudo mv terraform /usr/local/bin/
  1. Подтвердить версию
$ terraform --version

Источник: https://titosoft.github.io/kvm/terraform-and-kvm/#installing-terraform

я получаю эту ошибку с вашим кодом -bash: /usr/local/bin/terraform: невозможно выполнить двоичный файл

Rıfat Erdem Sahin 16.08.2019 12:25

простой, прямолинейный.

Chaim Eliyah 13.03.2020 00:46

Помимо обычных решений, простой реализацией требуемой проблемы будет установка tfswitch. Он может менять версии терраформирования всего одной командой. Руководство по установке и использованию приведено в данном связь.

Примечание: Вы не можете вернуться к предыдущим версиям после инициализации скрипта (terraform init).

Я использую TF с 0.6 и активно использую много разных версий на своей рабочей станции. Я делаю это с помощью direnv [https://direnv.net/], так как он был доступен уже довольно давно, и он хорошо работает для управления бинарной версией TF в каталоге, плюс он позволяет мне передавать env vars для каждого каталога в TF без особых хлопот.

Образец .envrc:

export AWS_PROFILE=prod
export PATH=/usr/local/terraform/terraform-0.12.20:$PATH

export TF_VAR_dd_api_key=REDACTED
export TF_VAR_dd_app_key=REDACTED

Когда я перехожу в каталог, содержащий этот .envrc, он не только помещает правильный двоичный файл TF в мой PATH, но также устанавливает мой профиль AWS и, в данном случае, некоторые ключи API DataDog.

Когда я хочу обновить TF, я убеждаюсь, что нужный двоичный файл помещен в правильное место, и редактирую .envrc, чтобы он находился в PATH. В идеале .envrc не должен передаваться на Github, поскольку у других людей могут быть другие настройки, и особенно ключи API не должны помещаться в репозиторий.

Я знаю, что это немного старомодно, но это прекрасно работает для меня.

Есть хорошая альтернатива тфенв, которой я пользуюсь уже несколько лет — tfswitch.

  1. Простой процесс установки с:
# MacOS
brew install warrensbox/tap/tfswitch

# Linux
curl -L https://raw.githubusercontent.com/warrensbox/terraform-switcher/release/install.sh | bash
  1. Поставляет альфа-, бета-версии и версии-кандидаты на терраформирование.
  2. Поддерживает несколько вариантов изменения версий, таких как:
  • Руководство с tfswitch VERSION_NUMBER.
  • Автоматически определяет и переключается на версию, описанную в файле version.tf.
  • Автоматически переключаться на пользовательские двоичные файлы по пользовательскому пути (полезно для пользователей или служб с ограниченными правами).
  • Автоматическое переключение с помощью .tfswitchrc, .terrafom-version — требует минимальной настройки и поддерживает bash, zsh и fish.
  1. Легко интегрируется с Дженкинс и CircleCI — я не проверял, эти функции были добавлены 10 и 5 месяцев назад соответственно.

В общем, отличный и простой помощник, рекомендую.

Простой и лучший способ сделать: -

# MacOS
 brew install warrensbox/tap/tfswitch

# Linux
curl -L https://raw.githubusercontent.com/warrensbox/terraform- 
switcher/release/install.sh | bash

затем используйте любую из команд, чтобы изменить версию-

1. tfswitch ==> you will see option to select version.


2. tfswitch 0.14.3 ==> this way

ashishkarpe@Ashishs-MacBook-Air terraform % brew install warrensbox/tap/tfswitch ==> Нажатие warrensbox/tap Клонирование в '/opt/homebrew/Library/Taps/warrensbox/homebrew-tap'... remote: Перечисление объектов: 549 , Готово. удаленный: Подсчет объектов: 100% (107/107), выполнено. remote: Сжатие объектов: 100% (106/106), готово. удаленный: Всего 549 (дельта 49), повторно использовано 5 (дельта 1), повторно использовано 442 объекта получения: 100% (549/549), 69,88 КиБ | 1,89 МБ/с, готово. Разрешение дельт: 100% (251/251), выполнено.

Ashish Karpe 07.03.2022 13:04

Ошибка: Недопустимая формула: /opt/homebrew/Library/Taps/warrensbox/homebrew-tap/Formula/j‌​scheck.rb jscheck: Calling Bottle: ненужный отключен! Замены нет. Сообщите об этой проблеме в warrensbox/tap tap (не Homebrew/brew или Homebrew/core): /opt/homebrew/Library/Taps/warrensbox/homebrew-tap/Formula/j‌​scheck.rb:6

Ashish Karpe 07.03.2022 13:04

Ошибка: недопустимая формула: /opt/homebrew/Library/Taps/warrensbox/homebrew-tap/Formula/h‌​ubapp.rb hubapp: Calling Bottle: ненужный отключен! Замены нет. Сообщите об этой проблеме в warrensbox/tap tap (не Homebrew/brew или Homebrew/core): /opt/homebrew/Library/Taps/warrensbox/homebrew-tap/Formula/h‌​ubapp.rb:9

Ashish Karpe 07.03.2022 13:04

Ошибка: недопустимая формула: /opt/homebrew/Library/Taps/warrensbox/homebrew-tap/Formula/h‌​ealth-check.rb Health-check: Calling Bottle: ненужный отключен! Замены нет. Сообщите об этой проблеме в warrensbox/tap tap (не Homebrew/brew или Homebrew/core): /opt/homebrew/Library/Taps/warrensbox/homebrew-tap/Formula/h‌​ealth-check.rb:9 Ошибка: невозможно tap warrensbox/tap: неверный синтаксис в tap!

Ashish Karpe 07.03.2022 13:04

Используйте tfswitch, это просто и эффективно.

Ваш ответ может быть улучшен с помощью дополнительной вспомогательной информации. Пожалуйста, редактировать, чтобы добавить дополнительную информацию, например цитаты или документацию, чтобы другие могли подтвердить правильность вашего ответа. Дополнительную информацию о том, как писать хорошие ответы, можно найти в справочном центре.

Community 16.10.2021 01:38

Другие вопросы по теме