【问题标题】:Ansible list variable referenceAnsible 列表变量引用
【发布时间】:2017-05-23 12:17:32
【问题描述】:

我有一个变量列表,比如说

servers:  
 - server1    
 - server2  

我的主机上有文件夹:

/tmp/server1   
/tmp/server2   

现在我想在这些文件夹中创建文件。我需要分别引用列表中的所有变量。如果我在任务中引用{{ servers }},它会创建文件夹/tmp/[server1, server2]。当我执行{{ server[0] }} 时,它会在server1 文件夹中创建一个文件,这很好,但我需要单独引用列表中的所有变量,而不是一次全部引用。我认为答案将类似于{{ server[*] }}

【问题讨论】:

    标签: list variables reference ansible


    【解决方案1】:

    看看Loops in Ansible

    您的任务将如下所示:

    - file:
        path: "/tmp/{{ item }}/myfile"
        state: touch
      with_items: "{{ servers }}"
    

    以上将在所有目标服务器上创建空文件(或更新它们的日期时间,就像touch 命令)/tmp/server1/myfile/tmp/server2/myfile

    【讨论】:

    • 谢谢,但是如何在这些目录的文件中添加一行?假设我在之前的任务中创建了文件,现在我想插入配置。 lineinfile: path=/tmp/{{ item }}/myfile line={{ item }} with_items: - #my configration here。看来我需要使用 2 次具有不同值的 {{ item }} 变量。
    • 使用template模块。
    猜你喜欢
    • 2016-08-06
    • 2022-06-28
    • 2019-04-19
    • 2021-03-31
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多