mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-19 00:08:32 +01:00
413afdae6e
When no user-data is provided, the OpenStack metadata server doesn't expose the user-data route.
22 lines
901 B
Nix
22 lines
901 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
|
|
# When no user-data is provided, the OpenStack metadata server doesn't expose the user-data route.
|
|
(umask 077 && wget_imds -O "$metaDir/user-data" http://169.254.169.254/1.0/user-data || rm -f "$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
|
|
''
|