diff options
author | Aneesh Agrawal <aneeshusa@gmail.com> | 2017-01-13 15:00:49 -0500 |
---|---|---|
committer | Aneesh Agrawal <aneeshusa@gmail.com> | 2017-05-10 21:26:02 -0400 |
commit | e22ccad978eb1331360331eaa45f7ce41a44806a (patch) | |
tree | e11845b6837d43b48d6f580b4d6fd0bd74aa3fed | |
parent | 6fc56fa8d4c7ba259e44080c1c34a0d74a276eb2 (diff) | |
download | nixlib-e22ccad978eb1331360331eaa45f7ce41a44806a.tar nixlib-e22ccad978eb1331360331eaa45f7ce41a44806a.tar.gz nixlib-e22ccad978eb1331360331eaa45f7ce41a44806a.tar.bz2 nixlib-e22ccad978eb1331360331eaa45f7ce41a44806a.tar.lz nixlib-e22ccad978eb1331360331eaa45f7ce41a44806a.tar.xz nixlib-e22ccad978eb1331360331eaa45f7ce41a44806a.tar.zst nixlib-e22ccad978eb1331360331eaa45f7ce41a44806a.zip |
salt: Add minion service module
-rw-r--r-- | nixos/modules/module-list.nix | 1 | ||||
-rw-r--r-- | nixos/modules/services/admin/salt/minion.nix | 52 |
2 files changed, 53 insertions, 0 deletions
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index a76df76f40cc..15d7caed38a3 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -130,6 +130,7 @@ ./security/wrappers/default.nix ./security/sudo.nix ./services/admin/salt/master.nix + ./services/admin/salt/minion.nix ./services/amqp/activemq/default.nix ./services/amqp/rabbitmq.nix ./services/audio/alsa.nix diff --git a/nixos/modules/services/admin/salt/minion.nix b/nixos/modules/services/admin/salt/minion.nix new file mode 100644 index 000000000000..150e2ffa4031 --- /dev/null +++ b/nixos/modules/services/admin/salt/minion.nix @@ -0,0 +1,52 @@ +{ config, pkgs, lib, ... }: + +with lib; + +let + + cfg = config.services.salt.minion; + + fullConfig = lib.recursiveUpdate { + # Provide defaults for some directories to allow an immutable config dir + # NOTE: the config dir being immutable prevents `minion_id` caching + + # Default is equivalent to /etc/salt/minion.d/*.conf + default_include = "/var/lib/salt/minion.d/*.conf"; + # Default is in /etc/salt/pki/minion + pki_dir = "/var/lib/salt/pki/minion"; + } cfg.configuration; + configDir = pkgs.writeTextDir "minion" (builtins.toJSON fullConfig); + +in + +{ + options = { + services.salt.minion = { + enable = mkEnableOption "Salt minion service"; + configuration = mkOption { + type = types.attrs; + default = {}; + description = "Salt minion configuration as Nix attribute set."; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ salt ]; + systemd.services.salt-minion = { + description = "Salt Minion"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + path = with pkgs; [ + utillinux + ]; + serviceConfig = { + ExecStart = "${pkgs.salt}/bin/salt-minion --config-dir=${configDir}"; + LimitNOFILE = 8192; + Type = "notify"; + NotifyAccess = "all"; + }; + }; + }; +} + |