要让Ansible能够从Ansible Vault中访问变量,需要遵循以下步骤:
确保已经创建了Ansible Vault文件,并将其命名为vault.yml
(或其他自定义名称)。
使用以下命令创建一个新的Ansible Vault文件:
ansible-vault create vault.yml
在Vault文件中定义需要加密的变量。例如,将密码变量db_password
设置为secretpassword
:
db_password: secretpassword
加密Vault文件。在提示时输入一个密码:
ansible-vault encrypt vault.yml
在Ansible playbook中使用Vault文件中的变量。例如,将db_password
变量用作数据库密码:
- name: Example playbook
hosts: all
vars_files:
- vault.yml
tasks:
- name: Example task
debug:
msg: "The password is {{ db_password }}"
请注意,vars_files
关键字用于加载Vault文件中的变量。
运行playbook时,需要提供Vault密码。可以通过以下方式指定密码:
使用--ask-vault-pass
选项并在提示时输入密码:
ansible-playbook --ask-vault-pass playbook.yml
将Vault密码存储在文件中,并使用--vault-password-file
选项指定该文件的路径:
ansible-playbook --vault-password-file=password.txt playbook.yml
将Vault密码存储在环境变量ANSIBLE_VAULT_PASSWORD_FILE
中,并运行playbook:
export ANSIBLE_VAULT_PASSWORD_FILE=/path/to/password.txt
ansible-playbook playbook.yml
这样,Ansible就能够从Ansible Vault中访问变量,并使用它们来执行任务。