Нужно деплоить ключи на сервера, но фишка в том, что ключей много и они не должны все попадать на все сервера. Сейчас это реализируется следующим образом.
в файле
roles/authorized_keys/vars/main.ymlssh_users:
- name: pupkin
key: "{{ lookup('file', 'roles/authorized_keys/vars/pupkin.pub') }}"
state: present
- name: root
key: "{{ lookup('file', 'roles/authorized_keys/vars/guru.pub') }}"
state: present
- name: root
key: "{{ lookup('file', 'roles/authorized_keys/vars/user.pub') }}"
state: absent
в таске:
roles/authorized_keys/tasks/main.yml- name: Add ssh key.
authorized_key: user={{ item.name }} key="{{ item.key }}" state={{ item.state }}
with_items: ssh_users
в плейбуке:
authorized_keys.yml---
- hosts: '{{ hosts }}'
vars_files:
- '{{ vars }}'
roles:
- { role: authorized_keys }
Перед запуском редактирую:
roles/authorized_keys/vars/main.yml, present или absent
И при запуске указываю групы хостов или хосты. Сначала было все норм, но сейчас больше ключей и серверов, уже не помню чей ключ должен быть на каком сервере. Было бы хорошо если например вот так возможно было, в файле
roles/authorized_keys/vars/main.yml- name: pupkin
key: "{{ lookup('file', 'roles/authorized_keys/vars/pupkin.pub') }}"
servers: web,database,12.12.12.12
state: present
Чтобы для каждого ключа были перечень серверов куда их закидывать.
Или может есть другой способ это реализовать.