文件中的Ansible循环项

文件中的Ansible循环项,ansible,Ansible,我有一个filea_file.txt,如下所示: 22 23 8080 --- - 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: R

我有一个filea_file.txt,如下所示:

22
23
8080
---
- 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
我需要在我的主机上循环一个_file.txt中的每个项目,并将其格式化为主机:22、主机:23、主机:8080…等等,这样我就可以在playbook中使用shell模块,如下所示:

22
23
8080
---
- 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]
您必须使用:

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