Created
November 6, 2016 07:45
Revisions
-
bgdnlp created this gist
Nov 6, 2016 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,56 @@ #!/bin/bash # # efsaz Set availability zone for EFS mounts in fstab # # chkconfig: 345 24 74 # description: Replaces the availability zone for EFS mount points in fstab \ # with the proper value for the current instance, which it gets \ # from instance metadata. This script must run before the \ # netfs script, which mounts network filesystems. It is useful \ # in autoscaling groups, where the instance starting might \ # be in a different AZ than the one the image was built from. \ # DEPENDS ON curl BEING INSTALLED ON THE SYSTEM. Adjust if needed. ### BEGIN INIT INFO # Short-Description: Set AZ for EFS mounts in fstab # Description: Set AZ for EFS mounts in fstab ### END INIT INFO # Uncommenting this line along with echo_success and echo_failure lines below # on RHEL-like Linus distributions offers some pretty printing #. /etc/init.d/functions case "$1" in start) echo -n "Updating EFS AZ in fstab" # the region defined here will be replaced with the current AZ region="eu-west" efs_server={{ tal_efs_server }} if [[ $efs_server != *amazonaws.com* ]]; then # the server name is probably wrong. exit, rather than being sorry #echo_failure exit 1 fi az=`curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone` if [[ $? -ne 0 ]]; then #echo_failure exit 2 fi # 'sed -i' doesn't exist on BSD and it's not safe fstab_new=`cat /etc/fstab | \ sed s/^${region}-..\.${efs_server}/${az}\.${efs_server}/` cp /etc/fstab /tmp/fstab.efsaz.bak echo "$fstab_new" > /etc/fstab if [[ $? -eq 0 ]]; then #echo_success #echo exit 0 else #echo_failure #echo exit 3 fi *) # anything else besides start will do nothing. maybe we could output # the relevant contents of fstab on status or something, but it's not # worth the effort esac