【问题标题】:Terraform, Windows, Userdata with a batch scriptTerraform、Windows、带有批处理脚本的用户数据
【发布时间】:2021-12-07 04:35:25
【问题描述】:

我有一个名为 Windows_network_adp.bat 的批处理脚本。内容是:

 <script>
 netsh interface ipv4 set address name="Ethernet 3" static 10.*.*.* 255.*.*.*
 </script>

它基本上将静态 IP 添加到 Windows EC2 上的第二个 NIC。如果我手动将内容粘贴到 AWS 控制台用户数据部分,则此批处理文件有效。我希望它通过 terraform 自动进入。

到目前为止,我已经尝试了以下方法:

第一次尝试

user_data_base64  = base64encode(<<EOF
<script>
netsh interface ipv4 set address name="Ethernet 3" static 10.*.*.* 255.*.*.*
</script>
EOF
)

第二次尝试

user_data_base64            = base64encode(file("build/Windows_network_adp.bat"))

在 terraform 上没有错误适用。但是当我远程进入 Windows ec2 时,网络适配器仍然设置为 dhcp,并且我的静态条目尚未应用。

非常感谢任何帮助。

【问题讨论】:

    标签: amazon-ec2 terraform user-data


    【解决方案1】:

    所以只是为了更新问题解决了。

    在此实例中如何处理用户数据的语法如下。不幸的是,问题是在 Windows EC2 之后在 terraform 中创建了第二个接口,因此我在第二个 NIC 上配置静态 IP 的用户数据是无关紧要的,因为它尚未创建。用户数据不需要 base 64 编码,因为我现在有一个 powershell 脚本正在执行另一个功能。那里没有太多关于批处理脚本的用户数据信息,所以我希望这可以帮助其他人并防止他们像我们一样陷入困境。

    user_data                   = <<EOF
    <script>
    netsh interface ip set address "Ethernet 3" static "10.*.*.*" "*.*.*.*"
    </script>
    EOF
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 2021-10-27
      • 2021-05-30
      相关资源
      最近更新 更多