Экспериментирование локально с 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
Даже если у вас нет aws, вы можете создать бесплатный ec2 в течение одного года (вы должны позаботиться об использовании и какие ресурсы доступны для этой бесплатной учетной записи).
Это делает www.terraform.io/intro/getting-started/ доступным для вас.
Для этого требуется ваш реальный номер телефона (AWS вызывает вас "роботом", чтобы заполнить отображаемый PIN-код в телефоне). Для этого требуется действующая кредитная карта (вы можете использовать карту виртуальной карты MasterCard/Visa с 1 доллар США).
Оттуда приятно играть с реальным провайдером бесплатно!
От https://www.terraform.io/intro/getting-started/build.html
Для руководства по началу работы мы будем использовать только ресурсы, которые подпадают под свободный уровень AWS, то есть он будет бесплатным. Если у вас уже есть учетная запись AWS, вам может взиматься некоторая сумма денег, но она должна быть не более нескольких долларов.