Get in Touch

Course Outline

Declarative System Sovereignty

  • Understanding how imperative configuration management results in drift and audit failures.
  • Exploring the Nix store, derivations, and pure functions for system construction.
  • Comparing NixOS with traditional distributions regarding immutability and atomic upgrades.

Installation and Fundamentals

  • Installing NixOS from an ISO image using both manual and automated partitioning methods.
  • Introduction to the Nix language, covering sets, functions, and imports.
  • Examining the structure of configuration.nix and the module system.
  • Utilizing nix search and man pages to find packages and options.

Package and Service Administration

  • Installing packages system-wide versus per-user using nix-env.
  • Declaratively enabling systemd services.
  • Applying custom package overrides and overlays.
  • Managing garbage collection and optimizing the store.

Reproducible Environments

  • Using nix-shell and shell.nix for ad-hoc development tasks.
  • Leveraging Nix Flakes for lockfile-based reproducibility.
  • Employing 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.
  • Handling secrets management via agenix and sops-nix.
  • Testing deployments using NixOS virtual machines and containers.

System Updates and Rollbacks

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

Advanced Concepts

  • Implementing NixOS containers and lightweight virtualization.
  • Performing cross-compilation and building for ARM architectures.
  • Generating custom ISO and netboot images.
  • Utilizing Hydra for continuous integration of Nix packages.

Requirements

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

Target Audience

  • Infrastructure engineers aiming for reproducible, declarative systems.
  • DevOps teams intending to replace tools like Ansible, Puppet, or Chef with Nix.
  • Organizations that require bit-for-bit reproducible deployment capabilities.
 21 Hours

Number of participants


Price per participant

Upcoming Courses

Related Categories