Estou configurando algumas máquinas com Ansible e preciso habilitar a senha com menos conexões entre elas. Eu tenho um mestre de banco de dados e vários escravos. Para replicação inicial, os escravos precisam ssh no mestre e obter uma cópia do banco de dados. Não tenho certeza de qual é a melhor maneira de adicionar dinamicamente todas as chaves públicas dos escravos ao authorized_keys
arquivo mestre .
Eu já pensei em fornecer as chaves públicas dos escravos como variáveis e adicioná-las através do authorized_key
módulo. Mas então devo manter a lista de chaves. Estou procurando uma abordagem em que apenas adicione outro host ao grupo de escravos e o restante funcione automaticamente.
Alguma ideia?
Atualizar:
Até agora, recebi o seguinte pseudo-código:
# collect public keys from slave machines
- name: collect slave keys
{% for host in groups['databases_slave'] %}
shell: /bin/cat /var/lib/postgresql/.ssh/id_rsa.pub
register: slave_keys #how to add to an array here?
{% endfor %}
# Tasks for PostgreSQL master
- name: add slave public key
sudo: yes
authorized_key: user=postgres state=present key={{ item }}
with_items: slave_keys
O loop com o {% %}
único funciona em arquivos de modelo e não diretamente em playbooks. Alguma maneira de fazer isso no meu manual?
fonte