如何从ansible vault获取密码以用作变量?
How to get password from ansible vault to be used as variable?
我有以下 ansible 角色:
- name: Get latest code from repository
git:
repo: 'https://{{ username }}:{{ password }}@{{ repository }}'
dest: "{{ destination }}"
force: yes
虽然 username
和 repository
可以是变量,但我对如何从 ansible vault 中检索 password
感到困惑。感谢任何建议和见解。
首先,在 vars/
文件夹中创建一个 YAML 文件(它可以在任何文件夹中,host_vars
或 group_vars
也有效,具体取决于您使用的变量类型保持)包含你的变量。我们称它为 vars/git-data.yml
。然后,使用 Vault 加密它:
ansible-vault encrypt vars/git-data.yml
需要密码。记住了。
然后,您有两个选项可以在 运行 您的剧本中包含您的变量:
- 选项 A:将它们包括在您的剧本中:
---
- hosts: localhost
connection: local
vars_files:
- vars/git-data.yml
tasks:
- name: Print variable
ansible.builtin.debug:
msg: "{{ username }}"
- 选项 B:在您致电时介绍他们
ansible-playbook
:
ansible-playbook --ask-vault-pass -e @vars/git-data.yml cloning-repository.yml
将询问 Vault 的密码。您还可以使用 --vault-password-file ${file}
或 ANSIBLE_VAULT_PASSWORD_FILE
环境变量指示包含密码文件的密码。
此致。
我有以下 ansible 角色:
- name: Get latest code from repository
git:
repo: 'https://{{ username }}:{{ password }}@{{ repository }}'
dest: "{{ destination }}"
force: yes
虽然 username
和 repository
可以是变量,但我对如何从 ansible vault 中检索 password
感到困惑。感谢任何建议和见解。
首先,在 vars/
文件夹中创建一个 YAML 文件(它可以在任何文件夹中,host_vars
或 group_vars
也有效,具体取决于您使用的变量类型保持)包含你的变量。我们称它为 vars/git-data.yml
。然后,使用 Vault 加密它:
ansible-vault encrypt vars/git-data.yml
需要密码。记住了。
然后,您有两个选项可以在 运行 您的剧本中包含您的变量:
- 选项 A:将它们包括在您的剧本中:
---
- hosts: localhost
connection: local
vars_files:
- vars/git-data.yml
tasks:
- name: Print variable
ansible.builtin.debug:
msg: "{{ username }}"
- 选项 B:在您致电时介绍他们
ansible-playbook
:
ansible-playbook --ask-vault-pass -e @vars/git-data.yml cloning-repository.yml
将询问 Vault 的密码。您还可以使用 --vault-password-file ${file}
或 ANSIBLE_VAULT_PASSWORD_FILE
环境变量指示包含密码文件的密码。
此致。