Get in Touch

Course Outline

Declarative System Sovereignty

  • Understanding how imperative configuration management leads to drift and audit failures.
  • The Nix store, derivations, and the use of pure functions for system construction.
  • NixOS compared to traditional distributions: focusing on immutability and atomic upgrades.

Installation and Basics

  • Installing NixOS from ISO with both manual and automated partitioning methods.
  • The Nix language: sets, functions, and imports.
  • The structure of configuration.nix and its module system.
  • Using nix search and man pages to find packages and options.

Package and Service Management

  • Installing packages system-wide versus per-user using nix-env.
  • Enabling systemd services in a declarative manner.
  • Creating custom package overrides and overlays.
  • Performing garbage collection and optimizing the store.

Reproducible Environments

  • Utilizing nix-shell and shell.nix for ad-hoc development.
  • Achieving lockfile-based reproducibility with Nix Flakes.
  • Using devenv and devshell to streamline team onboarding.
  • Integrating Direnv for automatic environment switching.

Remote Deployment

  • Managing fleets with NixOps and Colmena.
  • Configuring remote building and binary caches.
  • Managing secrets with agenix and sops-nix.
  • Testing deployments using NixOS VMs and containers.

System Updates and Rollbacks

  • Using nixos-rebuild in switch, test, and boot modes.
  • Executing atomic rollbacks to previous system generations.
  • Managing and pinning channels for reproducible updates.
  • Handling emergency recovery and bootloader configuration.

Advanced Topics

  • Using NixOS containers and lightweight virtualization.
  • Cross-compilation and ARM builds.
  • Generating custom ISO and netboot images.
  • Implementing Hydra continuous integration for Nix packages.

Requirements

  • Proficiency in advanced Linux system administration and shell scripting.
  • A solid grasp of functional programming concepts.
  • Familiarity with Git and version-controlled configuration workflows.

Audience

  • Infrastructure engineers aiming for reproducible, declarative systems.
  • DevOps teams looking to transition from Ansible, Puppet, or Chef to Nix.
  • Organizations that mandate bit-for-bit reproducible deployments.
 21 Hours

Testimonials (2)

Related Categories