Initial Commit
This commit is contained in:
commit
5b670da462
|
@ -0,0 +1,20 @@
|
|||
with import <nixpkgs> {};
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "tw_cli-${version}";
|
||||
version = "2.00.11.022";
|
||||
|
||||
executable = /root/bin/tw_cli.x86_64;
|
||||
phases = [ "installPhase" ];
|
||||
|
||||
installPhase = ''
|
||||
install -m755 -D $executable $out/bin/tw_cli
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "";
|
||||
description = "TW_CLI";
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ fionera ];
|
||||
};
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
nodes = (import ./nodes.nix);
|
||||
keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzB14Kgqtq38jwO5xGpYEzbFnPVNNM16G782rGsM2hPNGBxgCIaQ5wTyLl5GCCGR7yQESmSphTpnTnh+pcw0QqvBvbxHrLe691lvkdUhXBnz3Y22sFu294D99+X8gZgm/cS6yXkb/Bq5upzKrUCFpKoMkiPT560OduxiyN+922fyVCUNcVsYyd+6YCZGj1kdzK/dsax99L9aOeYsCCe5s1717xIIK+MakT7o8nqv/mVuMrWiuhE6fJ6lgv1TXNhhJhxxd8aXIQlr0jXHCS89Lt7qNW/FnyTY5OqHHTqd02O/l82XRnnI9ASZqUfGD27EhWovB6cjibNbooYpwIfCbz root@master"
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvyZgx/+b0YU+CqDXLPbgOoRmpiyKYDkAsfXMpZ+aKVCtGZzmg8OeIVUDv1lbq+qQwNl+fOi7/V+U8w7BpyVUSf5Pn+ld/+eQK1IgkjsDyfdsFiXr4stzCDjpOzRTs/fludZ4WXEtBRJ0IsfX6VJWU2xXBZKrgw62XnbUv/I0hzpckf9Ug9RsCOdS70FfrmRxh2rCEpVdukS4KNyq8MHkwIQM381k26wvsAH6fhNJucICeBIDzfcP61bg4zWLiKQ+q+5c4U7cRoz/N0G2FNOWwQHooQueVC7+SY3Vh2o9AGG2H+Lbrg03e5NSSUBJa2ixZM933evno1yniv/NiTYbGw== lucas@luwo"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFNMlzpRFjkANy1tVafcLpkidbu1GF8cmmJK8dTwMZY4 fabian@fabian-T460s"
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNCmn7zefioeRXtO5pfWuW/J0/cJwYu6KmrJ2rjvk/cWgasyHVur4QriKmQLIUjabXn4gFhsVTwe1vDsgeWgvVbWYxxkgUq0No1/x9D50uuV3oUF1RiysCmUOkZMwRcSgG1A9jw4LxhInw6LgIkgJEG4v1qCK8JOnNZ/T0gknpLHpUMrBEVNgij31lZXwA9CGGhCsM2ZxLmz7pZ2PsYGt+VroJZ8IVscr3BtjRgAIg/I7q0eiuY/MB2aPKw/2gunul3t0iLAHTK1CUvHbTmjpSU5M0ebQc4qbJIoKD0g1Ygq4kxXU1eB6IsQx2Sr+CRr4OH3mwOyVCfgrb7NErzMyb"
|
||||
];
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
let
|
||||
nixpkgs = <nixpkgs>;
|
||||
pkgs = import nixpkgs {};
|
||||
cluster = (import ./cluster.nix);
|
||||
|
||||
configuration = { config, pkgs, lib, ... }: with lib; {
|
||||
imports = [
|
||||
"${nixpkgs}/nixos/modules/installer/netboot/netboot-minimal.nix"
|
||||
];
|
||||
systemd.services.sshd.wantedBy = mkOverride 0 [ "multi-user.target" ];
|
||||
networking.hostName = "";
|
||||
|
||||
users.users.root = {
|
||||
openssh.authorizedKeys.keys = cluster.keys;
|
||||
initialPassword = "root";
|
||||
};
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
|
||||
i18n.consoleKeyMap = "de";
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
(import ./bin/tw_cli.nix)
|
||||
];
|
||||
};
|
||||
|
||||
nixos = import "${nixpkgs}/nixos" {
|
||||
inherit configuration;
|
||||
# system = ...;
|
||||
};
|
||||
in
|
||||
pkgs.symlinkJoin {
|
||||
name = "netboot";
|
||||
paths = with nixos.config.system.build; [
|
||||
netbootRamdisk
|
||||
kernel
|
||||
netbootIpxeScript
|
||||
];
|
||||
preferLocalBuild = true;
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
let
|
||||
cluster = (import ./cluster.nix);
|
||||
in {
|
||||
nodes = map (x: {
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
deployment = {
|
||||
targetHost = x.ip;
|
||||
}
|
||||
}) cluster.nodes;
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
let
|
||||
nodes = (import ../nodes.nix);
|
||||
|
||||
nameValuePair = name: value: { inherit name value; };
|
||||
|
||||
hosts = map (x: [
|
||||
{ name = x.name; value = [ { name = "deployment.targetHost"; value = x.ip; } ]; }
|
||||
]) nodes;
|
||||
|
||||
test = builtins.listToAttrs hosts;
|
||||
in
|
||||
test
|
|
@ -0,0 +1,245 @@
|
|||
[
|
||||
{
|
||||
name = "node00";
|
||||
mac = "00:30:48:bc:84:56";
|
||||
ip = "10.10.0.100";
|
||||
}
|
||||
{
|
||||
name = "node01";
|
||||
mac = "00:30:48:bc:84:7a";
|
||||
ip = "10.10.0.101";
|
||||
}
|
||||
{
|
||||
name = "node02";
|
||||
mac = "00:30:48:bc:85:5e";
|
||||
ip = "10.10.0.102";
|
||||
}
|
||||
{
|
||||
name = "node03";
|
||||
mac = "00:30:48:bc:84:32";
|
||||
ip = "10.10.0.103";
|
||||
}
|
||||
{
|
||||
name = "node04";
|
||||
mac = "00:30:48:bc:86:2e";
|
||||
ip = "10.10.0.104";
|
||||
}
|
||||
{
|
||||
name = "node05";
|
||||
mac = "00:30:48:bc:84:0a";
|
||||
ip = "10.10.0.105";
|
||||
}
|
||||
{
|
||||
name = "node06";
|
||||
mac = "00:30:48:bc:83:4e";
|
||||
ip = "10.10.0.106";
|
||||
}
|
||||
{
|
||||
name = "node07";
|
||||
mac = "00:30:48:bc:34:24";
|
||||
ip = "10.10.0.107";
|
||||
}
|
||||
{
|
||||
name = "node08";
|
||||
mac = "00:30:48:bc:85:d2";
|
||||
ip = "10.10.0.108";
|
||||
}
|
||||
{
|
||||
name = "node09";
|
||||
mac = "00:30:48:bc:84:de";
|
||||
ip = "10.10.0.109";
|
||||
}
|
||||
{
|
||||
name = "node10";
|
||||
mac = "00:30:48:bc:83:6a";
|
||||
ip = "10.10.0.110";
|
||||
}
|
||||
{
|
||||
name = "node11";
|
||||
mac = "00:30:48:bc:83:82";
|
||||
ip = "10.10.0.111";
|
||||
}
|
||||
{
|
||||
name = "node12";
|
||||
mac = "00:30:48:bc:86:1a";
|
||||
ip = "10.10.0.112";
|
||||
}
|
||||
{
|
||||
name = "node13";
|
||||
mac = "00:30:48:bc:66:32";
|
||||
ip = "10.10.0.113";
|
||||
}
|
||||
{
|
||||
name = "node14";
|
||||
mac = "00:30:48:bc:86:56";
|
||||
ip = "10.10.0.114";
|
||||
}
|
||||
{
|
||||
name = "node15";
|
||||
mac = "00:30:48:bc:36:5c";
|
||||
ip = "10.10.0.115";
|
||||
}
|
||||
{
|
||||
name = "node16";
|
||||
mac = "00:30:48:bc:85:e6";
|
||||
ip = "10.10.0.116";
|
||||
}
|
||||
{
|
||||
name = "node17";
|
||||
mac = "00:30:48:bc:86:4e";
|
||||
ip = "10.10.0.117";
|
||||
}
|
||||
{
|
||||
name = "node18";
|
||||
mac = "00:30:48:bc:85:aa";
|
||||
ip = "10.10.0.118";
|
||||
}
|
||||
{
|
||||
name = "node19";
|
||||
mac = "00:30:48:bc:85:ce";
|
||||
ip = "10.10.0.119";
|
||||
}
|
||||
{
|
||||
name = "node20";
|
||||
mac = "00:30:48:bc:36:8c";
|
||||
ip = "10.10.0.120";
|
||||
}
|
||||
{
|
||||
name = "node21";
|
||||
mac = "00:30:48:bc:36:94";
|
||||
ip = "10.10.0.121";
|
||||
}
|
||||
{
|
||||
name = "node22";
|
||||
mac = "00:30:48:bc:86:5a";
|
||||
ip = "10.10.0.122";
|
||||
}
|
||||
{
|
||||
name = "node23";
|
||||
mac = "00:30:48:bc:86:36";
|
||||
ip = "10.10.0.123";
|
||||
}
|
||||
{
|
||||
name = "node24";
|
||||
mac = "00:30:48:bc:83:9e";
|
||||
ip = "10.10.0.124";
|
||||
}
|
||||
{
|
||||
name = "node25";
|
||||
mac = "00:30:48:bc:85:1e";
|
||||
ip = "10.10.0.125";
|
||||
}
|
||||
{
|
||||
name = "node26";
|
||||
mac = "00:30:48:bc:86:16";
|
||||
ip = "10.10.0.126";
|
||||
}
|
||||
{
|
||||
name = "node27";
|
||||
mac = "00:30:48:bc:34:94";
|
||||
ip = "10.10.0.127";
|
||||
}
|
||||
{
|
||||
name = "node28";
|
||||
mac = "00:30:48:bc:86:62";
|
||||
ip = "10.10.0.128";
|
||||
}
|
||||
{
|
||||
name = "node29";
|
||||
mac = "00:30:48:bc:86:46";
|
||||
ip = "10.10.0.129";
|
||||
}
|
||||
{
|
||||
name = "node30";
|
||||
mac = "00:30:48:bc:85:da";
|
||||
ip = "10.10.0.130";
|
||||
}
|
||||
{
|
||||
name = "node31";
|
||||
mac = "00:30:48:bc:85:de";
|
||||
ip = "10.10.0.131";
|
||||
}
|
||||
{
|
||||
name = "node32";
|
||||
mac = "00:30:48:bc:85:72";
|
||||
ip = "10.10.0.132";
|
||||
}
|
||||
{
|
||||
name = "node33";
|
||||
mac = "00:30:48:bc:84:4e";
|
||||
ip = "10.10.0.133";
|
||||
}
|
||||
{
|
||||
name = "node34";
|
||||
mac = "00:30:48:bc:86:26";
|
||||
ip = "10.10.0.134";
|
||||
}
|
||||
{
|
||||
name = "node35";
|
||||
mac = "00:30:48:bc:86:2a";
|
||||
ip = "10.10.0.135";
|
||||
}
|
||||
{
|
||||
name = "node36";
|
||||
mac = "00:30:48:bc:34:80";
|
||||
ip = "10.10.0.136";
|
||||
}
|
||||
{
|
||||
name = "node37";
|
||||
mac = "00:30:48:bc:33:9c";
|
||||
ip = "10.10.0.137";
|
||||
}
|
||||
|
||||
# hat zusaetzliche Karte mit 1 Nic
|
||||
{
|
||||
name = "node38";
|
||||
mac = "00:30:48:bc:84:86";
|
||||
ip = "10.10.0.138";
|
||||
}
|
||||
# hat zusaetzliche Karte mit 2 Nic
|
||||
{
|
||||
name = "node39";
|
||||
mac = "00:30:48:bc:84:16";
|
||||
ip = "10.10.0.139";
|
||||
}
|
||||
{
|
||||
name = "node40";
|
||||
mac = "00:30:48:bc:83:ce";
|
||||
ip = "10.10.0.140";
|
||||
}
|
||||
{
|
||||
name = "node41";
|
||||
mac = "00:30:48:bc:83:d2";
|
||||
ip = "10.10.0.141";
|
||||
}
|
||||
{
|
||||
name = "node42";
|
||||
mac = "00:30:48:bc:83:d6";
|
||||
ip = "10.10.0.142";
|
||||
}
|
||||
{
|
||||
name = "node43";
|
||||
mac = "00:30:48:bc:84:be";
|
||||
ip = "10.10.0.143";
|
||||
}
|
||||
{
|
||||
name = "storage0";
|
||||
mac = "00:30:48:ce:83:3a";
|
||||
ip = "10.10.0.10";
|
||||
}
|
||||
{
|
||||
name = "storage1";
|
||||
mac = "";
|
||||
ip = "10.10.0.11";
|
||||
}
|
||||
{
|
||||
name = "storage2";
|
||||
mac = "";
|
||||
ip = "10.10.1.12";
|
||||
}
|
||||
{
|
||||
name = "storage3";
|
||||
mac = "";
|
||||
ip = "10.10.1.13";
|
||||
}
|
||||
]
|
|
@ -0,0 +1,19 @@
|
|||
#!/usr/bin/env bash -e
|
||||
|
||||
nix-build --out-link /tmp/netboot ./ipxe.nix
|
||||
|
||||
n=$(realpath /tmp/netboot)
|
||||
init=$(grep -ohP 'init=\S+' $n/netboot.ipxe)
|
||||
|
||||
# Start the PXE server.
|
||||
# These ports need to be open in your firewall:
|
||||
# UDP: 67, 69
|
||||
# TCP: 64172
|
||||
docker run --rm \
|
||||
-v /etc/ssl/certs:/etc/ssl/certs:ro \
|
||||
-v /nix/store:/nix/store:ro \
|
||||
--net=host \
|
||||
pixiecore/pixiecore:master \
|
||||
boot $n/bzImage $n/initrd \
|
||||
--cmdline "$init loglevel=4" \
|
||||
-d --dhcp-no-bind --port 64172 --status-port 64172
|
Loading…
Reference in New Issue