Eu não acho que você pode usar o mesmo nome de grupo para diferentes grupos de servidores (seja em diferentes ambientes ou não).
você está usando o arquivo de inventário de um ambiente ao executar o manual:
ansible-playbook -i staging ... --extra-vars "host=webserver[0]" playbook.yml
Em vez disso, você pode tentar ter um terceiro arquivo de inventário para esse tipo de tarefa, no qual todos os servidores estão incluídos.
Eu estou supondo que você playbook.yml é algo como:
hosts: "{{ host }}"
tasks:
- name: fetch archived file to local machine
fetch:
...
- name: copy archived file to another remote server on /tmp directory
copy:
..
delegate_to: 192.168.56.108
para uma solução alternativa para evitar que o delegado_ use o arquivo de inventário incluído (vamos identificá-lo: all):
[webserverdev]
192.168.56.101 #server 1
192.168.56.103 #server 2
[webserverprod]
192.168.56.108 #server test
então, um livro de exercícios como o seguinte:
hosts: webserverdev[0]
tasks:
- name: fetch archived file to local machine
fetch:
...
hosts: webserverprod[0]
- name: copy archived file to another remote server on /tmp directory
copy:
..
executando o playbook usando o novo inventário:
ansible-playbook -i all ... playbook.yml