summaryrefslogtreecommitdiff
path: root/doc/examples/guix-on-linode.scm
diff options
context:
space:
mode:
Diffstat (limited to 'doc/examples/guix-on-linode.scm')
-rw-r--r--doc/examples/guix-on-linode.scm50
1 files changed, 50 insertions, 0 deletions
diff --git a/doc/examples/guix-on-linode.scm b/doc/examples/guix-on-linode.scm
new file mode 100644
index 00000000000..56acf53b640
--- /dev/null
+++ b/doc/examples/guix-on-linode.scm
@@ -0,0 +1,50 @@
+;; 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 similarly 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)))