Ansible-vault och Nornir Det går att kombinera hemliga variablar med hjälp av Ansible vault i ett Nornir-jobb. De synliga, icke hemliga variablarna placerar man som vanligt i inventory/hosts.yaml och inventory/groups.yaml . Hemliga variablar kan man sedan placera i inventory/secrets.yaml . Man kommer sedan att kombinera dessa när jobbet körs, så det är viktigt att hierarkin är exakt lika i samtliga filer. Har man exempelvis följande i hosts.yaml: nxos: data: routed_underlay: ISIS_NET: 49.1337.0000.0000.0001.00 Och ett lösenord ska användas för ISIS som anropas av Python-jobbet på samma ställe ska då secrets.yaml se ut såhär: nxos: data: routed_underlay: ISIS_PASSWORD: s0000pers3333cret För att sedan använda sig av ansible vault behövs följande: Kryptera filen med ansible-vault encrypt secrets.yaml . Redigering med edit eller decrypt (glöm inte encrypt efteråt). Skapa en lokal fil på servern där krypteringslösenordet finns, använd chmod 400 på den. Följande moduler behövs: from ansible.parsing.vault import VaultLib, VaultSecret from ansible.constants import DEFAULT_VAULT_ID_MATCH from ansible.parsing.dataloader import DataLoader   Anropa sedan i jobbet: def load_vault_password(path="~/.ansible_losen"): path = Path(path).expanduser() return path.read_bytes().strip() I def main() behövs följande för att låsa upp filen och använda den: vault_password = load_vault_password() loader = DataLoader() vault = VaultLib([(DEFAULT_VAULT_ID_MATCH, VaultSecret(vault_password))]) loader.set_vault_secrets(vault.secrets) data = loader.load_from_file("inventory/secrets.yaml") for host, host_data in data.items(): if host in nr.inventory.hosts: nr.inventory.hosts[host].data.update(host_data)