在路径中使用波浪号时,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
的值。
使用 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
的值。