Get in Touch

Course Outline

Declarative System Sovereignty

  • Why imperative configuration management can lead to system drift and audit failures.
  • Utilizing the Nix store, derivations, and pure functions for building systems.
  • Comparing NixOS with traditional distributions: immutability and atomic upgrades.

Installation and Basics

  • Installing NixOS from an ISO using both manual and automated partitioning methods.
  • Understanding the Nix language, including sets, functions, and imports.
  • Exploring the structure of configuration.nix and its module system.
  • Searching for packages and options using nix search and man pages.

Package and Service Management

  • Installing packages system-wide versus per-user with nix-env.
  • Enabling systemd services through declarative configuration.
  • Implementing custom package overrides and overlays.
  • Managing garbage collection and store optimization.

Reproducible Environments

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

Remote Deployment

  • Employing NixOps and Colmena for fleet management in remote deployment scenarios.
  • Configuring remote building and binary caches.
  • Managing secrets with agenix and sops-nix.
  • Conducting deployment testing using NixOS VMs and containers.

System Updates and Rollbacks

  • Using nixos-rebuild switch, test, and boot modes for system updates.
  • Performing atomic rollbacks to previous generations.
  • Managing channels and pinning for reproducible updates.
  • Ensuring emergency recovery and configuring the bootloader.

Advanced Topics

  • Utilizing NixOS containers for lightweight virtualization.
  • Conducting cross-compilation and ARM builds.
  • Generating custom ISO and netboot images.
  • Implementing Hydra continuous integration for Nix packages, enhancing reliability and efficiency for government operations.

Requirements

  • Proficiency in advanced Linux system administration and shell scripting.
  • Knowledge of functional programming principles.
  • Experience with Git and version-controlled configuration management.

Audience

  • Infrastructure engineers aiming to implement reproducible, declarative systems for government.
  • DevOps teams transitioning from Ansible, Puppet, or Chef to Nix.
  • Organizations needing bit-for-bit reproducible deployments to ensure consistency and reliability.
 21 Hours

Number of participants


Price per participant

Testimonials (2)

Upcoming Courses

Related Categories