【问题标题】:aws attach volume on bootup and mount it before apache mysql ... startsaws 在启动时附加卷并在 apache mysql ... 启动之前挂载它
【发布时间】:2016-07-19 23:54:17
【问题描述】:

ubuntu 14 亚马逊AWS

我正在尝试在启动时附加和安装卷 我在 /etc/init 中有以下 .conf 文件

start on started network-interface
script
/usr/bin/aws ec2 attach-volume ... && /bin/mount ... || /bin/mount ...  
end script

问题是附加是异步的,可能需要任意时间

所以如果我第一次启动一个实例 它附加卷,但如果我重新启动它将在安装时失败然后它会 附加失败,因为它已经附加,然后安装将起作用 任何后续重新启动都可以解决问题是第一次当卷 需要附上

所以我想我需要第二个脚本(不确定我是否可以在同一个 .conf 文件中执行此操作) 像

start on started network-interface
script
////try to attach it if we get an error then its already attached so mount it
/usr/bin/aws ec2 attach-volume ... || /bin/mount ...    
end script

start on WHEN volumen IS attached (no idea what i need here)
script
///new device attached to system mount it
/bin/mount ...
end script

所以我的问题是我如何知道设备/卷何时连接到系统 我希望在 apache mysql 之类的东西开始之前可以完成所有这些工作 如果不是,我还需要重新启动它们或更好地延迟 apache mysql 的启动......直到我的安装准备好 p.s 我需要以这种方式附加多个卷

感谢任何建议

【问题讨论】:

  • 您是否有理由不使用 /etc/fstab 在启动时自动挂载文件系统?
  • 我在那里做其他事情,附加 ip 设置 dns 我想把它全部放在一个地方,fstab 无法解决在我没有附加卷之前没有任何东西可以挂载的问题

标签: amazon-web-services upstart


【解决方案1】:
  1. 通过让实例创建并附加其自己的 EBS 卷,每个实例都需要 AWS 凭证或允许其创建和附加 EBS 卷的 IAM 实例角色。这可能存在安全风险。
  2. 如果您必须让实例创建自己的卷(仍然不是最佳),请不要使用upstart。这只需要在首次启动时执行一次,而不是在每次重新启动时执行。将实例 user-data 中的命令作为脚本传递,以便在首次启动时执行。
  3. 更好的是,使用卷创建实例并使其自动附加。创建一个自动缩放组并将 EBS 卷放入启动配置中。 (自动缩放组不必自动缩放。您可以将它们强制为精确大小。它们对于自动创建具有复杂配置的实例非常有用。)然后在 user-data 中,传递一个格式化卷和挂载的脚本它(并向/etc/fstab 添加一个条目)。

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html

【讨论】:

  • 看到上面的内容太长了,无法将其作为评论发布
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-09
  • 1970-01-01
  • 2011-08-25
  • 2015-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多