AWS :: CloudFormation :: Init with Azure Resource Manager

时间:2019-07-19 02:42:11

标签: azure azure-resource-manager

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的技巧。

我错过了更好的选择吗?

2 个答案:

答案 0 :(得分:1)

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

Custom Script Docs

我们可以使用的另一种选择是使用here

答案 1 :(得分:0)