flake: add Nix shell for infrastructure work
This is an initial version we can expand later. Signed-off-by: Jakub Sokołowski <jakub@status.im>
This commit is contained in:
parent
b2dda7792f
commit
61c50a0e43
|
@ -0,0 +1,27 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1720031269,
|
||||||
|
"narHash": "sha256-rwz8NJZV+387rnWpTYcXaRNvzUSnnF9aHONoJIYmiUQ=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "9f4128e00b0ae8ec65918efeba59db998750ead6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
{
|
||||||
|
description = "infra-shell";
|
||||||
|
|
||||||
|
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs }:
|
||||||
|
let
|
||||||
|
stableSystems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"];
|
||||||
|
forAllSystems = nixpkgs.lib.genAttrs stableSystems;
|
||||||
|
pkgsFor = nixpkgs.lib.genAttrs stableSystems (
|
||||||
|
system: import nixpkgs { inherit system; config.allowUnfree = true; }
|
||||||
|
);
|
||||||
|
in rec {
|
||||||
|
devShells = forAllSystems (system: let
|
||||||
|
pkgs = pkgsFor.${system};
|
||||||
|
in {
|
||||||
|
default = let
|
||||||
|
pythonPkgs = pkgs.python310.withPackages (
|
||||||
|
_: with (pkgs.python310Packages); [
|
||||||
|
ipython pyyaml jinja2 PyGithub
|
||||||
|
pyopenssl cryptography
|
||||||
|
]
|
||||||
|
);
|
||||||
|
in pkgs.mkShellNoCC {
|
||||||
|
packages = with pkgs.buildPackages; [
|
||||||
|
# misc
|
||||||
|
git openssh jq fzf silver-searcher
|
||||||
|
# networking
|
||||||
|
curl nmap nettools dnsutils
|
||||||
|
# infra
|
||||||
|
terraform ansible_2_16 pythonPkgs
|
||||||
|
# security
|
||||||
|
pass bitwarden-cli yubikey-manager pwgen
|
||||||
|
# cloud
|
||||||
|
aliyun-cli awscli doctl google-cloud-sdk
|
||||||
|
hcloud s3cmd scaleway-cli
|
||||||
|
];
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
./ansible/roles.py --check || \
|
||||||
|
echo -e '\nWARNING: Your role versions appear to be incorrect!' >&2
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue