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 why imperative configuration management leads to drift and audit failures.
- Nix store, derivations, and the use of pure functions for system construction.
- Comparing NixOS with traditional distributions: focusing on immutability and atomic upgrades.
Installation and Basics
- Installing NixOS from an ISO image, including manual and automated partitioning methods.
- The Nix language: covering sets, functions, and imports.
- Understanding the structure of configuration.nix and the module system.
- Using 'nix search' and man pages to locate packages and options.
Package and Service Management
- Differentiating between system-wide and per-user package installation with nix-env.
- Enabling systemd services in a declarative manner.
- Implementing custom package overrides and overlays.
- Managing garbage collection and optimizing the Nix store.
Reproducible Environments
- Utilizing nix-shell and shell.nix for ad-hoc development tasks.
- Leveraging Nix Flakes to ensure lockfile-based reproducibility.
- Using devenv and devshell to streamline team onboarding.
- Integrating Direnv for automatic environment switching.
Remote Deployment
- Managing fleets using NixOps and Colmena.
- Configuring remote builds and binary caches.
- Handling secrets management with agenix and sops-nix.
- Testing deployments using NixOS VMs and containers.
System Updates and Rollbacks
- Navigating nixos-rebuild switch, test, and boot modes.
- Executing atomic rollbacks to previous system generations.
- Managing channels and pinning versions for reproducible updates.
- Conducting emergency recovery and configuring the bootloader.
Advanced Topics
- Implementing NixOS containers and lightweight virtualization techniques.
- Handling cross-compilation and ARM builds.
- Generating custom ISO images and netboot images.
- Utilizing Hydra for continuous integration of Nix packages.
Requirements
- Advanced experience in Linux system administration and shell scripting.
- A fundamental grasp of functional programming concepts.
- Familiarity with Git and version-controlled configuration workflows.
Target Audience
- Infrastructure engineers looking for reproducible, declarative systems.
- DevOps teams aiming to replace tools like Ansible, Puppet, or Chef with Nix.
- Organizations that require bit-for-bit reproducible deployments.
21 Hours