Azure Подготовка расширения VM заняла слишком много времени для завершения - PullRequest
0 голосов
/ 13 февраля 2020

Когда я пытаюсь развернуть шаблон с расширением, я получаю сообщение об ошибке тайм-аута как " Время подготовки расширения VM InstallLamp истекло. Подготовка расширения заняла слишком много времени для завершения. Расширение не сообщило сообщение "

Я пытаюсь установить MySql через расширение в виртуальной машине.

вот код расширения

{
"type": "Microsoft.Compute/virtualMachines/extensions",
"apiVersion": "2018-06-01",
"name": "[concat(variables('vmName'),'/', 'InstallMySQL')]",
"location": "[parameters('location')]",
"dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/',variables('vmName'))]"
],
"properties": {
    "publisher": "Microsoft.Compute",
    "type": "CustomScriptExtension",
    "typeHandlerVersion": "1.7",
    "autoUpgradeMinorVersion":true,
    "settings": {
        "fileUris": [
            "<url of custom script>"
        ],
        "commandToExecute": "sampleScript.sh"
    }
}

Здесь это образец кода. sh код

sudo apt-get -y update
dbpass=12345678
export DEBIAN_FRONTEND=noninteractive
echo "mysql-server-5.7 mysql-server/root_password password" $dbpass | sudo debconf-set-selections >>
echo "mysql-server-5.7 mysql-server/root_password_again password" $dbpass | sudo debconf-set-selections
sudo apt-get -y install mysql-server-5.7
sudo apt-get -y install apache2 php7
sudo service apache2 restart

1 Ответ

0 голосов
/ 18 февраля 2020

Для этой проблемы ошибка, которую вы сделали, состоит в том, что команды в сценарии все еще интерактивны из-за команды sudo. Когда вы используете команду sudo, вам потребуется ввести пароль пользователя root.

И, как я знаю, расширение VM уже имеет разрешение root для установки программного обеспечения. Поэтому вам не нужно использовать команду sudo в вашем скрипте. Вам просто нужно убедиться, что скрипт доступен и изменить его следующим образом:

apt-get -y update
dbpass=12345678
export DEBIAN_FRONTEND=noninteractive
echo "mysql-server-5.7 mysql-server/root_password password" $dbpass | debconf-set-selections
echo "mysql-server-5.7 mysql-server/root_password_again password" $dbpass | debconf-set-selections
apt-get -y install mysql-server-5.7
apt-get -y install apache2 php7
service apache2 restart
...