summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nixos/modules/virtualisation/amazon-init.nix5
-rw-r--r--nixos/tests/ec2.nix21
2 files changed, 21 insertions, 5 deletions
diff --git a/nixos/modules/virtualisation/amazon-init.nix b/nixos/modules/virtualisation/amazon-init.nix
index 5797d9db4362..a7362423eb46 100644
--- a/nixos/modules/virtualisation/amazon-init.nix
+++ b/nixos/modules/virtualisation/amazon-init.nix
@@ -45,9 +45,8 @@ in {
inherit script;
description = "Reconfigure the system from EC2 userdata on startup";
- wantedBy = [ "sshd.service" ];
- before = [ "sshd.service" ];
- after = [ "network-online.target" ];
+ wantedBy = [ "multi-user.target" ];
+ after = [ "multi-user.target" ];
requires = [ "network-online.target" ];
restartIfChanged = false;
diff --git a/nixos/tests/ec2.nix b/nixos/tests/ec2.nix
index e1f7143e3a95..4ec7e56cc6cb 100644
--- a/nixos/tests/ec2.nix
+++ b/nixos/tests/ec2.nix
@@ -25,8 +25,13 @@ let
# access. Mostly copied from
# modules/profiles/installation-device.nix.
system.extraDependencies =
- [ pkgs.stdenv pkgs.busybox pkgs.perlPackages.ArchiveCpio
- pkgs.unionfs-fuse pkgs.mkinitcpio-nfs-utils
+ with pkgs; [
+ stdenv busybox perlPackages.ArchiveCpio unionfs-fuse mkinitcpio-nfs-utils
+
+ # These are used in the configure-from-userdata tests for EC2. Httpd and valgrind are requested
+ # directly by the configuration we set, and libxslt.bin is used indirectly as a build dependency
+ # of the derivation for dbus configuration files.
+ apacheHttpd valgrind.doc libxslt.bin
];
}
];
@@ -137,6 +142,8 @@ in {
# ### http://nixos.org/channels/nixos-unstable nixos
userData = ''
+ { pkgs, ... }:
+
{
imports = [
<nixpkgs/nixos/modules/virtualisation/amazon-image.nix>
@@ -146,12 +153,22 @@ in {
environment.etc.testFile = {
text = "whoa";
};
+
+ services.httpd = {
+ enable = true;
+ adminAddr = "test@example.org";
+ documentRoot = "${pkgs.valgrind.doc}/share/doc/valgrind/html";
+ };
+ networking.firewall.allowedTCPPorts = [ 80 ];
}
'';
script = ''
$machine->start;
$machine->waitForFile("/etc/testFile");
$machine->succeed("cat /etc/testFile | grep -q 'whoa'");
+
+ $machine->waitForUnit("httpd.service");
+ $machine->succeed("curl http://localhost | grep Valgrind");
'';
};
}