使用带有Ansible-Vault的加密变量进行网络自动化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用带有Ansible-Vault的加密变量进行网络自动化相关的知识,希望对你有一定的参考价值。
我在网络和Youtube上搜索了很多教程,但没有运气。
我想通过Ansible配置思科交换机,我已经设置好了,运行完美..但我想存储密码(对于vty线路,控制台,启用密码......)理想情况下通过Ansible-Vault加密的主机文件作为变量所以在我的.yml文件中我可以访问它们。我希望它们在hosts文件中,因为我们为ASW,DSW和CSW设置了不同的密码,因此可以更容易管理。
我在CLI中生成了加密变量:
ansible-vault encrypt_string enable_password --ask-vault-pass
我将值复制到/ etc / ansible / hosts中的变量:
...
[2960-X:vars]
ansible_become=yes
ansible_become_method=enable
ansible_network_os=ios
ansible_user=admin
enable_password= !vault |
$ANSIBLE_VAULT;1.1;AES256
.....
在config.yml中:
- name: Set enable password
ios_config:
lines:
- enable secret "{{ enable_password }}"
现在,密码将被设置为“!vault |”我不确定这是否是最好的做法,我读了这个建议,但我能找到的只是服务器自动化,而不是网络。
我正在运行Ansible 2.8.0
感谢任何帮助,谢谢。
运行Playbook时,Ansible会在未加密的文件中找到变量,所有敏感变量都来自加密文件。
最佳实践方法是从以组命名的group_vars /子目录开始。在此子目录中,创建两个名为vars和vault的文件。在vars文件中,定义所需的所有变量,包括任何敏感变量。接下来,将所有敏感变量复制到Vault文件中,并使用vault_为这些变量添加前缀。您应该使用jinja2语法调整vars文件中的变量以指向匹配的vault_变量,并确保Vault文件是Vault加密的。
该方案不仅限于group_vars /,可以应用于变量来自的任何地方。
以上是关于使用带有Ansible-Vault的加密变量进行网络自动化的主要内容,如果未能解决你的问题,请参考以下文章