Экспериментирование локально с Terraform

Мы изучаем Terraform как способ управления нашей инфраструктурой, и это выглядит очень интересно.

Однако, в настоящее время наш корпоративный прокси-сервер/firewall вызывает terraform apply сбой из-за ограничений безопасности.

Пока мы ждем разрешения этих сетевых проблем, есть ли способ, которым я могу экспериментировать с Terraform локально, без необходимости подключения к Azure или AWS? Возможно, с помощью Virtual Box?

Ответ 1

Terraform поддерживает кучу providers, но подавляющее большинство из них основаны на облачных вычислениях.

Однако вы можете настроить локальный кластер VMWare VSphere и использовать поставщик VSphere для взаимодействия с этим, чтобы вы могли двигаться. Там также есть провайдер OpenStack, если вы хотите настроить кластер OpenStack.

В качестве альтернативы вы можете попробовать использовать что-то вроде HPE Eucalyptus, которое обеспечивает совместимость API с AWS, но по положению.

Тем не менее, если у вас уже нет центра обработки данных, работающего под управлением VMWare, все эти параметры довольно ужасны и потребуют много усилий для настройки, поэтому вам лучше всего ждать, пока ваш брандмауэр будет открыт.

Нет, к сожалению, хорошая сторонняя реализация стороннего поставщика Virtualbox, но вы можете попробовать этот сторонний поставщик Virtualbox.

Ответ 2

Если у вас есть доступ к AWS/Azure, почему бы вам просто не создать там машину? Таким образом вы можете использовать это для работы, исследовать терраформу и изучать ее без ограничений "отдела нет".

Использование разных провайдеров - отличная идея, поскольку предоставление одного провайдера может сильно отличаться от другого или даже проверки подлинности (поставщик AWS, вероятно, лучше всего начать)

Ответ 3

Один из способов привыкнуть к нескольким вещам, которыми обладает Terraform (управление зависимостями, конфигурация, управляемая данными, жизненный цикл ресурсов и т.д.), - это использовать на вашей рабочей станции поставщик null_resource. Это предполагает, что у вас достаточно контроля над рабочей станцией, чтобы установить Terraform (это довольно сложно во многих местах с высокими требованиями к безопасности).

Используя Terraform null_resource Provider, вы можете привыкнуть ко многим вещам, которые вы будете использовать в облаке. Если у вас есть возможность установить Docker на вашу рабочую станцию, вы можете пойти очень далеко, действуя как облако, потому что Docker поддерживает режим роя на рабочей станции.

Например,

resource "null_resource" "docker_swarm" {

    provisioner "local-exec" {
      command = "docker swarm init"
    }

    provisioner "local-exec" {
      command = <<EOF
        docker swarm leave --force

        # Careful here. This assumes you want a clean Docker slate,
        # remove all Docker volumes from your machine.
        docker volume rm -f $(docker volume ls -q) 
EOF
      when = "destroy"
    }
}

resource "null_resource" "start_stack" {

    provisioner "local-exec" {
      command = "docker stack deploy -c ./docker-stack.yml demostack"
    }

    provisioner "local-exec" {
      command = "docker stack rm demostack"
      when = "destroy"
    }

    depends_on = ["null_resource.docker_swarm"]
}

В этом простом примере выше вы видите, как вы управляете жизненным циклом. И вот классная часть: именно так вы бы запустили поддерживаемый Docker Swarm в AWS, Azure и т.д., Хотя это будет немного сложнее и займет немного больше времени.

Если у вас нет Docker, я уверен, что вы можете подумать о каком-то другом жизненном цикле создания/уничтожения, который вы можете иметь на своей рабочей станции.

Удачи! ИМХО Terraform - одна из самых глубоких вещей, с которыми мы сталкиваемся в наших клавиатурах (Docker тоже стоит там).

Ответ 4

если вы можете скачать файлы провайдера в другом месте и отправить их себе, вы можете использовать их локально в каталоге проекта. Вот пример с поставщиком данных Terraform для Mac:

wget https://releases.hashicorp.com/terraform-provider-datadog/1.0.4/terraform-provider-datadog_1.0.4_darwin_amd64.zip  
unzip terraform-provider-datadog_1.0.4_darwin_amd64.zip   
mkdir -p project_directory/terraform.d/plugins/darwin_amd64    
mv terraform-provider-datadog_1.0.4_darwin_amd64  project_directory/terraform.d/plugins/darwin_amd64  
cd project_directory  
terraform init

Ответ 5

Даже если у вас нет , вы можете создать бесплатный ec2 в течение одного года (вы должны позаботиться об использовании и какие ресурсы доступны для этой бесплатной учетной записи).

Это делает www.terraform.io/intro/getting-started/ доступным для вас.

Для этого требуется ваш реальный номер телефона (AWS вызывает вас "роботом", чтобы заполнить отображаемый PIN-код в телефоне). Для этого требуется действующая кредитная карта (вы можете использовать карту виртуальной карты MasterCard/Visa с 1 доллар США).

Оттуда приятно играть с реальным провайдером бесплатно!

От https://www.terraform.io/intro/getting-started/build.html

Для руководства по началу работы мы будем использовать только ресурсы, которые подпадают под свободный уровень AWS, то есть он будет бесплатным. Если у вас уже есть учетная запись AWS, вам может взиматься некоторая сумма денег, но она должна быть не более нескольких долларов.