Add fileserver.

This commit is contained in:
Jonas Juselius
2018-05-23 13:47:02 +02:00
parent 618fc7cc99
commit 17e4e740ea
3 changed files with 33 additions and 30 deletions

55
fs0.nix
View File

@@ -1,49 +1,48 @@
with import <nixpkgs> {};
let
pki = pkgs.callPackage ./lib/pki.nix {};
certs = {
ca = pki.ca;
fs0 = pki.trust "fs0" ''
"fs0-0",
"fs0-1",
"fs0-2",
"10.253.18.106",
"10.1.2.164",
"10.253.18.100",
"127.0.0.1"
'';
};
clusterHosts = ''
10.253.18.106 fs0-0
10.1.2.164 fs0-1
10.253.18.100 fs0-2
10.253.18.106 fs0-0 fs0-0.local
10.1.2.164 fs0-1 fs0-1.local
10.253.18.100 fs0-2 fs0-2.local
'';
nixosConfig = node: {
imports = [ (./hardware-configuration + "/${node}.nix") ./nixos/configuration.nix ];
nixosConfig = node: ip:
let
cert = pki.trust node ''"${node}", "${ip}", "127.0.0.1"'';
in
{
imports = [
(./nixos/hardware-configuration + "/${node}.nix")
./nixos/configuration.nix
];
boot.kernelModules = [
"dm_snapshot"
"dm_mirror"
"dm_thin_pool"
];
networking = {
hostName = node;
extraHosts = clusterHosts;
firewall.allowedTCPPortRanges = [ { from = 5000; to = 50000; } ];
firewall.allowedTCPPorts = [ 111 ];
firewall.allowedUDPPorts = [ 111 24007 24008 ];
};
services.glusterfs = {
enable = true;
tlsSettings = {
caCert = certs.ca.cert;
tlsKeyPath = certs.fs0.key;
tlsPem = certs.fs0.cert;
caCert = pki.ca.cert;
tlsKeyPath = cert.key;
tlsPem = cert.cert;
};
};
networking.firewall.extraCommands = ''
iptables -I INPUT -p all -s 10.253.18.100 -j ACCEPT
iptables -I INPUT -p all -s 10.253.18.106 -j ACCEPT
iptables -I INPUT -p all -s 10.1.2.164 -j ACCEPT
'';
environment.systemPackages = [ pkgs.lvm2 ];
};
in
{
fs0-0 = { ... }:
let
base = nixosConfig "fs0-0";
base = nixosConfig "fs0-0" "10.253.18.106";
in
{
deployment.targetHost = "10.253.18.106";
@@ -51,7 +50,7 @@ in
services.nfs.server = {
enable=true;
exports= ''
/data/nfs0 10.253.18.0/24(insecure,rw,sync,no_subtree_check,crossmnt,fsid=0,no_root_squash)
/vol/brick0/nfs0 10.253.18.0/24(insecure,rw,sync,no_subtree_check,crossmnt,fsid=0,no_root_squash)
'';
};
networking.firewall.allowedTCPPorts = [ 111 2049 ];
@@ -59,7 +58,7 @@ in
};
fs0-1 = { ... }:
let
base = nixosConfig "fs0-1";
base = nixosConfig "fs0-1" "10.1.2.164";
in
{
deployment.targetHost = "10.1.2.164";