文件中的Ansible循环项

时间:2019-03-21 16:21:56

标签: ansible

我有一个这样的文件(a_file.txt):

22
23
8080

我需要用我的主机循环a_file.txt中的每个项目,并将其格式设置为host:22,host:23,host:8080 ...等等,因此我可以在剧本中使用shell模块,如下所示:< / p>

---
- hosts: host1
  tasks:
    - name: Remote hostname
      shell: hostname
      register: hostname

    - name: Read items from a_file.txt
      shell: cat a_file.txt
      register: item_output

    - name: Run shell command
      shell: someCommand {{hostname.stdout_line|nice_to_yaml}}:{{item}}
      with_items: item_output.stdout_lines

但是,我的someCommand失败了,因为我有:

{{hostname.stdout_line|nice_to_yaml}} = - hostname\n
{{<item in a_file.txt>}} = [u'\22, u'\23, u'\8080]

1 个答案:

答案 0 :(得分:1)

您必须使用:

- name: Run shell command
  shell: someCommand {{hostname.stdout_line|nice_to_yaml}}:{{item}}
  with_items: "{{ item_output.stdout_lines }}"