2017-06-14 72 views
0

我們有一個雲構建模板,它使用「ebs.config」中的配置將jenkins.war部署到AWS ElasticBeanst,並通過.ebextensions包含它。 EBS卷已連接,環境啓動成功。調用AttachVolume操作時發生錯誤(VolumeInUse)

當我們在戰爭文件進行任何更改,當它試圖部署新的WAR文件,我們得到錯誤ElasticBeanstalk,對於「01_attach卷」命令,在「ebs.config」棧更新:

堆棧錯誤:

以下資源(S)未能更新:[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命令?任何幫助............。

堆棧錯誤:

以下資源(S)未能更新:[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" 
          } 
      } 

}

+0

這是一個EBS卷,你試圖說服系統*從一個實例移動到另一個? –

回答

0

有解決錯誤

添加 「ignoreErrors」 兩路:在 「02_attach卷」 「真」 相似「05_trymount」

其他方法是使用aws cli檢查卷是否可用或作爲「02_attach-volume」中的測試命令附加在內

希望這有助於

+0

謝謝Lakhan Kriplani。你能幫我寫下這個條件來檢查卷是否可用,或者在我實際附加之前是否連接? –

相關問題