Files
computer-playbook/plugins/lookup
kevinveenbirkenbachandClaude Opus 4.8 153bfb1898 feat(objstore): consume the object store across 14 web-app roles
Switch penpot, nextcloud, gitea, mattermost, openwebui, funkwhale, baserow, openproject, pixelfed, mastodon, bookwyrm, listmonk, peertube and opentalk to the engine-agnostic objstore lookup: the minio service entries are pinned off, a seaweedfs service (gated on the provider being in group_names, public for the media apps) replaces them, and the matrix variants pin the new flag. OpenTalk keeps object storage mandatory through an embedded fallback and provisions its bucket via weed shell.

Add objstore lookup SPOT keys consumed by these roles: endpoint (host:port), public_domain, public_bucket (public S3 host plus bucket) and public_url (scheme plus public_bucket, scheme derived from the provider TLS state). This removes the repeated lookup('config', lookup('objstore', ...), 'server.domains.canonical.api') / host:port concatenations from the consumer templates. Listmonk settings render their JSON values via the to_json filter.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 11:30:33 +02:00
..
…

Custom Lookup Plugins for Infinito.Nexus

This directory contains custom Ansible lookup plugins used within the Infinito.Nexus project.

When to Use a Lookup Plugin

  • Load external data: Use lookups to retrieve data from files, APIs, databases, environment variables, or other external sources.
  • Context-aware data access: Lookups can access the full Ansible context, including inventory, facts, and runtime variables.
  • Generate dynamic lists: Lookups are often used to build inventories, secrets, or host lists dynamically.

Examples

# Load the contents of a file as a variable
my_secret: "{{ lookup('file', '/path/to/secret.txt') }}"

# Retrieve a list of hostnames from an external source
host_list: "{{ lookup('infinito_inventory_hosts', 'group_name') }}"

When not to Use a Lookup Plugin

  • If you only need to manipulate or transform data already available in your playbook, prefer a filter plugin instead.

Further Reading