【问题标题】:Is there a way to remote exec a shell script as a root user through Terraform on Windows Azure有没有办法通过 Windows Azure 上的 Terraform 以 root 用户身份远程执行 shell 脚本
【发布时间】:2020-06-24 06:32:52
【问题描述】:

我正在使用 Terraform 在 Azure 云上进行跟踪,

  1. 在 Azure 上创建 RHEL OS VM。
  2. 将 setup.sh 文件复制到新 VM。
  3. 使用远程执行,我正在运行如下 setup.sh 脚本。

    provisioner "remote-exec" {
    inline = [
    "chmod +x /home/${var.admin_username}/setup.sh",
    "sudo /home/${var.admin_username}/setup.sh",
    ]
    connection {
    type     = "ssh"
    user     = "${var.admin_username}"
    password = "${var.admin_password}"
    host     = "${azurerm_public_ip.tf-vm-pip.fqdn}"
    }
    }
    

问题:在新 VM 上运行的脚本需要 root 权限才能执行命令。

我已经尝试了以下,

  1. user = "root" 不起作用,因为我们在 Azure 上没有 root 用户密码。
  2. 在内联块中尝试了 sudo su/ sudo -i。

    inline = [
    "chmod +x /home/${var.admin_username}/setup.sh",
    "echo "${var.admin_password}" | sudo -S su",
    "sudo /home/${var.admin_username}/setup.sh",
    ]
    
  3. 修改 shell 脚本,让每个命令都像下面的 sudo 一样执行,

    echo "password" | sudo -S -k cmd1
    echo "password" | sudo -S -k cmd2
    echo "password" | sudo -S -k cmd3....
    

第三种解决方案适用于大多数命令。但由于安全问题不是首选。

有没有办法通过 Azure 云上的 Terraform 以 root 用户身份远程安装脚本?

【问题讨论】:

标签: azure shell terraform remote-execution


【解决方案1】:

请使用以 root 身份执行脚本的自定义脚本扩展。 请在下面找到提及的链接以供参考。 http://hypernephelist.com/2019/06/25/azure-vm-custom-script-extensions-with-terraform.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多