Some checks failed
CI / skip-ci-check (pull_request) Successful in 6s
CI / lint-and-test (pull_request) Failing after 9s
CI / ansible-validation (pull_request) Failing after 6s
CI / secret-scanning (pull_request) Successful in 5s
CI / dependency-scan (pull_request) Successful in 8s
CI / sast-scan (pull_request) Failing after 5s
CI / license-check (pull_request) Successful in 11s
CI / vault-check (pull_request) Failing after 6s
CI / playbook-test (pull_request) Failing after 6s
CI / container-scan (pull_request) Failing after 6s
CI / sonar-analysis (pull_request) Failing after 2s
CI / workflow-summary (pull_request) Successful in 4s
Document pve10 static IPs, monitoring stack, and site LXCs; add portfolio to inventory; Mailcow mailbox automation; vault import/export scripts; security audit guides and UniFi DHCP reference. Co-authored-by: Cursor <cursoragent@cursor.com>
33 lines
1.1 KiB
Bash
Executable File
33 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Resolve MAILBOX= key from inventories/production/group_vars/all/mailcow.yml
|
|
set -euo pipefail
|
|
|
|
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
MAILBOX="${MAILBOX:-}"
|
|
[[ -n "${MAILBOX}" ]] || { echo "MAILBOX required" >&2; exit 1; }
|
|
|
|
eval "$("${REPO_ROOT}/.venv/bin/python3" - "${REPO_ROOT}" "${MAILBOX}" <<'PY'
|
|
import sys, yaml, shlex, os
|
|
|
|
repo, key = sys.argv[1], sys.argv[2]
|
|
path = os.path.join(repo, "inventories/production/group_vars/all/mailcow.yml")
|
|
with open(path) as f:
|
|
data = yaml.safe_load(f) or {}
|
|
boxes = data.get("mailcow_mailboxes") or {}
|
|
if key not in boxes:
|
|
raise SystemExit(f"Unknown MAILBOX={key!r}. Add it to mailcow_mailboxes in mailcow.yml")
|
|
b = boxes[key]
|
|
out = []
|
|
for k, env in [
|
|
("local_part", "MAILBOX_LOCAL_PART"),
|
|
("name", "MAILBOX_NAME"),
|
|
("quota", "MAILBOX_QUOTA"),
|
|
]:
|
|
if k in b and b[k] is not None:
|
|
out.append(f"export {env}={shlex.quote(str(b[k]))}")
|
|
if b.get("vault_password_key"):
|
|
out.append(f"export MAILBOX_VAULT_KEY={shlex.quote(str(b['vault_password_key']))}")
|
|
print("\n".join(out))
|
|
PY
|
|
)"
|