我在 Amazon EC2 上有 CoreOS 实例。
可以从 cloud-config.yml 访问一些预定义的变量,例如“$private_ipv4”或“$public_ipv4”。
有没有办法访问 EC2 实例的“实例 ID”,如“$instance_id”?(我试过 "$instance_id" 和 "$INSTANCE_ID" 但都没有生效)
我在 Amazon EC2 上有 CoreOS 实例。
可以从 cloud-config.yml 访问一些预定义的变量,例如“$private_ipv4”或“$public_ipv4”。
有没有办法访问 EC2 实例的“实例 ID”,如“$instance_id”?(我试过 "$instance_id" 和 "$INSTANCE_ID" 但都没有生效)
该变量不是内置的,但您可以执行以下两项操作之一:
curl http://169.254.169.254/latest/meta-data/instance-id
oneshot 单元将写入INSTANCE_ID=abc123
,/etc/instance-id
而您的常规单元将取决于 oneshot ( Requires=instanceid.service
/ After=instanceid.service
) contains EnvironmentFile=/etc/instance-id
,这将使 $INSTANCE_ID 在单元中可用。
更多关于在单位中使用环境变量的文档:https ://coreos.com/os/docs/latest/using-environment-variables-in-systemd-units.html#environmentfile-directive