<xi:include href="version-info.xml" xpointer="v249"/></listitem>
</varlistentry>
+
+ <varlistentry>
+ <term><varname>firstboot.hostname</varname></term>
+
+ <listitem><para>This credential specifies the static system hostname to set during first boot. The
+ user will not be prompted for the hostname. Note that this controls the static hostname, not the
+ transient hostname, and only has an effect on first boot, unlike
+ <varname>system.hostname</varname>.</para>
+
+ <xi:include href="version-info.xml" xpointer="v261"/></listitem>
+ </varlistentry>
</variablelist>
<para>Note that by default the <filename>systemd-firstboot.service</filename> unit file is set up to
<varlistentry>
<term><varname>firstboot.keymap</varname></term>
<listitem>
- <para>The console key mapping to set (e.g. <literal>de</literal>). Read by
+ <para>The console key mapping to set (e.g. <literal>de</literal>). Read by
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
and only honoured if no console keymap has been configured before.</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>firstboot.hostname</varname></term>
+
+ <listitem><para>This credential specifies the static system hostname to set during first boot. The
+ user will not be prompted for the hostname. Note that this controls the static hostname, not the transient
+ hostname, and only has an effect on first boot, unlike <varname>system.hostname</varname> (see
+ below). Read by
+ <citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ and only honoured if no static hostname has been configured before.</para>
+
+ <xi:include href="version-info.xml" xpointer="v261"/>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term><varname>firstboot.locale</varname></term>
<term><varname>firstboot.locale-messages</varname></term>
<term><varname>system.hostname</varname></term>
<listitem>
<para>Accepts a (transient) hostname to configure during early boot. The static hostname specified
- in <filename>/etc/hostname</filename>, if configured, takes precedence over this setting.
- Interpreted by the service manager (PID 1). For details see
- <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
+ in <filename>/etc/hostname</filename>, if configured, takes precedence over this setting.
+ Interpreted by the service manager (PID 1). For details see
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>. Also
+ see <varname>firstboot.hostname</varname> above.</para>
<xi:include href="version-info.xml" xpointer="v254"/>
</listitem>
if (arg_hostname)
return 0;
+ _cleanup_free_ char *hn = NULL;
+ r = read_credential("firstboot.hostname", (void**) &hn, NULL);
+ if (r < 0)
+ log_debug_errno(r, "Failed to read credential firstboot.hostname, ignoring: %m");
+ else if (!hostname_is_valid(hn, VALID_HOSTNAME_TRAILING_DOT|VALID_HOSTNAME_QUESTION_MARK))
+ log_warning_errno(SYNTHETIC_ERRNO(EINVAL), "Hostname '%s' supplied via credential is not valid, ignoring.", hn);
+ else {
+ log_debug("Acquired hostname from credentials.");
+ arg_hostname = TAKE_PTR(hn);
+ hostname_cleanup(arg_hostname);
+ return 0;
+ }
+
if (!arg_prompt_hostname) {
log_debug("Prompting for hostname was not requested.");
return 0;