Skip to content

4.3 Ansible Vault for Playbook Secrets

Ansible Vault encrypts sensitive playbook variables (VLAN IDs, subnet assignments) that aren't in HashiCorp Vault.

Creating Encrypted Variables

# Create encrypted vars file
ansible-vault create ansible/vars/fabric_secrets.yml

# Enter vault password when prompted
# Add sensitive variables:
---
fabric_vlan_data: 100
fabric_vlan_voice: 200
management_subnet: "10.252.0.0/16"
radius_shared_secret: "SecretKey123"

Using Encrypted Variables

---
- name: Configure fabric edge ports
  hosts: fabric_edge_nodes
  vars_files:
    - vars/fabric_secrets.yml
  tasks:
    - name: Configure access port
      cisco.ios.ios_config:
        lines:
          - switchport access vlan {{ fabric_vlan_data }}

Running Playbooks

# Prompt for vault password
ansible-playbook playbook.yml --ask-vault-pass

# Or use password file
ansible-playbook playbook.yml --vault-password-file ~/.vault_pass

Related Sections: - 4.2 Retrieving Credentials at Runtime - Chapter 8: Ansible Configuration