Подготовка расширения виртуальной машины Azure заняла слишком много времени
Когда я пытаюсь развернуть шаблон с расширением, я получаю сообщение об ошибке: "Истекло время ожидания для расширения 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"
}
}
Вот код sampleScript.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 ответ
Ошибка, которую вы сделали, заключается в том, что команды в скрипте по-прежнему интерактивны из-за команды sudo
. Когда вы используете командуsudo
, вам потребуется ввести пароль пользователя root.
И, насколько я знаю, расширение виртуальной машины уже имеет права 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