View Issue Details

IDProjectCategoryView StatusLast Update
0005541GNUnetotherpublic2019-11-16 18:45
Reporterdvn Assigned To 
PriorityhighSeverityblockReproducibilityN/A
Status closedResolutionfixed 
Product VersionGit master 
Target Version0.12.0Fixed in Version0.12.0 
Summary0005541: Add KVM and libvirt to firefly.gnunet.org
DescriptionFor the purpose of using arbitrary job runners - for CI and other purposes - it is preferred to have some form of environment isolation, and the ability to run various kernels. KVM and libvirt are what I would recommend and prefer, due to availability of packages, documentation, and community support.

The server `firefly.gnunet.org`, is running GuixSD. We need to require some new services in its server config.

I will attach a full example config of a similar setup I've used in the past.

I believe the relevant lines are just these:

 9 (use-service-modules networking mcron desktop virtualization)
...
 52 (supplementary-groups '("wheel" "netdev"
 53 "audio" "video" "kvm" "libvirt"))
...
 71 (service libvirt-service-type
 72 (libvirt-configuration
 73 (unix-sock-group "libvirt")))
 74 (service virtlog-service-type
 75 (virtlog-configuration
 76 (max-clients 1000)))
TagsNo tags attached.
Attached Files
firefly-kvm-config-example.scm (2,726 bytes)   
;; This is an operating system configuration template
;; for a "desktop" setup with GNOME and Xfce where the
;; root partition is encrypted with LUKS.

(use-modules (gnu) (gnu system nss)
	     (gnu packages linux)
	     (gnu packages libusb)
	     (sys-kernel linux linux))
(use-service-modules networking mcron desktop virtualization)
(use-package-modules wm ssh shells certs)


(operating-system
  (host-name "example")
  (timezone "Pacific/Auckland")
  (locale "en_US.UTF-8")

  (kernel linux-4.15.15)

  ;; Assuming /dev/sdX is the target hard disk, and "my-root"
  ;; is the label of the target root file system.
  (bootloader (grub-configuration (target "/dev/sda")))

  ;; Specify a mapped device for the encrypted root partition.
  ;; The UUID is that returned by 'cryptsetup luksUUID'.
  (mapped-devices
   (list (mapped-device
          (source (uuid ""))
          (target "root-partition")
          (type luks-device-mapping))
         (mapped-device
          (source (uuid ""))
          (target "home-partition")
          (type luks-device-mapping))))

  (file-systems (cons* (file-system
                        (device "/dev/mapper/root-partition")
                        (title 'device)
                        (mount-point "/")
                        (type "ext4"))
                      (file-system
                        (device "/dev/mapper/home-partition")
                        (title 'device)
                        (mount-point "/home")
                        (type "ext4"))
                      %base-file-systems))

  (users (cons (user-account
                (name "user")
                (comment "the user")
                (group "users")
                (supplementary-groups '("wheel" "netdev"
                                        "audio" "video" "kvm" "libvirt"))
                (home-directory "/home/user")
	        (shell #~(string-append #$zsh "/bin/zsh")))
               %base-user-accounts))

  ;; This is where we specify system-wide packages.
  (packages (cons* awesome ;window managers
		   tlp                  ;power management
                   nss-certs            ;for HTTPS access
		   cryptsetup
		   openssh
		   acpi
                   %base-packages))


  (services (cons*
	     (mate-desktop-service)
             (simple-service 'mtp udev-service-type (list libmtp))
	     (service libvirt-service-type
                   (libvirt-configuration
                    (unix-sock-group "libvirt")))
       (service virtlog-service-type
                (virtlog-configuration
                 (max-clients 1000)))
                  %desktop-services))

  ;; Allow resolution of '.local' host names with mDNS.
  (name-service-switch %mdns-host-lookup-nss))
firefly-kvm-config-example.scm (2,726 bytes)   

Activities

nikita

2019-02-26 13:33

developer   ~0014059

Thanks, should be done today.

I'm only stuck with firefly building almost everything from source because the commit is too old (0.16.0 release now).

nikita

2019-02-26 14:50

developer   ~0014061

Done. Can you confirm functionality?

nikita

2019-02-26 16:12

developer   ~0014068

Note, ch3 is running tests on firefly right now, so if it's still occupied, wait with anything resource intensive (or wait in general).

schanzen

2019-08-08 19:46

administrator   ~0014778

Is this still an issue?

nikita

2019-08-17 11:30

developer   ~0014784

Somehow I got an 'requested feedback' Email about this.
Please ask ch3 yourself, I haven't been active on the servers in the last months.

nikita

2019-08-17 11:30

developer   ~0014785

Though we no longer use GuixSD, so maybe this is resolved? (others will know more)

dvn

2019-08-17 18:11

developer   ~0014791

This issue is resolved. KVM and libvirt are installed on firefly.

Issue History

Date Modified Username Field Change
2019-02-04 20:22 dvn New Issue
2019-02-04 20:22 dvn Status new => assigned
2019-02-04 20:22 dvn Assigned To => nikita
2019-02-04 20:22 dvn File Added: firefly-kvm-config-example.scm
2019-02-26 13:28 nikita Status assigned => acknowledged
2019-02-26 13:33 nikita Note Added: 0014059
2019-02-26 14:50 nikita Note Added: 0014061
2019-02-26 14:50 nikita Assigned To nikita => dvn
2019-02-26 14:50 nikita Status acknowledged => feedback
2019-02-26 16:12 nikita Note Added: 0014068
2019-08-08 19:46 schanzen Status feedback => acknowledged
2019-08-08 19:46 schanzen Status acknowledged => feedback
2019-08-08 19:46 schanzen Note Added: 0014778
2019-08-17 11:30 nikita Note Added: 0014784
2019-08-17 11:30 nikita Note Added: 0014785
2019-08-17 12:06 schanzen Assigned To dvn => ch3
2019-08-17 18:11 dvn Note Added: 0014791
2019-08-17 18:11 dvn Status feedback => assigned
2019-08-17 18:13 dvn Assigned To ch3 =>
2019-08-17 18:13 dvn Status assigned => resolved
2019-08-17 18:13 dvn Resolution open => fixed
2019-11-16 18:45 Christian Grothoff Status resolved => closed
2019-11-16 18:45 Christian Grothoff Product Version => Git master
2019-11-16 18:45 Christian Grothoff Fixed in Version => 0.12.0
2019-11-16 18:45 Christian Grothoff Target Version => 0.12.0