【问题标题】:How to use "Instance ID" in cloud-config.yml on CoreOS on EC2?如何在 EC2 上的 CoreOS 上的 cloud-config.yml 中使用“实例 ID”?
【发布时间】:2015-11-13 13:28:07
【问题描述】:

我在 Amazon EC2 上有 CoreOS 实例。

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

有没有办法访问 EC2 实例的“实例 ID”,例如“$instance_id”? (我试过“$instance_id”和“$INSTANCE_ID”但都没有生效)

【问题讨论】:

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


    【解决方案1】:

    该变量不是内置的,但您可以做以下两件事之一:

    1. 直接为该值卷曲元数据服务:

    curl http://169.254.169.254/latest/meta-data/instance-id

    1. 让一个“oneshot”单元将该 curl 的结果写入一个文件,然后在您的单元中获取该文件,就像您可以获取环境信息一样。

    oneshot 单元可以将INSTANCE_ID=abc123 写入/etc/instance-id,而您的常规单元将取决于包含EnvironmentFile=/etc/instance-id 的oneshot (Requires=instanceid.service/After=instanceid.service),这将使$INSTANCE_ID 可用于一个单元.

    更多关于在单元中使用环境变量的文档:https://coreos.com/os/docs/latest/using-environment-variables-in-systemd-units.html#environmentfile-directive

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 2023-03-29
    • 1970-01-01
    • 2011-10-20
    相关资源
    最近更新 更多