diff options
author | Daniel Peebles <copumpkin@users.noreply.github.com> | 2017-02-16 12:44:49 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-16 12:44:49 -0500 |
commit | 19a9099eb25795a8caa408f842a5254920157456 (patch) | |
tree | 3c0dc30dab676ab61618f1fea2ec2233a6709eaf | |
parent | 1c366b4e0647abea0385395dcb2981a5b3161cf8 (diff) | |
parent | b172684c17aa1eea76a996ab888cef13ea7a16af (diff) | |
download | nixlib-19a9099eb25795a8caa408f842a5254920157456.tar nixlib-19a9099eb25795a8caa408f842a5254920157456.tar.gz nixlib-19a9099eb25795a8caa408f842a5254920157456.tar.bz2 nixlib-19a9099eb25795a8caa408f842a5254920157456.tar.lz nixlib-19a9099eb25795a8caa408f842a5254920157456.tar.xz nixlib-19a9099eb25795a8caa408f842a5254920157456.tar.zst nixlib-19a9099eb25795a8caa408f842a5254920157456.zip |
Merge pull request #22869 from copumpkin/amazon-init-fix
amazon-init NixOS module: fix (I think) race condition with network
-rw-r--r-- | nixos/modules/virtualisation/amazon-init.nix | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/nixos/modules/virtualisation/amazon-init.nix b/nixos/modules/virtualisation/amazon-init.nix index c9356c9b4eaa..5797d9db4362 100644 --- a/nixos/modules/virtualisation/amazon-init.nix +++ b/nixos/modules/virtualisation/amazon-init.nix @@ -1,20 +1,18 @@ -{ config, pkgs, modulesPath, ... }: - -# This attempts to pull a nix expression from this EC2 instance's user-data. +{ config, pkgs, ... }: let - bootScript = pkgs.writeScript "bootscript.sh" '' + script = '' #!${pkgs.stdenv.shell} -eu echo "attempting to fetch configuration from EC2 user data..." + export HOME=/root export PATH=${pkgs.lib.makeBinPath [ config.nix.package pkgs.systemd pkgs.gnugrep pkgs.gnused config.system.build.nixos-rebuild]}:$PATH export NIX_PATH=/nix/var/nix/profiles/per-user/root/channels/nixos:nixos-config=/etc/nixos/configuration.nix:/nix/var/nix/profiles/per-user/root/channels userData=/etc/ec2-metadata/user-data if [ -s "$userData" ]; then - # If the user-data looks like it could be a nix expression, # copy it over. Also, look for a magic three-hash comment and set # that as the channel. @@ -43,7 +41,22 @@ let nixos-rebuild switch ''; in { - boot.postBootCommands = '' - ${bootScript} & - ''; + systemd.services.amazon-init = { + inherit script; + description = "Reconfigure the system from EC2 userdata on startup"; + + wantedBy = [ "sshd.service" ]; + before = [ "sshd.service" ]; + after = [ "network-online.target" ]; + requires = [ "network-online.target" ]; + + restartIfChanged = false; + unitConfig.X-StopOnRemoval = false; + + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + }; + }; } + |