From cc925d0506ab2a049d5ee55c1173950073ed307f Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 2 Feb 2016 19:03:13 +0100 Subject: boot.initrd.network: Support DHCP This allows us to use it for EC2 instances. --- nixos/modules/virtualisation/amazon-image.nix | 34 ++++----------------------- 1 file changed, 5 insertions(+), 29 deletions(-) (limited to 'nixos/modules/virtualisation/amazon-image.nix') diff --git a/nixos/modules/virtualisation/amazon-image.nix b/nixos/modules/virtualisation/amazon-image.nix index dd2cdd43f31..7d16206517d 100644 --- a/nixos/modules/virtualisation/amazon-image.nix +++ b/nixos/modules/virtualisation/amazon-image.nix @@ -8,28 +8,7 @@ with lib; -let - - cfg = config.ec2; - - udhcpcScript = pkgs.writeScript "udhcp-script" - '' - #! /bin/sh - if [ "$1" = bound ]; then - ip address add "$ip/$mask" dev "$interface" - if [ -n "$router" ]; then - ip route add default via "$router" dev "$interface" - fi - if [ -n "$dns" ]; then - rm -f /etc/resolv.conf - for i in $dns; do - echo "nameserver $dns" >> /etc/resolv.conf - done - fi - fi - ''; - -in +let cfg = config.ec2; in { imports = [ ../profiles/headless.nix ./ec2-data.nix ./amazon-grow-partition.nix ./amazon-init.nix ]; @@ -41,10 +20,7 @@ in autoResize = true; }; - boot.initrd.kernelModules = - [ "xen-blkfront" "xen-netfront" - "af_packet" # <- required by udhcpc - ]; + boot.initrd.kernelModules = [ "xen-blkfront" "xen-netfront" ]; boot.kernelParams = mkIf cfg.hvm [ "console=ttyS0" ]; # Prevent the nouveau kernel module from being loaded, as it @@ -67,6 +43,8 @@ in kill -9 -1 ''; + boot.initrd.network.enable = true; + # Mount all formatted ephemeral disks and activate all swap devices. # We cannot do this with the ‘fileSystems’ and ‘swapDevices’ options # because the set of devices is dependent on the instance type @@ -79,12 +57,10 @@ in boot.initrd.postMountCommands = '' metaDir=$targetRoot/etc/ec2-metadata - mkdir -m 0755 $targetRoot/etc + mkdir -m 0755 -p $targetRoot/etc mkdir -m 0700 -p "$metaDir" echo "getting EC2 instance metadata..." - ip link set eth0 up - udhcpc --interface eth0 --quit --now --script ${udhcpcScript} if ! [ -e "$metaDir/ami-manifest-path" ]; then wget -q -O "$metaDir/ami-manifest-path" http://169.254.169.254/1.0/meta-data/ami-manifest-path -- cgit 1.4.1