Files
computer-playbook/roles/desk-ssh
Kevin Veen-Birkenbach 716ebef33b Refactor task includes and update variable handling for Ansible 2.20 migration
This commit updates multiple roles to ensure compatibility with Ansible 2.20.
Several include paths and task-loading mechanisms required adjustments,
as Ansible 2.20 applies stricter evaluation rules for complex Jinja expressions
and no longer resolves certain relative include paths the way Ansible 2.18 did.

Key changes:
- Replaced legacy once_finalize.yml and once_flag.yml with the new structure
  under tasks/utils/once/finalize.yml and tasks/utils/once/flag.yml.
- Updated all include_tasks statements to use 'path_join' with playbook_dir,
  ensuring deterministic and absolute file resolution across roles.
- Fixed all network helper includes by converting direct relative paths such as
  'roles/docker-compose/tasks/utils/network.yml' to proper Jinja-evaluated paths.
- Normalized MATOMO_* variable names for consistency with the updated variable
  scope behavior in Ansible 2.20.
- Removed deprecated patterns that were implicitly supported in Ansible 2.18
  but break under the more strict variable and path resolution model in 2.20.

These changes are part of the full migration step required to ensure the
infinito-nexus roles remain stable, deterministic, and forward-compatible with
Ansible 2.20.

Details of the discussion and reasoning can be found in this conversation:
https://chatgpt.com/share/69300a8d-24d4-800f-bec0-e895a695618a
2025-12-03 11:02:34 +01:00
..
2025-07-15 17:52:05 +02:00
2025-07-15 17:52:05 +02:00

SSH Agent 🔐

Description

This Ansible role ensures a functional and persistent SSH Agent setup on Arch Linux (Manjaro) systems running GNOME with Wayland. It manages SSH configuration by cloning a remote Git repository into the user's ~/.ssh directory and sets up a systemd user service to start the SSH agent automatically at login.

To understand the broader context of SSH, read more on Wikipedia SSH or visit the official OpenSSH project.

This role was designed and validated in the context of this discussion on configuring SSH agents for KeePassXC compatibility under Wayland sessions.

Overview

This role is intended for Manjaro/Arch systems where gnome-keyring no longer reliably manages ssh-agent due to changes in behavior under Wayland. It works by deploying a systemd --user service, making SSH Agent integration predictable and independent of graphical environment quirks.

Purpose

The purpose of this role is to automate the provisioning of SSH agent capabilities and synchronize the .ssh directory from a Git repository. This enables users to access private repositories or authenticate with remote servers immediately after login.

Features

  • Clones a remote SSH config repository into ~/.ssh using the desk-git role.
  • Deploys and enables a systemd user service for ssh-agent.
  • Ensures environment compatibility by injecting the SSH_AUTH_SOCK variable into either .bash_profile or .profile.
  • Fails gracefully with an optional debug message if the Git repository is unreachable.
  • KeePassXC ready: Ensures compatibility with password managers that support SSH agent integration.

Credits 📝

Developed and maintained by Kevin Veen-Birkenbach.
Learn more at www.veen.world

Part of the Infinito.Nexus Project
License: Infinito.Nexus NonCommercial License