systemd-imds - Man Page

Cloud IMDS (Instance Metadata Service) tool

Synopsis

systemd-imds-import​.service

systemd-imds [OPTIONS...] [KEY]

Description

systemd-imds is a tool for acquiring data from IMDS (Instance Metadata Service), as provided in many cloud environments​. It is a client to systemd-imdsd@.service(8), and provides access to IMDS data from shell environments​.

The tool can operate in one of five modes:

In addition, when invoked as a Varlink service (i​.e​. via socket activation through systemd-imds-metrics​.socket), systemd-imds acts as an io​.systemd​.Metrics provider for systemd-report(1)​. It exposes the detected cloud vendor and the well-known "hostname", "region", "zone", "ipv4-public" and "ipv6-public" fields as metrics in the "io​.systemd​.InstanceMetadata​." namespace​. The data is acquired on demand from systemd-imdsd@.service(8), benefiting from its local cache​.

Options and Commands

--well-known=, -K

Takes one of "hostname", "region", "zone", "ipv4-public", "ipv6-public", "ssh-key", "userdata", "userdata-base", "userdata-base64"​. Acquires a specific "well-known" field from IMDS​. Many of these fields are commonly supported by various IMDS implementations, but typically some fields are not​. Note that if --well-known=userdata-base is used an additional subkey should be specified as positional argument, which encodes the specific userdata item to acquire​.

Added in version 261​.

--refresh=

Takes a time in seconds as argument, and indicates the required "freshness" of the data, in case cached data is used​.

Added in version 261​.

--cache=

Takes a boolean​. If set to false local caching of IMDS is disabled, and the data is always acquired fresh from the IMDS endpoint​.

Added in version 261​.

--userdata,  -u

Acquire this instance's IMDS user data, if available​. See above for details​.

Added in version 261​.

--import

Acquires IMDS data and writes relevant fields as credentials to /run/credstore/​. This currently covers:

  • If the IMDS user data is a valid JSON object containing a field systemd​.credentials (with a JSON array as value) it is processed, importing arbitrary credentials listed in the array​. Each array item must have a name field indicating the credential name​. It may have one text, data or encrypted field, containing the credential data​. If text is used the value shall be a literal string of the credential value​. If data is used the value may be arbitrary binary data encoded in a Base64 string​. If encrypted is used the value shall be a Base64 encoded encrypted credential​. See systemd.system-credentials(7) for information about credentials that may be imported this way​.
  • If the well-known ssh-key field is available, its value will be imported into the ssh​.authorized_keys​.root credential​.
  • If the well-known hostname field is available, its value will be imported into the firstboot​.hostname credential​.

This command is invoked by the systemd-imds-import​.service run at boot​.

Added in version 261​.

-h,  --help

Print a short help text and exit​.

--version

Print a short version string and exit​.

Exit Status

On success, 0 is returned, a non-zero failure code otherwise​.

See Also

systemd(1), systemd-imdsd@.service(8), systemd-imds-generator(8), systemd-report(1), systemd.system-credentials(7)

Info

systemd 262