ANSIBLE множественные with_items и цикл на всех хостах в группе инвентаря - PullRequest
0 голосов
/ 06 ноября 2019

Команда, у меня есть ситуация, когда мне нужно выполнить несколько команд на нескольких хостах. для случая единственного хоста все в порядке с ниже, но как повторить то же самое на нескольких хостах?

      - name: "SMI Tests for ECC singlebit and double bit codes "
        command: "smi --xml-format --query | grep retired_count | grep -v 0"
        ignore_errors: no
        register: _smi_ecc_result
        failed_when: _smi_ecc_result.rc == 0
        delegate_to: "{{ item }}"
        with_items: "{{ groups['kube-gpu-node'] }}"

Теперь у меня есть больше команд для выполнения, как я должен изменить выше, чтобы он выполнял те на каждом хосте, входящем вwith_items.

ex: команда: df -kh команда: ls -ltr



      - name: "multi_commands Tests for ECC singlebit and double bit codes "
        command: 
           - "smi --xml-format --query | grep retired_count | grep -v 0"
           - "df -kh"
           - "ls -ltr"
        ignore_errors: no
        register: multi_commands_result
        failed_when: multi_commands_result.rc == 0
        delegate_to: "{{ item }}"
        with_items: "{{ groups['kube-gpu-node'] }}"

, но получаю синтаксическую ошибку.

1 Ответ

1 голос
/ 06 ноября 2019

Либо вы можете использовать argv здесь в командном модуле для передачи нескольких команд, либо использовать оболочку для передачи нескольких команд, как показано ниже.

- name: "multi_commands Tests for ECC singlebit and double bit codes "
  shell: |
      smi --xml-format --query | grep retired_count | grep -v 0
      df -kh
      ls -ltr
  ignore_errors: no
  register: multi_commands_result
  failed_when: multi_commands_result.rc != 0
  delegate_to: "{{ item }}"
  with_items: "{{ groups['kube-gpu-node'] }}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...