Зацикливание элементов Ansible в файле

#ansible

#ansible

Вопрос:

У меня есть досье(a_file.txt ) вот так:

 22
23
8080
  

Мне нужно зациклить каждый элемент в a_file.txt с моим хостом и отформатирован как host: 22, host: 23, host: 8080 … и так далее, так что я могу использовать модуль оболочки в playbook следующим образом:

 ---
- 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}} = - hostnamen
{{<item in a_file.txt>}} = [u'22, u'23, u'8080]
  

Ответ №1:

вы должны использовать:

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