Как установить вывод команды как env. переменная в Windows CMD? - PullRequest
0 голосов
/ 18 марта 2019

Я сохранил ключ хранилища Azure в хранилище ключей и хочу получить ключ с помощью Azure cli и установить его как env. переменная в окне cmd до запуска скрипта terraform.

Команда, перечисленная ниже, не работает, может кто-нибудь сказать мне, что нужно изменить?

set ARM_ACCESS_KEY=$(az keyvault secret show --name terraform-backend-key --vault-name myKeyVault)

Ошибка при инициализации

enter image description here

Main.tf

variable "count" {}
variable "prefix" {
default="RG"
 }
terraform {
backend "azurerm" {
container_name       = "new"
storage_account_name  = "mfarg"
key                  = "terraform.tfstate"
}}
resource "azurerm_resource_group" "test" {
count ="${var.count}"
name     = "${var.prefix}-${count.index}"
location = "West US 2"
}

Вывод командной строки

enter image description here

Ответы [ 2 ]

2 голосов
/ 19 марта 2019

Чтобы установить переменную среды в Windows, я предлагаю вам использовать команду PowerShell для ее достижения. В PowerShell вы можете просто сделать это так:

$env:ACCESS_KEY=$(az keyvault secret show -n terraform-backend-key --vault-name myKeyVault --query value -o tsv)

Кроме того, в вашей команде CLI вы не можете показать секрет напрямую, он выводит весь секрет, а не только ключ доступа, как вы хотите. Смотрите разницу между двумя командами.

enter image description here

0 голосов
/ 17 июля 2019

Поздний ответ, но, возможно, полезный для тех, у кого все еще есть та же самая проблема.Этот метод будет работать в командной строке Windows, cmd.

For /f %%i in ('az keyvault secret show --vault-name "Your-KeyVault-Name" --name "Your-Secret-Name" --query "value"') do set "password=%%i"

Теперь, если вы просто запустите "echo% password%", вы увидите ваше секретное значение.Помните, что команда az должна быть между '', например, 'az keyvault secret и т. Д.'.

...