【问题标题】:AWS::CloudFormation::Init with Azure Resource ManagerAWS::CloudFormation::Init 与 Azure 资源管理器
【发布时间】:2019-07-19 02:42:11
【问题描述】:

AWS::CloudFormation::Initvirtual machine 的 Azure 资源管理器模板的等效项是什么?我想通过创建一些具有特定内容的文件来初始化虚拟机,然后运行一些脚本。我唯一的选择是在customData 中使用长脚本来创建这些文件和脚本吗?还是在 AWS 上有更好的东西,例如 cfn-init

我希望能够在我的 Azure 模板中定义一个对象,然后可以在虚拟机初始化期间使用它来安装一些包、编写一些文件和运行一些脚本。在 AWS 中,我可以将其与 cfn-init 一起使用:

        "Metadata" : {
            "AWS::CloudFormation::Init" : {
                "config" : {
                    "packages" : {
                        "apt" : {
                            "wget" : []
                        }
                    },
                    "files" : {
                        "/etc/some_file" : {
                            "content" : "some content"
                        }
                    },
                    "commands" : {
                        "foo": {
                            "command" : "echo hello world"
                        }
                    }
                }
            }
        }
    },

到目前为止,我能找到的唯一选项是 customData,这需要我编写一个大脚本,例如:

#!/bin/bash -ex

sudo apt install wget

cat <<EOF > /etc/some_file
some content
EOF

echo hello world

这种脚本很难维护。如果我要写的文件是二进制的,我需要添加一些像base64这样的hack。

我错过了更好的选择吗?

【问题讨论】:

    标签: azure azure-resource-manager


    【解决方案1】:

    我们可以在 ARM 模板中使用自定义脚本扩展来在启动时运行脚本

    Custom Script Docs

    我们可以使用的另一个选项是使用提到的 terraform here

    【讨论】:

    • 谢谢。有没有办法为自定义脚本扩展定义模板本身的文件内容?
    【解决方案2】:
    猜你喜欢
    • 2020-04-07
    • 2016-04-10
    • 2015-10-03
    • 1970-01-01
    • 2020-09-14
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多