Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Course Outline
Declarative System Sovereignty
- Understanding how imperative configuration management leads to drift and audit failure.
- The Nix store, derivations, and pure functions for system building.
- NixOS compared with traditional distributions: immutability and atomic upgrades.
Installation and Basics
- Installing NixOS from an ISO image using manual and automated partitioning methods.
- The Nix language fundamentals: sets, functions, and imports.
- Structure of configuration.nix and the module system.
- Searching for packages and options using nix search and man pages.
Package and Service Management
- Installing packages system-wide versus per-user via nix-env.
- Declaratively enabling systemd services.
- Implementing custom package overrides and overlays.
- Garbage collection and store optimisation techniques.
Reproducible Environments
- Utilising nix-shell and shell.nix for ad-hoc development.
- Achieving lockfile-based reproducibility with Nix Flakes.
- Facilitating team onboarding using devenv and devshell.
- Direnv integration for automatic environment switching.
Remote Deployment
- NixOps and Colmena for fleet management.
- Configuring remote building and binary caches.
- Secrets management employing agenix and sops-nix.
- Deployment testing using NixOS VMs and containers.
System Updates and Rollbacks
- nixos-rebuild switch, test, and boot modes.
- Atomic rollback to previous system generations.
- Channel management and pinning strategies for reproducible updates.
- Emergency recovery procedures and bootloader configuration.
Advanced Topics
- NixOS containers and lightweight virtualisation.
- Cross-compilation and ARM builds.
- Generating custom ISO and netboot images.
- Hydra continuous integration for Nix packages.
Requirements
- Advanced Linux system administration and shell scripting experience.
- Fundamental understanding of functional programming concepts.
- Familiarity with Git and version-controlled configuration workflows.
Audience
- Infrastructure engineers seeking reproducible, declarative systems.
- DevOps teams aiming to replace Ansible, Puppet, or Chef with Nix.
- Organisations requiring bit-for-bit reproducible deployments.
21 Hours