The metadata fetcher scripts run each time an instance starts, and it is not safe to assume that responses from the instance metadata service (IMDS) will be as they were on first boot. Example: an EC2 instance can have its user data changed while the instance is stopped. When the instance is restarted, we want to see the new user data applied.
22 lines
789 B
Nix
22 lines
789 B
Nix
{ targetRoot, wgetExtraOptions }:
|
|
|
|
# OpenStack's metadata service aims to be EC2-compatible. Where
|
|
# possible, try to keep the set of fetched metadata in sync with
|
|
# ./ec2-metadata-fetcher.nix .
|
|
''
|
|
metaDir=${targetRoot}etc/ec2-metadata
|
|
mkdir -m 0755 -p "$metaDir"
|
|
rm -f "$metaDir/*"
|
|
|
|
echo "getting instance metadata..."
|
|
|
|
wget_imds() {
|
|
wget ${wgetExtraOptions} "$@"
|
|
}
|
|
|
|
wget_imds -O "$metaDir/ami-manifest-path" http://169.254.169.254/1.0/meta-data/ami-manifest-path
|
|
wget_imds -O "$metaDir/user-data" http://169.254.169.254/1.0/user-data && chmod 600 "$metaDir/user-data"
|
|
wget_imds -O "$metaDir/hostname" http://169.254.169.254/1.0/meta-data/hostname
|
|
wget_imds -O "$metaDir/public-keys-0-openssh-key" http://169.254.169.254/1.0/meta-data/public-keys/0/openssh-key
|
|
''
|