mysql - Azure VM 扩展预配完成时间过长
问题描述
当我尝试使用扩展部署模板时,出现超时错误,因为“ VM 扩展 InstallLamp 的配置已超时。扩展配置花费了太长时间才能完成。扩展未报告消息”
我正在尝试通过 VM 中的扩展安装 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
解决方案
对于这个问题,您犯的错误是脚本中的命令仍然是交互式的,因为 command 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
推荐阅读
- python - Python3,修复 JSON 缺少双引号问题
- python - 是否必须在项目(工作区)文件夹中启动 VS Code?
- java - spring mvc没有xml配置404错误
- azure-devops - YAMEL 文件中的问题
- mysql - 需要使用sql查询根据表1中的Occurrence结果推导出表2中的出现次数
- powershell - 如何使用 Powershell 修改 Firefox config (pref.js) 行
- spring - 在 ClientConnectionFactory 连接建立/接受时触发操作
- delphi - 在 Lazarus/Delphi 中添加新行或新列后,是否可以立即更改 StringGrid 单元格中的文本?
- android - 如何将数据从 ViewPagerAdapter 传递到不同的活动
- python - 为什么类的静态变量不能是类的实例?