Skip to content

Home Configuration Autoconf Flow (Step by Step)

Hamzaukw edited this page Sep 8, 2025 · 1 revision

Home Configuration Autoconf Flow (Step-by-Step)

Ansible Inventory (Input)

  • ansible/inventory/hosts.ini
  • ansible/inventory/group_vars/group_home_*.yml
  • ansible/inventory/host_vars/home/<host>.yml

Step 1: Merge Home Variables

  • Function: home_etl()
  • File: lx_administration/autoconf/imports/main.py
  • Merges host and group home variables
  • Validates using MergedHostVars model
  • Outputs to: autoconf/home_merged_vars/<host>.yml

Step 2: Load + Prepare Config

  • Function: home_pipe()
  • File: lx_administration/autoconf/nix/home.py
  • Loads merged YAML from home_merged_vars
  • Gets platform via: get_host_platform()
  • Gets users via: system_users
  • Calls: prepare_home_config()

Step 3: Generate Structured Config

  • Function: prepare_home_config()
  • File: lx_administration/models/merged_host_vars.py
  • Merges:
    • cli, roles, luxnix, services, desktops
  • Applies:
    • strip_common_prefix()
    • dotkey_to_nested_dict()
  • Returns final structured config dictionary

Step 4: Render with Template

  • Function: render_home_nix_template()
  • File: lx_administration/autoconf/nix/home_template_renderer.py
  • Uses Jinja2
  • Template path: conf/nix-templates/homes/<platform>/default.nix.j2
  • Renders final default.nix content

Step 5: Write Output File

  • Function: write_nix_file()
  • File: lx_administration/autoconf/nix/utils.py
  • Output path:

Clone this wiki locally