diff options
author | Oliver Charles <ollie@ocharles.org.uk> | 2014-11-20 11:29:07 +0000 |
---|---|---|
committer | Oliver Charles <ollie@ocharles.org.uk> | 2014-11-24 14:40:47 +0000 |
commit | 8964667bcdd9e6be1664c8c16472decde15685ac (patch) | |
tree | bd81d462637002a1f994939c8caf49cc915a932b | |
parent | 4c1d65130fffc6ec14d354e34a70af521f5e3ad1 (diff) | |
download | nixpkgs-8964667bcdd9e6be1664c8c16472decde15685ac.tar nixpkgs-8964667bcdd9e6be1664c8c16472decde15685ac.tar.gz nixpkgs-8964667bcdd9e6be1664c8c16472decde15685ac.tar.bz2 nixpkgs-8964667bcdd9e6be1664c8c16472decde15685ac.tar.lz nixpkgs-8964667bcdd9e6be1664c8c16472decde15685ac.tar.xz nixpkgs-8964667bcdd9e6be1664c8c16472decde15685ac.tar.zst nixpkgs-8964667bcdd9e6be1664c8c16472decde15685ac.zip |
hbase: New package and NixOS module
-rw-r--r-- | nixos/modules/misc/ids.nix | 2 | ||||
-rwxr-xr-x | nixos/modules/module-list.nix | 1 | ||||
-rw-r--r-- | nixos/modules/services/databases/hbase.nix | 102 | ||||
-rw-r--r-- | pkgs/servers/hbase/default.nix | 13 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 1 |
5 files changed, 119 insertions, 0 deletions
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix index 10f227b15a5..6b192d4eeef 100644 --- a/nixos/modules/misc/ids.nix +++ b/nixos/modules/misc/ids.nix @@ -165,6 +165,7 @@ liquidsoap = 155; etcd = 156; docker-registry = 157; + hbase = 158; # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399! @@ -284,6 +285,7 @@ mlmmj = 135; riemann = 137; riemanndash = 138; + hbase = 139; uhub = 142; mailpile = 146; redmine = 147; diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 4097224bc1d..be07c4330f0 100755 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -108,6 +108,7 @@ ./services/databases/4store.nix ./services/databases/couchdb.nix ./services/databases/firebird.nix + ./services/databases/hbase.nix ./services/databases/influxdb.nix ./services/databases/memcached.nix ./services/databases/monetdb.nix diff --git a/nixos/modules/services/databases/hbase.nix b/nixos/modules/services/databases/hbase.nix new file mode 100644 index 00000000000..1bee9895e36 --- /dev/null +++ b/nixos/modules/services/databases/hbase.nix @@ -0,0 +1,102 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.hbase; + +in { + + ###### interface + + options = { + + services.hbase = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to run HBase. + ''; + }; + + package = mkOption { + type = types.package; + default = pkgs.hbase; + example = literalExample "pkgs.hbase"; + description = '' + HBase package to use. + ''; + }; + + + user = mkOption { + type = types.string; + default = "hbase"; + description = '' + User account under which HBase runs. + ''; + }; + + group = mkOption { + type = types.string; + default = "hbase"; + description = '' + Group account under which HBase runs. + ''; + }; + + dataDir = mkOption { + type = types.path; + default = "/var/lib/hbase"; + description = '' + Specifies location of HBase database files. This location should be + writable and readable for the user the HBase service runs as + (hbase by default). + ''; + }; + + logDir = mkOption { + type = types.path; + default = "/var/log/hbase"; + description = '' + Specifies the location of HBase log files. + ''; + }; + + }; + + }; + + ###### implementation + + config = mkIf config.services.hbase.enable { + + systemd.services.hbase = { + description = "HBase Server"; + wantedBy = [ "multi-user.target" ]; + + environment = { + JAVA_HOME = "${pkgs.jre}"; + HBASE_LOG_DIR = cfg.logDir; + }; + + serviceConfig = { + PermissionsStartOnly = true; + User = cfg.user; + Group = cfg.group; + ExecStart = "${cfg.package}/bin/hbase master start"; + }; + }; + + users.extraUsers.hbase = { + description = "HBase Server user"; + group = "hbase"; + uid = config.ids.uids.hbase; + }; + + users.extraGroups.hbase.gid = config.ids.gids.hbase; + + }; +} diff --git a/pkgs/servers/hbase/default.nix b/pkgs/servers/hbase/default.nix new file mode 100644 index 00000000000..e11a6375469 --- /dev/null +++ b/pkgs/servers/hbase/default.nix @@ -0,0 +1,13 @@ +{ stdenv, fetchurl, jre, makeWrapper }: +stdenv.mkDerivation { + name = "hbase-0.98.8"; + src = fetchurl { + url = http://mirror.gopotato.co.uk/apache/hbase/stable/hbase-0.98.8-hadoop2-bin.tar.gz; + sha256 = "0nvxaqpw8v2hg6mn2p2zxj3y6r4dj4xzxmp8rfmv6m6algn5apv6"; + }; + buildInputs = [ makeWrapper ]; + installPhase = '' + mkdir -p $out + cp -R * $out + ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index aa50832ff00..5a2236712a3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12801,5 +12801,6 @@ let youtubeDL = youtube-dl; # added 2014-10-26 rdiff_backup = rdiff-backup; # added 2014-11-23 + hbase = callPackage ../servers/hbase {}; }; in self; in pkgs |