我們有一個雲構建模板,它使用「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"
}
}
}
這是一個EBS卷,你試圖說服系統*從一個實例移動到另一個? –