Как сделать так, чтобы пользователь выбирал пароль ssh или открытый ключ в шаблоне Azure ARM - PullRequest
0 голосов
/ 25 января 2019

Я создал свой шаблон Linux, все работает нормально, но у меня есть остающийся вопрос. На самом деле я хочу позволить своим пользователям выбирать между использованием пароля или открытого ключа SSH для аутентификации на ВМ. Я создал 2 параметра, пароль и ключ, и я хочу сделать один обязательным, если другой пустой, и установить часть ресурсов соответствующим образом.

Как мне этого добиться?

1 Ответ

0 голосов
/ 25 января 2019

Вы можете использовать этот фрагмент (добавьте эти переменные \ параметры в свой шаблон):

"parameters": {
    "authType": {
        "type": "string",
        "defaultValue": "password",
        "allowedValues": [
            "password",
            "ssh"
        ]
    }
},
"variables": {
    "ssh": {
        "computerName": "[variables('vmName')]",
        "adminUsername": "[parameters('adminUsername')]",
        "linuxConfiguration": {
            "disablePasswordAuthentication": true,
            "ssh": {
                "publicKeys": [
                    {
                        "path": "[concat('/home/',parameters('adminUsername'),'/.ssh/authorized_keys')]",
                        "keyData": "[parameters('sshPublicKey')]"
                    }
                ]
            }
        }
    },
    "password": {
        "computerName": "[variables('vmName')]",
        "adminUsername": "[parameters('adminUsername')]",
        "adminPassword": "[parameters('adminPassword')]"
    }
},

и затем в своем определении виртуальной машины сделайте это:

"osProfile": "[variables(parameters('authType'))]"

, которая извлечет либо переменную с именем ssh, либо переменную с именем password и присвоит ее osProfile

...