Вы можете использовать доступные playbooks для такого рода вещей.
например
---
- hosts: host1:host2
user: user1
sudo: yes
tasks:
- name: update package list
action: command /usr/bin/apt-get update
- name: upgrade packages
action: command /usr/bin/apt-get -u -y dist-upgrade
- hosts: host3
user: ubuntu
sudo: yes
tasks:
- name: update package list
action: command /usr/bin/apt-get update
- name: upgrade packages
action: command /usr/bin/apt-get -u -y dist-upgrade
Надеюсь, это сработает для вас :)
Я бы порекомендовал использовать переменные хоста на основе инвентарных или групповых переменных. Это позволяет вам установить пользователя ssh для каждого хоста или для каждой группы хостов. Преимущество этого подхода в том, что он прозрачен для ваших сценариев. В сценариях вам нужно беспокоиться только об установке, но не о доступе.
Пример того, как установить пользователя по хосту и группе:
[xyz]
www.xyz.com ansible_ssh_user=xyz_user
[abc]
www.abc.com
[abc:vars]
ansible_ssh_user=abc_user
А вот документация, которая объясняет, как это работает намного лучше, чем я: http://docs.ansible.com/intro_inventory.html