Ansible Vault
Ansible Vault er et verktøy som brukes til å kryptere sensitive data.
Dette kan være passord, API nøkler eller annen sensitiv informasjon.
Dette er en god praksis for å sikre data.
Vi kan kryptere hele filer eller enkelt variabler.
Vi starter med å kryptere kun passordet som vi bruker til å koble til switchene.
Ved å spesifisere ansible_password: feltet i host eller group_vars filen slipper du å skrive inn passordet hver gang du kjører playbooken.
Det er ikke en god praksis å ha disse passordene i klartekst i filene.
group_vars/switcher eksempel uten kryptert passord
ansible_connection: network_cli ansible_network_os: ios ansible_user: autom8 ansible_password: alt
ansible-vault encrypt_string "alt" --name "ansible_password" New Vault password: Confirm New Vault password: Encryption successful ansible_password: !vault | $ANSIBLE_VAULT;1.1;AES256 34653039363662636561366630633936316231336139646339303964646561653833306334383130 3961323736336131653830326438333432636262643266660a353265653939323364613831383664 38346532616238616431613162663364343461323463666137323262303036306232656230323262 3132323466356132310a373432633231393437346466333639373739643965623761343366333137 3066
ansible_connection: network_cli ansible_network_os: ios ansible_user: autom8 ansible_password: !vault | $ANSIBLE_VAULT;1.1;AES256 34653039363662636561366630633936316231336139646339303964646561653833306334383130 3961323736336131653830326438333432636262643266660a353265653939323364613831383664 38346532616238616431613162663364343461323463666137323262303036306232656230323262 3132323466356132310a373432633231393437346466333639373739643965623761343366333137 3066
ansible-playbook playbook_rolle_collapsed_core.yaml -t vlan PLAY [playbook_rolle_collapsed_core] *************************************************************************************************************************************************************************************************** TASK [collapsed_core : Opprett vlan med jinja2] **************************************************************************************************************************************************************************************** fatal: [IOS_XE_switch_3]: FAILED! => {"msg": "Attempting to decrypt but no vault secrets found"} fatal: [IOS_XE_switch_4]: FAILED! => {"msg": "Attempting to decrypt but no vault secrets found"} PLAY RECAP ***************************************************************************************************************************************************************************************************************************** IOS_XE_switch_3 : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0 IOS_XE_switch_4 : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
ansible-playbook playbook_rolle_collapsed_core.yaml -t vlan --ask-vault-pass Vault password: PLAY [playbook_rolle_collapsed_core] *************************************************************************************************************************************************************************************************** TASK [collapsed_core : Opprett vlan med jinja2] **************************************************************************************************************************************************************************************** ok: [IOS_XE_switch_3] ok: [IOS_XE_switch_4] PLAY RECAP ***************************************************************************************************************************************************************************************************************************** IOS_XE_switch_3 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 IOS_XE_switch_4 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
echo '$ANSIBLE_VAULT;1.1;AES256 34653039363662636561366630633936316231336139646339303964646561653833306334383130 3961323736336131653830326438333432636262643266660a353265653939323364613831383664 38346532616238616431613162663364343461323463666137323262303036306232656230323262 3132323466356132310a373432633231393437346466333639373739643965623761343366333137 3066' | ansible-vault decrypt && echo
tree . | ── collapsed_core | ├── vars | └── vault
vlan: - vlan_id: 307 vlan_name: vlan307 - vlan_id: 308 vlan_name: vlan308 - vlan_id: 309 vlan_name: vlan309
ansible_password: alt
ansible-vault encrypt vault New Vault password: Confirm New Vault password: Encryption successful
$ANSIBLE_VAULT;1.1;AES256 39316265333633343664386661366135326565343539346339653930633261336166383839333836 3232396366636166383230656464623534316266323863620a383933303138633139653332336533 63333638353035393734393364313262636331633863613233393631386366326632653531376637 3835353231656336310a393366663133386464373635613231336163636230373861306630643734 65376537326465336135636632343237633139313835333339633131333961626161
ansible-playbook playbook_rolle_collapsed_core.yaml -t vlan --ask-vault-pass Vault password: PLAY [playbook_rolle_collapsed_core] *************************************************************************************************************************************************************************************************** TASK [collapsed_core : Opprett vlan med jinja2] **************************************************************************************************************************************************************************************** changed: [IOS_XE_switch_3] changed: [IOS_XE_switch_4] PLAY RECAP ***************************************************************************************************************************************************************************************************************************** IOS_XE_switch_3 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 IOS_XE_switch_4 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
ansible-vault encrypt_string --vault-id cisco@prompt "CiscoPassord" --name "ansible_password" New vault password (cisco): Confirm new vault password (cisco): Encryption successful ansible_password: !vault | $ANSIBLE_VAULT;1.2;AES256;cisco 34636136626631633837313732636232303564613638373133646662613664613231393561386565 3538366562616462623434636638373964323733613335630a376637313636396535633335636432 61613430643638656433356464353838323337306464303264353435623232326261623131396637 3266336432363134370a376462376262613965386563316662326362636161653630613131643638 3338