Как использовать "идентификатор экземпляра" в cloud-config.yml на CoreOS на EC2?
У меня есть экземпляры CoreOS на Amazon EC2.
Есть некоторые предопределенные переменные, доступные из cloud-config.yml, такие как" $private_ipv4 "или"$public_ipv4".
Есть ли способ получить доступ к "ID экземпляра" экземпляров EC2, таких как"$instance_id"? (Я пробовал "$instance_id " и "$INSTANCE_ID", но ни один из них не возымел действия)
1 ответ:
Эта переменная не встроена, но вы можете сделать одну из двух вещей:
- сверните службу метаданных для этого значения напрямую:
curl http://169.254.169.254/latest/meta-data/instance-id
- пусть модуль "oneshot" запишет результат этого скручивания в файл, а затем отправит этот файл в свои модули, как вы можете сделать это для информации об окружающей среде.
Единица oneshot будет записываться
INSTANCE_ID=abc123
в/etc/instance-id
, и Ваша регулярная единица будет зависеть от oneshot (Requires=instanceid.service
/After=instanceid.service
) содержитEnvironmentFile=/etc/instance-id
, который сделал бы $INSTANCE_ID доступно для использования в единице измерения.Дополнительные документы, используя env vars в единицах: https://coreos.com/os/docs/latest/using-environment-variables-in-systemd-units.html#environmentfile-directive