Commit graph

8 commits

Author SHA1 Message Date
350a4ecc2c Target semaphore-ansible vault for op item get/create
The Semaphore service account only has access to the semaphore-ansible
vault. Automation was inaccessible so every op call failed.
2026-04-21 02:08:38 +00:00
62f28f5c51 Read OP_SERVICE_ACCOUNT_TOKEN from extra-vars, not controller env
Semaphore injects environment secrets as ansible extra-vars, not as
process env vars, so lookup('env','OP_SERVICE_ACCOUNT_TOKEN') resolved
to empty string and the op CLI hung waiting for interactive auth.
Reference the variable directly instead.
2026-04-21 01:59:08 +00:00
323616f802 Force local connection on delegated op tasks
delegate_to: localhost alone still uses SSH, which hangs on the
Semaphore controller. Add connection: local so the op tasks run in
the controller process directly.
2026-04-21 01:56:22 +00:00
b7196c3fc6 Run op CLI on controller and silence secret output
The target host does not have the op CLI installed, so op invocations
must run on the Semaphore controller (delegate_to: localhost, become:
false — the controller runs rootless). Generated/loaded secrets also
leak into task logs on failure, so mark the three op tasks and the
set_fact tasks with no_log: true.
2026-04-21 01:41:43 +00:00
9358eb3302 Skip n8n Deploy stack task in check mode
The command module validates args.chdir before honoring check mode, so
dry runs fail with ENOENT on the stack dir (file task only pretends to
create it). Gate Deploy stack on ansible_check_mode — dry runs should
not run docker compose up anyway.
2026-04-21 01:37:07 +00:00
d7ee878393 Fix n8n playbook dry-run failure on 1Password lookups
Shell tasks are skipped in check mode by default, leaving op_item.stdout
empty and breaking from_json in the set_fact. The op item get calls are
read-only, so mark them check_mode: no so dry runs reflect reality.
2026-04-21 01:31:55 +00:00
9cc8a68da3 Update playbooks/n8n.yml 2026-04-20 21:25:05 -04:00
a31914a86f Add playbooks/n8n.yml 2026-04-19 22:05:19 -04:00