;; Most cloud service providers use qemu / cloud-init to run images inside ;; inside of a virtual machine. This example was written for the "linode" ;; tutorial originally, but it should apply to other cloud services as well. (use-modules (gnu) (guix modules)) (use-service-modules networking ssh) (use-package-modules admin package-management ssh tls) ;; if you want to add new packages, services and users later, you can ;; use "guix deploy" (operating-system (host-name "localhost") (timezone "UTC") (locale "en_US.UTF-8") (bootloader (bootloader-configuration (bootloader grub-bootloader))) ;; we configure our bootable guix system to be on device "/dev/sda" ;; if you want to use a different device, change it here (file-systems (cons (file-system (device "/dev/sda") (mount-point "/") (type "ext4")) %base-file-systems)) ;; our swap is assumed to be /dev/sdb. ;; if your vm will have a different swap device, change it here (swap-devices (list "/dev/sdb")) (initrd-modules (cons "virtio_scsi" ; Needed to find the disk %base-initrd-modules)) (packages (cons* %base-packages)) (services (cons* (service dhcp-client-service-type) (service openssh-service-type (openssh-configuration (password-authentication? #f) (permit-root-login 'prohibit-password) (authorized-keys `(("root" ,(local-file "/path/to/key.pub")))))) %base-services)))