在路径中使用波浪号时,Ansible 无法在查找中找到文件

Ansible can not locate file in lookup when using a tilde in path

使用 Ansible 中的 default 目录,我设置变量:

vm_public_key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"

我有一个使用 Jinja 模板的任务,这个模板将使用 vm_public_key 变量。
但是我有一个错误:

"msg": "AnsibleError: An unhandled exception occurred while templating '{{ lookup('file', '~/.ssh/id_rsa.pub') }}'. Error was a <class 'ansible.errors.AnsibleError'>, original message: An unhandled exception occurred while running the lookup plugin 'file'. Error was a <class 'ansible.errors.AnsibleError'>, original message: could not locate file in lookup: ~/.ssh/id_rsa.pub"

总而言之,它找不到 ssh 密钥。
解决方法是用主目录 /home/MY_USER 替换波浪号 ~。但我需要用更灵活的东西替换它,比如波浪号。

我用来 运行 ansible 的命令:

sudo ansible-playbook -K playbook.yml -i hosts --connection=local

您可以使用 {{ lookup('env', 'HOME') }} 检索等于波浪号的 $HOME 的值。