gpt4 book ai didi

python - 无法将 ansible yml 文件中的 dict 键值获取到我的 after.yml 文件中

转载 作者:行者123 更新时间:2023-12-01 09:27:21 26 4
gpt4 key购买 nike

abc.yml:

d_lab: 192.168.1.1
d_location: /ephemeral
ema:
apple: 10.0.0.1
orange: 10.0.0.2
jack: 10.0.0.3

def.yml:

- name: Load data
hosts: CENTRAL_host
any_errors_fatal: yes
tasks:
- name: Copy files from ema
shell: "scp -oStrictHostKeyChecking=no -i ~/.ssh/abc.pem root@{{ ema['item'] }}:/tmp/ /tmp/test/"
with_items:
- "{{ items }}"

我可以从 def.yml 中的 abc.yml 访问 d_lab 和 d_location。但是,当我尝试访问字典 ema 中任何键的值(例如 ema[apple])时,我收到错误

" TASK [Copy files from ema] ******************************************************************************************************************* failed: [<>] (item=apple) => {"changed": true, "cmd": "scp -oStrictHostKeyChecking=no -i ~/.ssh/abc.pem root@10.0.0.1:/tmp/ /tmp/test/", "delta": "0:00:00.089524", "end": "2018-05-10 09:15:24.235767", "failed": true, "item": "apple", "rc": 1, "start": "2018-05-10 09:15:24.146243", "stderr": "Warning: Permanently added '10.0.0.1' (RSA) to the list of known hosts.\r\nscp: /tmp: not a regular file", "stderr_lines": ["Warning: Permanently added '10.0.0.1' (RSA) to the list of known hosts.", "scp: /tmp: not a regular file"], "stdout": "", "stdout_lines": []} "

请让我知道如何访问 ansible playbook 中的字典。

最佳答案

看起来实际发生的错误是:

scp: /tmp: not a regular file

这可能是由于 /tmp/ 是远程服务器上的目录而不是文件。

您应该能够通过将 -r 参数传递给 scp 来递归复制文件。请参阅this question了解更多详情。

关于python - 无法将 ansible yml 文件中的 dict 键值获取到我的 after.yml 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50266925/

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