【发布时间】:2017-06-16 04:35:49
【问题描述】:
我正在尝试在 AWS 中使用弹性文件系统 (EFS)...我的目标是使用 /etc/fstab 自动挂载它
由于 EC2 实例会跨可用区域自动扩展,因此 EFS 挂载 IP 的变化取决于实例所在的区域。目前 AWS 提供此命令以将其挂载到正确的区域...
sudo mount -t nfs4 -o nfsvers=4.1 $(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone).fs-xxxx.efs.us-east-1.amazonaws.com:/ efs
但是,EFS DNS url 存在一些问题,我只能通过提供的 EFS IP 进行连接。所以我创建了一个 bash 脚本来获取与区域有关的正确 IP...
纳米/efsmount.sh
#!/bin/sh
CURR_ZONE=$(/usr/bin/curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone)
if [ "$CURR_ZONE" == "us-east-1e" ];then
echo "172.xx.xx.xx"
fi
... more if statements to cover all zones
我可以使用这个脚本挂载
sudo mount -t nfs4 -o nfsvers=4.1 $(/efsmount.sh):/ /efs
现在我的问题是……如何使用 fstab 自动挂载?
这样的事情是行不通的
$(/efsmount.sh):/ /efs nfs auto,noatime,nolock,bg,nfsvers=4.1,intr,tcp,actimeo=1800 0 0
谢谢
【问题讨论】:
-
fstab 不是编程环境,您不能在其中嵌入动态内容。您可以动态生成文件,但无论您尝试在内部做什么,它都会被读取为静态文本。
-
谢谢...有什么办法可以让它在开机时挂载吗?
-
cron 中的外部脚本或其他为您执行挂载调用的自动触发环境。那么你就可以找出IP并直接调用mount。
标签: amazon-web-services automount