В Terraform, как я могу выполнить скрипт Powershell user_data с повышенными привилегиями? - PullRequest
1 голос
/ 03 марта 2020

Я создаю windows экземпляр EC2 с Terraform и пытаюсь установить Chocolatley с помощью сценария инициализации user_data. Но сценарий powershell завершается ошибкой, когда доступ запрещен

ec2_tableau.tf

resource "aws_instance" "tableau_instance" {
  ami                         = data.aws_ami.windowsbase.id
  for_each                    = var.tableau_instances
  subnet_id                   = each.value
  instance_type               = var.tableau_instance_type
  key_name                    = var.key_pair_name
  vpc_security_group_ids      = BLABLABLA
  user_data                   = data.template_file.userdata_tableau.rendered
  iam_instance_profile        = aws_iam_instance_profile.tableau_iam_profile.name
  associate_public_ip_address = false

  root_block_device {
    volume_type = "gp2"
    volume_size = var.tableau_root_device_size
  }

}

ec2_tableau_userdata.tf

data "template_file" "userdata_tableau" {
  vars = {
    #puppet_server = var.puppet_server
    proxy_url     = var.proxy_url
  }

  template = <<EOF
<powershell>
netsh winhttp set proxy $${proxy_url}

## Install Chocolatey ##
$env:chocolateyProxyLocation = 'http://$${proxy_url}'
Set-ExecutionPolicy Unrestricted -Scope Process -Force ; 
[System.Net.WebRequest]::DefaultWebProxy.Credentials = [System.Net.CredentialCache]::DefaultCredentials; iex ((New-Object Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" 

## Update path for Chocolatey
BLABLABLA
start-service ShellHWDetection
</powershell>
EOF
}

Powershell запускается в новом экземпляре EC2, но когда я попадаю в эту строку,

Set-ExecutionPolicy Unrestricted -Scope Process -Force; 

Файл Temp .ps1 запускается, работает нормально, но завершается неудачно в этой строке с «доступ запрещен» . Причина в том, что сценарий temp .ps1 выполняется без повышенных привилегий

Поэтому мой вопрос:

Как в Terraform я могу выполнить сценарий Powershell user_data с повышенными привилегиями?

...