summary refs log tree commit diff
diff options
context:
space:
mode:
authorAneesh Agrawal <aneeshusa@gmail.com>2017-05-09 13:20:35 -0400
committerJörg Thalheim <Mic92@users.noreply.github.com>2017-05-09 18:20:35 +0100
commit779ae064674aa9645bcefaacbc83f942e2ef759f (patch)
treebc2a716ee2239cb7090c994066fae8826cc76a4d
parent0d6d47edd10ad32d1feb5ee1c7e2d78d68098e99 (diff)
downloadnixpkgs-779ae064674aa9645bcefaacbc83f942e2ef759f.tar
nixpkgs-779ae064674aa9645bcefaacbc83f942e2ef759f.tar.gz
nixpkgs-779ae064674aa9645bcefaacbc83f942e2ef759f.tar.bz2
nixpkgs-779ae064674aa9645bcefaacbc83f942e2ef759f.tar.lz
nixpkgs-779ae064674aa9645bcefaacbc83f942e2ef759f.tar.xz
nixpkgs-779ae064674aa9645bcefaacbc83f942e2ef759f.tar.zst
nixpkgs-779ae064674aa9645bcefaacbc83f942e2ef759f.zip
Add salt master module (#25632)
* salt: 2016.11.2 -> 2016.11.4

* salt: Add master NixOS module
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/services/admin/salt/master.nix60
-rw-r--r--pkgs/tools/admin/salt/default.nix4
3 files changed, 63 insertions, 2 deletions
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 375827c45ae..a76df76f40c 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -129,6 +129,7 @@
   ./security/rtkit.nix
   ./security/wrappers/default.nix
   ./security/sudo.nix
+  ./services/admin/salt/master.nix
   ./services/amqp/activemq/default.nix
   ./services/amqp/rabbitmq.nix
   ./services/audio/alsa.nix
diff --git a/nixos/modules/services/admin/salt/master.nix b/nixos/modules/services/admin/salt/master.nix
new file mode 100644
index 00000000000..165580b9783
--- /dev/null
+++ b/nixos/modules/services/admin/salt/master.nix
@@ -0,0 +1,60 @@
+{ config, pkgs, lib, ... }:
+
+with lib;
+
+let
+
+  cfg  = config.services.salt.master;
+
+  fullConfig = lib.recursiveUpdate {
+    # Provide defaults for some directories to allow an immutable config dir
+
+    # Default is equivalent to /etc/salt/master.d/*.conf
+    default_include = "/var/lib/salt/master.d/*.conf";
+    # Default is in /etc/salt/pki/master
+    pki_dir = "/var/lib/salt/pki/master";
+  } cfg.configuration;
+
+in
+
+{
+  options = {
+    services.salt.master = {
+      enable = mkEnableOption "Salt master service";
+      configuration = mkOption {
+        type = types.attrs;
+        default = {};
+        description = "Salt master configuration as Nix attribute set.";
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment = {
+      # Set this up in /etc/salt/master so `salt`, `salt-key`, etc. work.
+      # The alternatives are
+      # - passing --config-dir to all salt commands, not just the master unit,
+      # - setting a global environment variable,
+      etc."salt/master".source = pkgs.writeText "master" (
+        builtins.toJSON fullConfig
+      );
+      systemPackages = with pkgs; [ salt ];
+    };
+    systemd.services.salt-master = {
+      description = "Salt Master";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+      path = with pkgs; [
+        utillinux  # for dmesg
+      ];
+      serviceConfig = {
+        ExecStart = "${pkgs.salt}/bin/salt-master";
+        LimitNOFILE = 16384;
+        Type = "notify";
+        NotifyAccess = "all";
+      };
+    };
+  };
+
+  meta.maintainers = with lib.maintainers; [ aneeshusa ];
+}
diff --git a/pkgs/tools/admin/salt/default.nix b/pkgs/tools/admin/salt/default.nix
index 786e3f64cda..f4267833b76 100644
--- a/pkgs/tools/admin/salt/default.nix
+++ b/pkgs/tools/admin/salt/default.nix
@@ -8,11 +8,11 @@
 
 python2Packages.buildPythonApplication rec {
   name = "salt-${version}";
-  version = "2016.11.2";
+  version = "2016.11.4";
 
   src = fetchurl {
     url = "mirror://pypi/s/salt/${name}.tar.gz";
-    sha256 = "0hrss5x47cr7ffyjl8jlkhf9j88lqvg7c33rjc5bimck8b7x7hzm";
+    sha256 = "0pvn0pkndwx81xkpah14awz4rg9zhkpl4bhn3hlrin1zinr0jhgv";
   };
 
   propagatedBuildInputs = with python2Packages; [