前提条件
- curlとawscliが当該インスタンスにインストールされていること
- 当該インスタンスにec2 describe-instances可能なIAMロールが設定されていること
#!/bin/sh
TMPDIR=/tmp
# 自分自身(インスタンス)のIDを取得する
curl 'http://169.254.169.254/latest/meta-data/instance-id' > ${TMPDIR}/instance-id.txt
# 自分自身(インスタンス)のホスト名を取得する
aws ec2 describe-instances \
--query 'Reservations[].Instances[].{Name:Tags[?Key==`Name`].Value}' \
--filter "Name=instance-id,Values=`cat ${TMPDIR}/instance-id.txt`" \
| jq -r .[0].Name[0] > ${TMPDIR}/hostname.txt
# ホスト名をセットする
hostname `cat ${TMPDIR}/hostname.txt`