|
Enabling autologin and setting a custom hostname
|
|
|
Make sure that you have completed the steps described in the xref:tutorial-setup.adoc[initial setup page] before starting this tutorial.
|
|
|
Provisioning Fedora CoreOS
|
|
|
Fedora CoreOS does not have a separate install disk. Instead, every instance starts from a generic disk image which is customized on first boot via https://github.com/coreos/ignition[Ignition].
|
|
|
Ignition config files are written in JSON but are typically not user friendly. Configurations are thus written in a simpler format, the Butane config, that is then converted into an Ignition config. The tool responsible for converting Butane configs into Ignition configs is naturally called Butane.
|
|
|
First Ignition config via Butane
|
|
|
Let's create a very simple Butane config that will perform the following actions:
|
|
|
Add a systemd dropin to override the default `serial-getty@ttyS0.service`.
|
|
|
The override will make the service automatically log the `core` user in to the serial console of the booted machine.
|
|
|
Set the system hostname by dropping a file at `/etc/hostname`,
|
|
|
Add a bash profile that tells systemd to not use a pager for output.
|
|
|
Raise kernel console logging level to hide audit messages from the console.
|
|
|
We can create a config file named `autologin.bu` now as:
|
|
|
variant: fcos version: 1.4.0 systemd: units: - name: serial-getty@ttyS0.service dropins: - name: autologin-core.conf contents: | [Service] # Override Execstart in main unit ExecStart= # Add new Execstart with `-` prefix to ignore failure` ExecStart=-/usr/sbin/agetty --autologin core --noclear %I $TERM storage: files: - path: /etc/hostname mode: 0644 contents: inline: | tutorial - path: /etc/profile.d/systemd-pager.sh mode: 0644 contents: inline: | # Tell systemd to not use a pager when printing information export SYSTEMD_PAGER=cat - path: /etc/sysctl.d/20-silence-audit.conf mode: 0644 contents: inline: | # Raise console message logging level from DEBUG (7) to WARNING (4) # to hide audit messages from the interactive console kernel.printk=4
|
|
|
This configuration can then be converted into an Ignition config with Butane:
|
|
|
$ butane --pretty --strict autologin.bu --output autologin.ign
|
|
|
The resulting Ignition configuration produced by Butane as `autologin.ign` has the following content:
|
|
|
{ "ignition": { "version": "3.1.0" }, "storage": { "files": [ { "path": "/etc/hostname", "contents": { "source": "data:,tutorial%0A" }, "mode": 420 }, { "path": "/etc/profile.d/systemd-pager.sh", "contents": { "source": "data:,%23%20Tell%20systemd%20to%20not%20use%20a%20pager%20when%20printing%20information%0Aexport%20SYSTEMD_PAGER%3Dcat%0A" }, "mode": 420 }, { "path": "/etc/sysctl.d/20-silence-audit.conf", "contents": { "source": "data:,%23%20Raise%20console%20message%20logging%20level%20from%20DEBUG%20(7)%20to%20WARNING%20(4)%0A%23%20to%20hide%20audit%20messages%20from%20the%20interactive%20console%0Akernel.printk%3D4%0A" }, "mode": 420 } ] }, "systemd": { "units": [ { "dropins": [ { "contents": "[Service]\n# Override Execstart in main unit\nExecStart=\n# Add new Execstart with `-` prefix to ignore failure`\nExecStart=-/usr/sbin/agetty --autologin core --noclear %I $TERM\n", "name": "autologin-core.conf" } ], "name": "serial-getty@ttyS0.service" } ] } }
|
|
|
Butane outputs valid Ignition configs. However, if you are tweaking the config after Butane, or manually creating Ignition configs, you will have to verify that the config format is valid with `ignition-validate`:
|
|
|
ignition-validate autologin.ign && echo 'Success!'
|
|