Рубрики
Uncategorized

Террафовые рабочие пространства и местные жители для разделения окружающей среды

Terraform — это удивительный инструмент для обеспечения и управления изменениями в вашей облачной инфраструктуре, в то время как Fol … Teaged Terraform, AWS, DEVOPS.

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

Одной из общих потребностей на управлении инфраструктурой является создание нескольких средов, таких как тестирование и производство, в основном одинаковую настройку, но и удерживайте несколько переменных, таких как сетевые и размеры.

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

В качестве примера давайте работать со следующей простой инфраструктурой:

provider "aws" {
 region= "us-east-1"
}

resource "aws\_instance" "my\_service" {
 ami="ami-7b4d7900"
 instance\_type="t2.micro"
}

Теперь мы определили единую AWS EC2 экземпляра Andterraform Application, применим ваш тестирующий сервер.

Но это только одна среда, в этом простом примере можно подумать, что это было бы в порядке для простого копирования и вызовов на один сервис «Testing_My_Service», а другой «prod_my_server», но этот подход быстро приведет к путанице, поскольку ваша настройка растет в сложности И дополнительные ресурсы добавляются.

То, что вы можете сделать вместо этого, используйте рабочие пространства для их разделения.

terraform workspace new production

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

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

Но, очевидно, существуют различия между тестированием и производством, и первый подход будет использоваться переменные и приключение в связи с ресурсами. Вместо того, чтобы лучше подход был бы использовать недавно представленный терраформ местных жителей Держать ресурсы Lean Of Logic:

provider "aws" {
 region= "us-east-1"
}

locals {
 env="${terraform.workspace}"

counts = {
 "default"=1
 "production"=3
 }

instances = {
 "default"="t2.micro"
 "production"="t4.large"
 }

instance\_type="${lookup(local.instances,local.env)}"
 count="${lookup(local.counts,local.env)}"
}

resource "aws\_instance" "my\_service" {
 ami="[ami-7b4d7900](https://console.aws.amazon.com/ec2/home?region=us-east-1#launchAmi=ami-7b4d7900)"
 instance\_type="${local.instance\_type}"
 count="${local.count}"
}

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

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

Оригинал: «https://dev.to/diogok/terraform-workspaces-and-locals-for-environment-separation-2cgd»