at 22.05-pre 1.4 kB view raw
1{ pkgs, lib, ... }: 2 3with lib; 4 5let 6 metadataFetcher = import ./openstack-metadata-fetcher.nix { 7 targetRoot = "/"; 8 wgetExtraOptions = "--retry-connrefused"; 9 }; 10in 11{ 12 imports = [ 13 ../profiles/qemu-guest.nix 14 ../profiles/headless.nix 15 # The Openstack Metadata service exposes data on an EC2 API also. 16 ./ec2-data.nix 17 ./amazon-init.nix 18 ]; 19 20 config = { 21 fileSystems."/" = { 22 device = "/dev/disk/by-label/nixos"; 23 fsType = "ext4"; 24 autoResize = true; 25 }; 26 27 boot.growPartition = true; 28 boot.kernelParams = [ "console=ttyS0" ]; 29 boot.loader.grub.device = "/dev/vda"; 30 boot.loader.timeout = 0; 31 32 # Allow root logins 33 services.openssh = { 34 enable = true; 35 permitRootLogin = "prohibit-password"; 36 passwordAuthentication = mkDefault false; 37 }; 38 39 # Force getting the hostname from Openstack metadata. 40 networking.hostName = mkDefault ""; 41 42 systemd.services.openstack-init = { 43 path = [ pkgs.wget ]; 44 description = "Fetch Metadata on startup"; 45 wantedBy = [ "multi-user.target" ]; 46 before = [ "apply-ec2-data.service" "amazon-init.service"]; 47 wants = [ "network-online.target" ]; 48 after = [ "network-online.target" ]; 49 script = metadataFetcher; 50 restartIfChanged = false; 51 unitConfig.X-StopOnRemoval = false; 52 serviceConfig = { 53 Type = "oneshot"; 54 RemainAfterExit = true; 55 }; 56 }; 57 }; 58}