【问题标题】:Error (VolumeInUse) occurred when calling the AttachVolume operation调用 AttachVolume 操作时发生错误 (VolumeInUse)
【发布时间】:2020-08-24 19:55:59
【问题描述】:

我们有一个云形成模板,它将 jenkins.war 部署到 AWS ElasticBeanstalk,并在“ebs.config”中配置并通过 .ebextensions 包含它。已附加 EBS 卷,环境启动成功。

当我们对war文件中的任何更改进行堆栈更新时,当它尝试部署新的war文件时,我们在ElasticBeanstalk中收到错误,对于“ebs.config”中的“01_attach-volume”命令:

堆栈错误:

以下资源更新失败:[JenkinsEBSVol]。

无法更新 AutoEnableIO 以外的卷属性。将属性更改回以前的值并再次更新堆栈。

ElasticBeanstalk 错误:

[实例:i-07ba0e47cc4ae929e] 实例上的命令失败。返回码:255 输出:调用 AttachVolume 操作时发生客户端错误 (VolumeInUse):vol-050a4afd80895bb79 已附加到实例。 .ebextensions/ebs.config 中的命令 01_attach-volume 失败。有关更多详细信息,请使用控制台或 EB CLI 检查 /var/log/eb-activity.log。

更新堆栈时在 ebs.config 中执行命令时抛出错误,因为它试图附加已附加的卷。那么我们如何解决这个问题呢?已附加时如何忽略 attach-volume 命令?任何帮助…………。

堆栈错误:

以下资源更新失败:[JenkinsEBSVol]。

无法更新 AutoEnableIO 以外的卷属性。将属性更改回以前的值并再次更新堆栈。

ElasticBeanstalk 错误:

[实例:i-07ba0e47cc4ae929e] 实例上的命令失败。返回码:255 输出:调用 AttachVolume 操作时发生客户端错误 (VolumeInUse):vol-050a4afd80895bb79 已附加到实例。 .ebextensions/ebs.config 中的命令 01_attach-volume 失败。有关更多详细信息,请使用控制台或 EB CLI 检查 /var/log/eb-activity.log。

ebs.config:

{
   "commands": {
      "01_clear-if-unmounted": {
         "command": "if ! mount | grep /usr/share/tomcat7/.jenkins > /dev/nul; then rm -rf /usr/share/tomcat7/.jenkins; fi"
      },
      "02_attach-volume": {
         "command": "aws ec2 attach-volume --region us-east-1 --volume-id $EBSVolumeId --instance-id $(curl -s http://169.254.169.254/latest/meta-data/instance-id) --device /dev/sdh",
         "env": {
            "EBSVolumeId": {
               "Fn::GetOptionSetting": {
                  "OptionName": "EBSVolumeId"
               }
            }
         }
      },
      "03_wait": {
         "command": "sleep 10"
      },
      "04_mkdir": {
         "command" : "mkdir /usr/share/tomcat7/.jenkins"
      },
      "05_trymount": {
         "command" : "mount /dev/sdh /usr/share/tomcat7/.jenkins",
         "ignoreErrors": "true"
      },
      "06_format-if-not-already": {
         "command": "if find /usr/share/tomcat7/.jenkins -maxdepth 0 -empty | read v; then mkfs -t ext3 /dev/sdh; fi"
      }
   }
}

【问题讨论】:

  • 这是一个 EBS 卷,您正试图说服系统将其从一个实例移动到另一个实例?

标签: amazon-web-services jenkins


【解决方案1】:

有两种方法可以解决错误

在类似于“05_trymount”的“02_attach-volume”中添加“ignoreErrors”:“true”

其他方法是使用 aws cli 检查卷是否可用或作为“02_attach-volume”中的测试命令附加

希望对你有帮助

【讨论】:

  • 谢谢拉坎·克里普拉尼。你能帮我写下那个条件,在我实际附加之前检查卷是否可用或附加吗?
猜你喜欢
  • 2020-01-16
  • 2020-07-08
  • 1970-01-01
  • 1970-01-01
  • 2022-11-08
  • 2018-06-08
  • 2018-04-12
  • 2020-01-19
  • 1970-01-01
相关资源
最近更新 更多