diff --git a/src/ansible-cmdb b/src/ansible-cmdb index 282ab16..cb8e1fc 100755 --- a/src/ansible-cmdb +++ b/src/ansible-cmdb @@ -11,7 +11,7 @@ dbg () { # Find suitable python binary find_py_bin () { - which -a python | while read -r TRY_PY_BIN + which -a python python3 | while read -r TRY_PY_BIN do dbg "Trying python bin: $TRY_PY_BIN" diff --git a/src/ansiblecmdb/ansible_via_api.py b/src/ansiblecmdb/ansible_via_api.py index cab3d2e..a6fe566 100644 --- a/src/ansiblecmdb/ansible_via_api.py +++ b/src/ansiblecmdb/ansible_via_api.py @@ -1,4 +1,7 @@ +import os from ansible.parsing.dataloader import DataLoader +from ansible.module_utils._text import to_bytes +from ansible.parsing.vault import VaultSecret from ansible.inventory.manager import InventoryManager from ansible.vars.manager import VariableManager @@ -18,6 +21,9 @@ class AnsibleViaAPI(Ansible): def load_inventories(self): """Load host inventories using the Ansible Python API.""" loader = DataLoader() + vault_pass = os.environ.get("ANSIBLE_VAULT_PASSWORD", "") + if vault_pass: + loader.set_vault_secrets([('default', VaultSecret(_bytes=to_bytes(vault_pass)))]) inventory = InventoryManager(loader=loader, sources=self.inventory_paths) variable_manager = VariableManager(loader=loader, inventory=inventory)