English Italian
$ butane --pretty --strict autologin.bu --output autologin.ign
Add a bash profile that tells systemd to not use a pager for output.
Add a systemd dropin to override the default `serial-getty@ttyS0.service`.
And check on `zincati.service`, which communicates with our update server and tells `rpm-ostree` when to do an update and to what version to update to:
And finally, of course we can use the `podman` (or `docker`) command to inspect the current state of containers on the system:
Aug 06 14:50:36 tutorial systemd[1]: Started Zincati Update Agent.
Aug 06 14:50:36 tutorial zincati[889]: [INFO ] starting update agent (zincati 0.0.12)
Aug 06 14:50:39 tutorial zincati[889]: [INFO ] Cincinnati service: https://updates.coreos.fedoraproject.org
Aug 06 14:50:39 tutorial zincati[889]: [INFO ] agent running on node 'dbe8968f75c34d9eb3d3c4c226aa8fdf', in update group 'default'
Aug 06 14:50:39 tutorial zincati[889]: [INFO ] initialization complete, auto-updates logic enabled
Booting Fedora CoreOS
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`:
[core@tutorial ~]$
[core@tutorial ~]$ cat /etc/hostname
tutorial
[core@tutorial ~]$ hostnamectl
Static hostname: tutorial
Icon name: computer-vm
Chassis: vm
Machine ID: d06466128a1c4a6ab255d9581748755c
Boot ID: 2a19abb9681e442cb1e10271350bfff3
Virtualization: kvm
Operating System: Fedora CoreOS 32.20200715.3.0
CPE OS Name: cpe:/o:fedoraproject:fedora:32
Kernel: Linux 5.7.8-200.fc32.x86_64
Architecture: x86-64
[core@tutorial ~]$ journalctl -t ignition
...
[core@tutorial ~]$ podman version
[core@tutorial ~]$ podman info
[core@tutorial ~]$ rpm-ostree status
State: idle
Deployments:
* ostree://fedora:fedora/x86_64/coreos/stable
Version: 32.20200715.3.0 (2020-07-27T11:36:29Z)
Commit: a3b08ee51b1d950afd9d0d73f32d5424ad52c7703a6b5830e0dc11c3a682d869
GPGSignature: Valid signature by 97A1AE57C3A2372CCA3A4ABA6C13026D12C944D0
[core@tutorial ~]$ rpm -q ignition kernel moby-engine podman systemd rpm-ostree zincati
ignition-2.4.1-1.git5260a5b.fc32.x86_64
kernel-5.7.8-200.fc32.x86_64
moby-engine-19.03.11-1.ce.git42e35e6.fc32.x86_64
podman-1.9.3-1.fc32.x86_64
systemd-245.6-2.fc32.x86_64
rpm-ostree-2020.3-1.fc32.x86_64
zincati-0.0.12-2.fc32.x86_64
[core@tutorial ~]$ systemctl cat serial-getty@ttyS0.service
# /usr/lib/systemd/system/serial-getty@.service
...
[core@tutorial ~]$ systemctl status --full zincati.service
● zincati.service - Zincati Update Agent
Loaded: loaded (/usr/lib/systemd/system/zincati.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-08-06 14:50:36 UTC; 1h 41min ago
Docs: https://github.com/coreos/zincati
Main PID: 889 (zincati)
Tasks: 2 (limit: 2288)
Memory: 14.2M
CGroup: /system.slice/zincati.service
└─889 /usr/libexec/zincati agent -v
Depending on your version of `virt-install`, you may not be able to use `--os-variant=fedora-coreos-stable` and will get an error. In this case, you should pick an older Fedora variant (`--os-variant=fedora31` for example). You can find the variants that are supported by you current version of `virt-install` with `osinfo-query os | grep '^\s*fedora'`.
Enabling autologin and setting a custom hostname
# /etc/systemd/system/serial-getty@ttyS0.service.d/autologin-core.conf
[Service]
# Override Execstart in main unit
ExecStart=
# Add new Execstart with `-` prefix to ignore failure`
ExecStart=-/usr/sbin/agetty --autologin core --noclear %I $TERM
Exploring Fedora CoreOS internals