A maneira mais limpa seria criar três arquivos de tarefas separados para fazer o que você quiser e incluir aquele para a distribuição específica da máquina que está executando o playbook. Você pode verificar isso com a condição ansible_distribution . Por exemplo, adicione isso ao seu manual:
- include_tasks: install_amazon.yml
when: ansible_distribution == 'Amazon'
- include_tasks: install_centos.yml
when: ansible_distribution == 'CentOS'
- include_tasks: install_ubuntu.yml
when: ansible_distribution == 'Ubuntu'
Em seguida, no arquivo de tarefas especificado, você pode especificar o parâmetro remote_user
. Por exemplo, seu arquivo install_centos.yml
pode ter esta aparência:
---
- name: Install package as CentOS user
yum:
name: foo
state: present
remote_user: centos
Isso instalaria o pacote foo
como usuário centos
. Você pode fazer o mesmo para os outros arquivos de tarefas.