擅长:python、mysql、java
<p>考虑使用<a href="https://pypi.python.org/pypi/ansible-vault/1.0.4" rel="noreferrer">ansible-vault package</a></p>
<p>安装方法:</p>
<pre><code>$ pip install ansible-vault
</code></pre>
<p>然后就简单到:</p>
<pre><code>from ansible_vault import Vault
vault = Vault('password')
print vault.load(open('/path/to/your/vault.yml').read())
</code></pre>
<p>要使用ansible代码,请直接查看该包的<a href="https://github.com/jptomo/ansible-vault/blob/master/ansible_vault/api.py" rel="noreferrer">source</a>。最简单的方法是:</p>
<p>Ansible<strong><;=2.3</strong></p>
<pre><code>from ansible.parsing.vault import VaultLib
vault = VaultLib('password')
print vault.decrypt(open('/path/to/vault.yml').read())
</code></pre>
<p>Ansible<strong>>;=2.4</strong></p>
<pre><code>from ansible.constants import DEFAULT_VAULT_ID_MATCH
from ansible.parsing.vault import VaultLib
from ansible.parsing.vault import VaultSecret
vault = VaultLib([(DEFAULT_VAULT_ID_MATCH, VaultSecret('password'))])
print vault.decrypt(open('/path/to/vault.yml').read())
</code></pre>
<p>源代码的数量是相等的,但是包提供了自动yaml解析+两个Ansible版本的处理。</p>