Skip to content

Latest commit

 

History

History
79 lines (56 loc) · 5.86 KB

07-terraform-01-intro.md

File metadata and controls

79 lines (56 loc) · 5.86 KB

Задача 1. Выбор инструментов.

Что мы в итоге имеем на данный момент:

Инструмент Актуальность Назначение
Остатки Сloud Formation Редко используемый Инициализация ресурсов (развертывание и запуск в облаке серверов по нужному шаблону)
Некоторые образы сделаны при помощи Packer Редко используемый Шаблонизация серверов (сборка готовых образов ОС с заданными настройками)
Год назад начали активно использовать Terraform Актуальный Инициализация ресурсов (развертывание и запуск в облаке серверов по нужному шаблону)
Разработчики привыкли использовать Docker Актуальный Шаблонизация серверов (сборка готовых образов ОС с заданными настройками)
Уже есть большая база Kubernetes конфигураций Актуальный Оркестрация неизменяемой инфраструктуры
Для автоматизации процессов используется Teamcity Актуальный Тестирование кода и сборка проекта
Также есть совсем немного Ansible скриптов Редко используемый Управление конфигурацией (автоматическое развертывание и настройка сервисов поверх ОС)
И ряд bash скриптов для упрощения рутинных задач Редко используемый (Ручное развертывание и настройка сервисов поверх ОС)

Ответы на четыре вопроса представленных в разделе "Легенда"

Какой тип инфраструктуры будем использовать для этого проекта: изменяемый или не изменяемый?

  • Анализ показал, что большинство актуальных для компании средств относятся к неизменяемой конфигурации. Следовательно, более перспективно использовать ее.

Будет ли центральный сервер для управления инфраструктурой?

  • Нет, наиболее актуальные инструменты из таблицы его не используют

Будут ли агенты на серверах?

  • Да, Kubernetes и Teamcity используют агенты

Будут ли использованы средства для управления конфигурацией или инициализации ресурсов?

  • Инициализация ресурсов (Terraform)

Какие инструменты из уже используемых вы хотели бы использовать для нового проекта?

  • Docker, Terraform, Ansible, Kubernetes, Teamcity

Хотите ли рассмотреть возможность внедрения новых инструментов для этого проекта?

  • Если поступят предложения от команды, можно будет рассмотреть и принять к сведению.

Задача 2. Установка терраформ.

Официальный сайт: https://www.terraform.io/

Установите терраформ при помощи менеджера пакетов используемого в вашей операционной системе. В виде результата этой задачи приложите вывод команды terraform --version.

~$ terraform --version
Terraform v1.0.8
on linux_amd64

Задача 3. Поддержка легаси кода.

В какой-то момент вы обновили терраформ до новой версии, например с 0.12 до 0.13. А код одного из проектов настолько устарел, что не может работать с версией 0.13. В связи с этим необходимо сделать так, чтобы вы могли одновременно использовать последнюю версию терраформа установленную при помощи штатного менеджера пакетов и устаревшую версию 0.12.

В виде результата этой задачи приложите вывод --version двух версий терраформа доступных на вашем компьютере или виртуальной машине.

Ответ

для одновременного использования разных версий Terraform воспользовался tfenv.

  • Обращение к старой версии 0.12.0, установленной с помощью менеджера tfenv:
root@ubuntu-20:~/.tfenv# terraform --version
Terraform v0.12.0

Your version of Terraform is out of date! The latest version
is 1.0.8. You can update by downloading from www.terraform.io/downloads.html
  • Обращение к текущей версии 1.0.8, установленной с помощью менеджера пакетов:
root@ubuntu-20:~/.tfenv# /usr/bin/terraform --version
Terraform v1.0.8
on linux_amd64