gpt4 book ai didi

Ansible,如何在主机 list 中定义列表?

转载 作者:行者123 更新时间:2023-12-05 04:11:44 25 4
gpt4 key购买 nike

我有一个剧本,我想在我的主机文件中定义一个字符串列表。

这是我的主机文件:

[dashboard]
1.2.3.4 dashboard_domain=test site_domain=['one','two','foo', 'bar']

这是我尝试使用 list documentation 编写的剧本:

---
- hosts: dashboard
gather_facts: False
remote_user: ubuntu
become: yes

tasks:

- name: ping
ping:

- debug:
msg: "Domain: {{dashboard_domain}}"

- debug:
msg: "Site: {{ item }}"
with_items: "{{site_domain}}"

然而,使用 ansible-playbook -i hosts ping.yml 运行此 playbook 会导致此错误:

TASK: [debug ] ****************************************************************
fatal: [1.2.3.4] => with_items expects a list or a set

这似乎是将定义的列表从主机文件传输到剧本的问题,因为直接在剧本中定义列表是可行的:

---
- hosts: dashboard
gather_facts: False
remote_user: ubuntu
become: yes
vars:
site_domain: ['one','two','foo', 'bar']
tasks:

#### APPLY HTTP-AUTH ####
- name: ping
ping:

- debug:
msg: "Domain: {{dashboard_domain}}"

- debug:
msg: "Site: {{ item }}"
with_items: "{{site_domain}}"

最佳答案

只需引用变量值:

[dashboard]
1.2.3.4 dashboard_domain=test site_domain="['one','two','foo', 'bar']"

似乎在 INI 格式的 list 文件的情况下,如果 Ansible 以未加引号的 [ 开头并将其作为字符串传递,则 Ansible 不会解析变量值。


关于你的例子:我不确定为什么你在读取 list 文件时没有收到 expected key=value 错误,如果你真的有一个空间的话。

关于Ansible,如何在主机 list 中定义列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42149975/

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