Переменные среды в шаблонах azure-arm

Я пытаюсь автоматизировать развертывание в Azure с помощью шаблонов и упаковщика Azure.

У меня уже есть мой упаковщик ami (?) С приложением (java fat jar).

Теперь мое приложение подключается к концентратору azure evnet, который развертывается одновременно с моей виртуальной машиной и объявлен в том же шаблоне json.

Я хотел бы передать свойства соединения в vm как переменные среды в моем шаблоне руки. Возможно ли это с помощью лазурных шаблонов? Я нашел аналогичный вопрос по SO, заданный полгода назад, без ответа. Но, может быть, с тех пор что-то изменилось? Как люди решают такие вопросы на лазурном? К сожалению, Terraform не подходит, он не охватывает другие части лазурной инфраструктуры.


person slnowak    schedule 06.05.2017    source источник


Ответы (2)


Я хотел бы передать свойства соединения в vm как переменные среды в моем шаблоне руки. Возможно ли это с помощью лазурных шаблонов?

Как сказал 4c74356b41, шаблон не поддерживает это напрямую. В соответствии с вашим сценарием я предлагаю вам использовать Custom Script Расширение.

Расширение настраиваемых сценариев загружает и выполняет сценарии на виртуальных машинах Azure. Это расширение полезно для настройки после развертывания, установки программного обеспечения или любых других задач настройки / управления.

Расширение пользовательского сценария Azure поддерживает Linux и Windows, вы можете написать сценарий, который настраивает свойства подключения к виртуальной машине и использует расширение для выполнения на ваших виртуальных машинах. Пример шаблона расширения пользовательского скрипта приведен ниже:

 "resources": [
                {
                    "type": "extensions",
                    "name": "CustomScriptExtension",
                    "apiVersion": "2015-06-15",
                    "location": "[resourceGroup().location]",
                    "dependsOn": [
                        "[variables('vmName')]"
                    ],
                    "properties": {
                        "publisher": "Microsoft.Compute",
                        "type": "CustomScriptExtension",
                        "typeHandlerVersion": "1.8",
                        "autoUpgradeMinorVersion": true,
                        "settings": {
                            "fileUris": [
                                "[concat(parameters('_artifactsLocation'), '/', variables('ScriptFolder'), '/', variables('ScriptFileName'), parameters('_artifactsLocationSasToken'))]"
                            ],
                            "commandToExecute": "[concat('powershell -ExecutionPolicy Unrestricted -File ', variables('scriptFolder'), '/', variables('scriptFileName'), ' ', variables('scriptParameters'))]"
                        }
                    }
                }
            ]

Они могли найти множество примеров этого расширения на Git Hub.

person Shui shengbao    schedule 08.05.2017
comment
Да, я написал встроенный скрипт, который сохраняет свойства в / etc / environment. Спасибо. - person slnowak; 14.05.2017
comment
Можете ли вы добавить встроенный сценарий или содержимое внешнего сценария, который устанавливает переменные env в виртуальной машине, особенно для виртуальной машины Windows? - person Michael P; 05.08.2020

Нет, вы не можете напрямую установить env. переменные в виртуальную машину с использованием шаблонов ARM, но вы можете развернуть расширение сценария, используя шаблон ARM, который сделает это за вас.

person 4c74356b41    schedule 06.05.2017
comment
Есть ссылки? - person slnowak; 07.05.2017
comment
ссылки на что? - person 4c74356b41; 07.05.2017
comment
Ссылки о том, как создать такое расширение. - person slnowak; 07.05.2017