Я использую ansible 2.1, и я хочу запустить команду для группы хостов, используя делегат_to. Я использую локальный в качестве принимающих пар, и я хочу, чтобы делегировать команду «потрогать» для обоего ЦБСОВ хостов У меня есть следующийВозможная делегирование другим хостам
---
- hosts: ansible
# gather_facts: yes
tasks:
- debug: var=groups.cls
- name: touch a file to running host
shell: echo {{ item }} >> /tmp/{{ inventory_hostname }}
delegate_to: "{{ item }}"
with_items: "{{ groups.cls }}"
с выходом:
[[email protected] control]# ansible-playbook -i inventory test.yml
PLAY ***************************************************************************
TASK [setup] *******************************************************************
ok: [ansible]
TASK [debug] *******************************************************************
ok: [ansible] => {
"groups.cls": [
"cls-host-1",
"cls-host-2"
]
}
TASK [touch a file to running host] ********************************************
changed: [ansible -> cls-host-1] => (item=cls-host-1)
changed: [ansible -> cls-host-2] => (item=cls-host-2)
PLAY RECAP *********************************************************************
ansible : ok=3 changed=1 unreachable=0 failed=0
, но прикосновение делается только на первом хосте:
[[email protected] ~]# more /tmp/ansible
cls-host-1
cls-host-2
Что-то не так? Могу ли я делегировать команду любым другим способом?
Попробуйте 'with_items: groups.cls' вместо – sap1ens
Попытка with_items: groups.cls Я получаю: [ПРЕДУПРЕЖДЕНИЕ О ДЕПРЕКАЦИИ]: Использование голых переменных устарело. Обновите свои плейбуки, чтобы значение среды использовало полный синтаксис переменных ('{{groups.cls}}'). Эта функция будет удалена в будущем выпуске. Предупреждения об устаревании можно отключить, установив deprecation_warnings = False в ansible.cfg. –