Рубрики
Uncategorized

Azure DevOps: Terraform переменные с Vault Azure Key Vault

Мы используем переменные при создании файлов конфигурации Terraform, чтобы изменить и адаптировать наш код … Tagged с помощью Azure, DevOps, Terraform, Security.

Мы используем переменные при создании файлов конфигурации Terraform, чтобы иметь возможность изменять и адаптировать наш код для повторного использования. При настройке переменных лучшим методом для меня было выбрать единое место для конфиденциальных (секретов) и нечувствительной (имен ресурсов и т. Д.), что позволяет мне управлять переменными в одном месте. В этом посте я расскажу, как использовать переменные в Terraform, как хранить переменные в Vault Azure и как использовать эти переменные в Azure DevOps как часть развертывания.

Как настроить переменные с использованием терраформа

Сначала вам нужно объявить переменную в коде Terraform, который вы пишете. Например:

variable "VMPASS"{
    type = string
}

Я обычно ставил все свои переменные в отдельный файл, но в одном и том же каталоге, чтобы мне было легче найти и управлять ими.

После настройки вы можете использовать переменную в коде, заменив строку, которую вы бы ввели с переменной, например:

password = var.VMPASS

Убедитесь, что вы совершили свой код в репозиторий в Azure DevOps.

Хранение переменных в Vault Azure Key

Очень просто, создайте свое хранилище ключа Azure, если вы еще этого не сделали. Из ресурса Vault Vault вам нужно будет создать секрет, выбрав Секреты из бокового меню.

Теперь выберите Генерировать/импорт Анкет

И здесь создайте имя секрета для переменной и значение, которое вам требуется для вашего кода. Обратите внимание, что Vault Azure Vault не поддерживает символы штор, например, подчеркивает, что нам требуется при использовании внешних источников для переменных. Нажмите Здесь Для получения дополнительной информации, но в следующем разделе мы рассмотрим, как мы их переживаем.

Ссылка Azure DevOps на ключевое хранилище

Теперь нам нужно связать наши Azure DevOps с Vault Azure Key. Откройте свой проект в Azure DevOps и в боковом меню SELECT Трубопроводы Тогда Библиотека Анкет Здесь выберите Переменная группа Анкет

Дайте вашей группе переменной имя и включите Ссылки Секреты из хранилища ключа Azure в качестве переменных переключать. Отсюда вы хотите выбрать подписку Azure и хранилище ключа, в которых вы создали свои переменные Terraform (если вы не связали свою подписку Azure с Azure DevOps, используйте ссылку

Вас могут попросить Разрешить Доступ к хранилищу ключа, но как только это будет сделано, вы можете выбрать Добавить Возможность добавить секреты в вашу библиотеку переменных.

Теперь нажмите Сохранить Чтобы завершить создание библиотеки.

Как использовать переменные в вашем трубопроводе

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

Здесь выберите Группа переменных ссылок и выберите недавно созданную группу переменных.

Теперь нам нужно добавить Bash Script Задача выполнения команд Remap, чтобы переменные Vault Key Vault были в поддерживаемом формате. Terraform ожидает от внешнего источника, формат будет Tf_var_name (Подчеркивается, не поддерживается в хранилище ключей Azure и почему мы должны переназначить), где имя является именем переменной. Ниже приведен пример команды, которую мы должны добавить в задачу сценария Bash, повторяющуюся для каждой переменной, которую необходимо перенести для Terraform.

echo "##vso[task.setvariable variable=TF_VAR_VMPASS;]$tf-var-vmpass"

Как только это будет сделано, вы можете добавить задачи Terraform для установки, инициализации и планирования/развертывания. Как только трубопровод работает, скрипт сопоставляет переменные хранилища Azure с новыми именами, которые могут быть идентифицированы Terraform.

Оригинал: «https://dev.to/officialcookj/azure-devops-terraform-variables-with-azure-key-vault-1m1»