mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-09 20:26:33 +00:00
certbundle names its lineages certbundle-<hash>-<n>, while the cert lookup
reads live/<domain>/fullchain.pem. Since 16023dbc9b removed cert_folder_find,
nothing joined the two, so every letsencrypt deploy with the SAN flavor
stopped at "Let's Encrypt certificate files not found after issuance".
library/cert_link_domains.py points live/<domain> at the newest lineage
whose SAN covers the domain, using the same CertUtils lookup as
cert_check_exists, and swaps the link atomically. A real lineage directory
is left alone, and a domain without a certificate is only reported, so the
letsencrypt re-check still fails loudly on it.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Custom Modules (library/)
This directory contains project-specific Ansible modules used by Infinito.Nexus.
What Belongs Here
Use library/ for idempotent module logic that represents concrete automation actions.
Typical cases:
- managing resources that have no suitable built-in/community module,
- wrapping internal APIs or internal infrastructure semantics,
- implementing reusable module interfaces for role/playbook consumption.
What Does Not Belong Here
- Shared helper code used by multiple modules/plugins goes to
utils/. - Jinja transformations belong to
plugins/filter/. - Runtime value retrieval belongs to
plugins/lookup/. - Task execution wrappers belong to
plugins/action/.
Usage
Ansible searches library/ for custom modules. In playbooks, call them like built-in modules.
- name: Run a custom Infinito module
infinito_custom_module:
option_one: value
option_two: value
Implementation Notes
- Keep modules idempotent and predictable.
- Validate input early and return structured failure messages.
- Move duplicated helpers into
utils/.
Shebang Requirement for Custom Modules
Files in library/ should use:
#!/usr/bin/python
Ansible rewrites this interpreter path to the configured host interpreter for module execution.
References
- Developing modules: https://docs.ansible.com/ansible/latest/dev_guide/developing_modules.html
- Module utilities: https://docs.ansible.com/ansible/latest/dev_guide/developing_module_utilities.html