Я просмотрел список рассылки и документацию, как это сделать, но ничего не нашел.
Вот мой пример использования: у меня довольно простая архитектура на AWS. Иногда мне нужно проверить разовые вещи, например, правильность конфигурации группы безопасности.
Для этого я раскручиваю два экземпляра. Поскольку мне не нравится щелкать мышью (и поскольку эти экземпляры нужно настраивать в разных частях VPC), я определил их в терраформе. .tf
файл.
Я бы хотел, чтобы эти два экземпляра запускались только тогда, когда они мне явно требуются. Другими словами, когда я это сделаю terraform apply
, Я не хочу, чтобы эти экземпляры создавались.
Вот несколько вещей, которые я пробовал:
temp
подкаталог и выполнить только этот файл (например, с terraform plan -out=disposable.plan -target=temp/disposable.tf
). Проблема: он не обнаруживает никаких изменений («Без изменений. Инфраструктура актуальна»).terraform apply temp/disposable.tf
. Проблема: он жалуется на то, что файл недействителен с «недействительным файлом плана» (файл действительно действителен)..tf.temp
и переименуйте его в .tf
когда мне нужен ресурс. Это нормально работает, но вы должны помнить, что это изменение нельзя фиксировать. Я бы предпочел что-то, что можно сделать из командной строки (например, запустить один .tf
файл).Это достижимо с помощью count и a условный:
Настройте переменную со значением по умолчанию false
в variables.tf
:
variable temp_instances {
default = false
}
Используйте это при определении ваших экземпляров, установив свойство count с помощью условный как это:
resource "aws_instances" "temp1" {
...
count = "${var.temp_instances ? 1 : 0}"
...
}
Поскольку переменная false
по умолчанию он устанавливает счетчик на 0 и не создает экземпляр. Затем вы можете при желании настроить его, установив для этой переменной значение true во время apply
:
terraform apply -var 'temp_instances=true'
Используя указанное выше условие, теперь это будет истинно, поэтому счетчик устанавливается на 1.