gpt4 book ai didi

ansible - 如何解决 "could not locate file in lookup"读取 id_rsa.pub?

转载 作者:行者123 更新时间:2023-12-03 19:45:26 25 4
gpt4 key购买 nike

在 Ansible 剧本中,我试图将默认公钥读入一个变量以供以后使用。
这是我的 yml:

- hosts: hostsGroup
become: false
vars:
publicKey: "{{ lookup('file', lookup('env','HOME') + '/.ssh/id_rsa.pub') }}"

该脚本因以下错误而中断:
fatal: [redacted-ip]: FAILED! => 
{"msg": "An unhandled exception occurred while templating '{{ lookup('file', lookup('env','HOME') + '/.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: /root/.ssh/id_rsa.pub"}

该文件被确认存在于该位置。

有没有更好的办法?或者我做错了什么?

最佳答案

报价the documentation :

Lookups occur on the local computer, not on the remote computer.


要获取远程文件的内容,您可以使用这样的任务:
- name: get remote file contents
command: "cat {{ ansible_env.HOME }}/.ssh/id_rsa.pub"
register: key
然后,您可以像这样访问内容:
- name: show key contents
debug:
var: key.stdout
但!请注意,这里我使用的是 ansible_env.HOME .这在收集事实时由 Ansible 填充,它将代表 HOME 的值。从 Ansible 用于身份验证的任何用户的角度来看环境变量。如果您使用的是 become_user 之类的东西,该值不会更改以反射(reflect)新用户。

关于ansible - 如何解决 "could not locate file in lookup"读取 id_rsa.pub?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54373152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com