在Ansible中,可以使用ansible-vault
命令来加密和解密敏感信息,例如密码。以下是一个解决方案示例:
ansible-vault create password.yml
此命令将会提示你设置一个密码,并创建一个名为password.yml
的加密文件。
password.yml
文件中,使用YAML格式保存密码,例如:password: my_secret_password
ansible-vault
命令来解密密码,并将其存储在一个变量中。以下是一个示例:- name: Load encrypted password
hosts: localhost
gather_facts: false
tasks:
- name: Decrypt password file
shell: ansible-vault decrypt password.yml --output=- --vault-password-file=my_password_file
register: decrypted_password
no_log: true
- name: Set password variable
set_fact:
my_password: "{{ decrypted_password.stdout }}"
在上述示例中,ansible-vault decrypt
命令被用于解密password.yml
文件,并将解密后的密码存储在my_password
变量中。
请注意,my_password_file
是一个包含解密密码的文件名,它可以是一个包含密码的文本文件。
my_password
在playbook中进行操作,例如:- name: Use password variable
hosts: localhost
gather_facts: false
tasks:
- name: Display password
debug:
var: my_password
在上述示例中,密码被打印到标准输出中。
通过使用ansible-vault
命令,可以保护敏感信息,并确保密码不会明文保存在文件中。