 ca0604190e
			
		
	
	
		ca0604190e
		
	
	
	
	
		
			
			Allow out of band communication between qemu VMs and the host. Useful to retrieve IPs of VMs from the host (for instance when libvirt can't analyze DHCP requests because VMs are configured with static addresses or when there is connectivity default).
		
			
				
	
	
		
			37 lines
		
	
	
		
			774 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			774 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { config, lib, pkgs, ... }:
 | |
| 
 | |
| with lib;
 | |
| 
 | |
| let
 | |
|   cfg = config.services.qemuGuest;
 | |
| in {
 | |
| 
 | |
|   options.services.qemuGuest = {
 | |
|       enable = mkOption {
 | |
|         type = types.bool;
 | |
|         default = false;
 | |
|         description = "Whether to enable the qemu guest agent.";
 | |
|       };
 | |
|   };
 | |
| 
 | |
|   config = mkIf cfg.enable (
 | |
|       mkMerge [
 | |
|     {
 | |
| 
 | |
|       services.udev.extraRules = ''
 | |
|         SUBSYSTEM=="virtio-ports", ATTR{name}=="org.qemu.guest_agent.0", TAG+="systemd" ENV{SYSTEMD_WANTS}="qemu-guest-agent.service"
 | |
|       '';
 | |
| 
 | |
|       systemd.services.qemu-guest-agent = {
 | |
|         description = "Run the QEMU Guest Agent";
 | |
|         serviceConfig = {
 | |
|           ExecStart = "${pkgs.kvm.ga}/bin/qemu-ga";
 | |
|           Restart = "always";
 | |
|           RestartSec = 0;
 | |
|         };
 | |
|       };
 | |
|     }
 | |
|   ]
 | |
|   );
 | |
| }
 |