# Chimera pyinfra Config Goal: Point these [pyinfra] operations at a machine booted into the Chimera live CD and install [Chimera Linux] to a bootable base state. These scripts are intended for quick, automated installation of Chimera Linux on virtual machines. They've been used against local VMs in [virt-manager] as well as the web-based VNC console provided by some VPC hosts. ## Setup Initial setup to install [pyinfra] in a virtual env. UNIX-like: ```shell python -m venv .venv . .venv/bin/activate pip install --require-virtualenv -r requirements.txt ``` Windows: ```powershell python -m venv .venv .venv\Scripts\Activate.ps1 pip install --require-virtualenv -r requirements.txt powershell -Command { $env:VCPKG_ROOT="D:\Source\vcpkg"; pip install -r .\requirements.txt } ``` ## Configuration EFI systems will use `install.py`, BIOS systems will use `install-bios.py`. Edit files before running. 1. Add your SSH public key to the `user_ssh_key` variable. 1. Review the 'Add swap' step and adjust the amount of swap if desired. ## Install 1. Boot from the Chimera base live CD 1. Log into the console as root 1. Bootstrap SSH access with [xdotool]; replace ` your-public-ssh-key` with your public SSH key: * `xdotool windowfocus --sync $(xdotool selectwindow) type 'dinitctl start sshd && mkdir ~/.ssh && echo " your-public-ssh-key" > ~/.ssh/authorized_keys && ip addr && fdisk -l'` 1. Note IP address above 1. Note the name of the disk to install to from above `fdisk` output 1. For EFI based systems run the `install.py` operation against the IP noted in step 5: `pyinfra -vvv --user root IP install.py` 1. For BIOS based systems run the `install-bios.py` operation against the IP noted in step 5: `pyinfra -vvv --user root IP install-bios.py` 1. At the beginning of the run after the disk device confirmation note the root password that is printed 1. Reboot: `pyinfra --user root IP exec reboot` 1. Log in and set passwd for regular user (if `doas` access is required) ## Post Install Perform these steps either manually or by writing pyinfra code. - https://chimera-linux.org/docs/configuration/post-installation - https://chimera-linux.org/docs/configuration/microcode ## Troubleshooting ### Remount root If something goes wrong and you want to remount a previous attempt (replace `/dev/vda2` as necessary): xdotool windowfocus --sync $(xdotool selectwindow) type 'mkdir /media/root && mount /dev/vda2 /media/root && mount /dev/vda1 /media/root/boot' ### Dropped Characters With Typing With xdotool Add `--delay 100` to the `xdotool type` command. ## Maintenance Status I'm publishing this code in the hope it's useful to others but maintenance will be limited. I'm unlikely to implement feature requests, but will review smaller contributions and bug reports. ## Licence This code is licenced under terms of the [Zero-Clause BSD licence](LICENSE). [xdotool]: https://github.com/jordansissel/xdotool [Chimera Linux]: https://chimera-linux.org/ [pyinfra]: https://pyinfra.com/ [virt-manager]: https://virt-manager.org/