Проверка
ansible all -m ping <опросить все хосты в  "ansible/hosts">

 

Запуск
ansible-playbook < путь к файлу(/etc/ansible/play.yml)> -< ключи >

-l == --limit < установить только в группе или хосте(можно ip)>
ansible-playbook play.yml -l 10.0.0.1 <nginx>

 

Распространение ключей
Ручками:
Генерим ключ:
ssh-keygen -t rsa
Сгенерятся файлы ключей (2шт.) - домашний каталог пользователя/.ssh (пример: /home/user/.ssh)
Копируем id_rsa.pub:
ssh-copy-id -i ~/.ssh/id_rsa.pub <удаленный пользователь, чей пароль будет запрощен>@<удаленный хост(DNSname или ip)>
Через ANSIBLE(Собираю ИНФУ)

/etc/ansible/ansible.cfg

host_key_checking = False < отключить проверку по ключу>
в плейбуке: authorized_keys.yml
---
- hosts: '{{ hosts }}'
  vars_files:
    - '{{ vars }}'
  roles:
    - { role: authorized_keys }
@gerasimov
собственно ничего не мешает вам это сделать, нужно изменить описание ключей в roles/authorized_keys/vars/main.yml примерно так:
ssh_users:
  - name: pupkin
    key: "{{ lookup('file', 'roles/authorized_keys/vars/pupkin.pub') }}" 
    servers: 
      - host1
      - host2
    state: present
  - name: root
    key: "{{ lookup('file', 'roles/authorized_keys/vars/guru.pub') }}"
    servers: 
      - host1
      - host2
    state: present
  - name: root
    key: "{{ lookup('file', 'roles/authorized_keys/vars/user.pub') }}"
    servers: 
      - host3
      - host4
    state: absent

и добавить условие в roles/authorized_keys/tasks/main.yml:
- name: Add ssh key.
    authorized_key: user="{{ item.name }}" key="{{ item.key }}" state="{{ item.state }}"
    when: "inventory_hostname in item.servers"
    with_items: "{{ ssh_users }}"

при этом само собой имена перечисленные в servers должны совпадать с тем что написано в inventory

$ ssh-keygen -t rsa

В результате в каталоге /home/vasya/.ssh будут созданы файлы ключей:

$ ~/.ssh$ ls -1

id_rsa

id_rsa.pub

Если предполагается, что команды Ansible будут выполняться под пользователем root удаленной машины, то пользователь vasya должен уметь заходить на удаленную машину как root по ssh. Чтобы можно было это делать без постоянного ввода пароля, нужно под пользователем vasya выполнить следующую команду:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@remoteHost


Тож глянуть

Добавляем секцию test и добавляем ip адреса наших серверов:

[test]
192.168.0.1 
192.168.0.2 
................


  Собираем ssh ключи всех пользователей и складываем в файлы.
Например ключи всех пользователей, которые будут работать под root - в файл root.pub и тд.


Создаем сценарий для ansible:
----- файл ssh_key.yml -----
# да, начало такое :)
---
# Означает, что буду использоваться сервера из секции [test] файла hosts

- hosts: test
  tasks:

  - authorized_key:

# ключи добавятся пользователю root ...
      user: root
      state: present

# ... из нашего файла root.pub
      key: "{{ lookup('file', '/home/vladimir/utils/ansible/keys/root.pub') }}"
----- файл ssh_key.yml -----

  Для других пользователей и  файлов с ключами добавляем еще одну секцию: 

- authorized_key:
# Меняем на нужного - user:
      user: root
      state: present

# Указываем путь к файлу с ключами
       key: "{{ lookup('file', '/home/vladimir/utils/ansible/keys/key.pub') }}"