-
Notifications
You must be signed in to change notification settings - Fork 3
Home
Welcome to the kamikazi-core wiki!
Something something something documentation...
I do VM management through calls to Xen's XL toolstack, as libvirt and xen don't mix well. Use one or the other. If you use libvirt, none of your VMs will show in xl, as libvirt is complex enough to talk to Xen directly.
qemu-kvm is also included if Xen's not playing well with your hardware... (I've got an AMD 1100T that doesn't like Xen one bit)
Normally, I do not burn the ISO to optical disc nor install from it. So that's pretty much all untested. If it breaks, well, sorry. In theory, it should still be installable; but I don't think you'd actually want to do that without understanding how the system was set up for a livecd -- you'd at least want to disable some of the services from supervisord like late-boot, or disable supervisord entirely, as they attempt to apply configuration changes which only make sense on a livecd runtime that is INTENDED to be thrown away every shutdown.
When running the ISO loopback mounted from a USB stick, configuration will be kept in /isodevice/boot/config, which ends up to be D:\boot\config\ when I mount the stick from a windows box. All of the configuration that needs to exist before init starts up is stashed there:
- Kernel module state
- dbus machine-id
- SSH Host keys in 'ssh'
- SSH Client keys in 'keystore'
- hostname
- hosts file (generated from hostname)
- DHCP configuration (Contents of /etc/dhcp for dhcpd)
- OpenVSwitch configuration (Including config database)
- Ceph configuration
- SAMBA configuration
- network interfaces (Automatic generation of xenbr0 bridge if missing)
- Role scripts (Definition of machine state)
- Xen VM autostart list
- Local GUI State (Enabled by default unless 'nogui' file is found)
The Roles system should probably be explained...
Any configuration not provided by kamikazi itself can be influenced by providing a Role file. A Role is just a shellscript that is run during late boot, after most of the above core services have started. It should be used when you need to define things like where the RethinkDB datastore location should be, additional services to configure or start, or any other permutations you should need to make at runtime.
TODO: Explain how to actually build a Role