如何使用"实例ID"在EC2上的CoreOS上的cloud-config.yml中?

时间:2015-08-20 03:41:53

标签: amazon-web-services amazon-ec2 coreos cloud-init

我在Amazon EC2上有CoreOS实例。

可以从cloud-config.yml访问一些预定义的变量,例如" $ private_ipv4"或" $ public_ipv4"。

有没有办法访问"实例ID" EC2实例,例如" $ instance_id"? (我已经尝试了" $ instance_id"和" $ INSTANCE_ID"但它们都没有生效)

1 个答案:

答案 0 :(得分:3)

该变量不是内置的,但您可以执行以下两项操作之一:

  1. 直接卷曲该值的元数据服务:
  2. curl http://169.254.169.254/latest/meta-data/instance-id

    1. 让“oneshot”单位将该卷曲的结果写入文件,然后在您的单位中提供该文件,就像您可以获取环境信息一样。
    2. onehot单位会将INSTANCE_ID=abc123写入/etc/instance-id,而您的常规单位将依赖于包含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