Random ansible-读取文件,然后随机选择条目

Random ansible-读取文件,然后随机选择条目,random,ansible,Random,Ansible,我用的是Ansible 2.9.10。我正在尝试读取一个包含项目列表的文件。然后我想从这个列表中随机选择3个项目。我试过下面提到的几种方法,但似乎无法解决这个问题。 文件项目列表是一个项目列表,每行一个: hammer saw wood ..... 在剧本中,我有: 变量: 文件内容:{{lookup'file',itemList'} 打印文件内容返回widget\hammer\nsaw\nwood。。。。。等 -名称:打印文件内容 调试: msg:文件内容是{{File_contents}}

我用的是Ansible 2.9.10。我正在尝试读取一个包含项目列表的文件。然后我想从这个列表中随机选择3个项目。我试过下面提到的几种方法,但似乎无法解决这个问题。 文件项目列表是一个项目列表,每行一个:

hammer
saw
wood
.....
在剧本中,我有:

变量: 文件内容:{{lookup'file',itemList'} 打印文件内容返回widget\hammer\nsaw\nwood。。。。。等 -名称:打印文件内容 调试: msg:文件内容是{{File_contents}} 现在尝试从文件内容中随机选择一项 -名称:选择一个随机项目 调试: msg:item是{{item} 随机选择:{{file\u contents} 我错过了什么?似乎我让事情变得更难了。TIA

您将文件内容作为一行,如下所示:

"msg": "File contents are hammer\nsaw\nwood\npencil\nfork\nspoon\nmobile"
这是1个项目,而不是项目列表,因为行尾字符未标识,并且显示为“\n”字符串序列

一个简单的调整是使用“\n”分隔符拆分1行字符串。直接修改上一个任务时,您将使用:

  # Now try to select one random item from file_contents
  - name: Select one random item
    debug:
      msg: "item is {{ item }}"
    with_random_choice: "{{ file_contents.split('\n') }}"
干杯