Saya menyiapkan beberapa mesin dengan Ansible dan perlu mengaktifkan koneksi yang lebih sedikit di antara mereka. Saya punya master database dan beberapa budak. Untuk replikasi awal, budak perlu ssh ke master dan mendapatkan salinan database. Saya tidak yakin apa cara terbaik untuk secara dinamis menambahkan semua kunci publik budak ke authorized_keys
file master .
Saya sudah berpikir tentang memberikan kunci publik budak sebagai variabel dan kemudian menambahkannya melalui authorized_key
modul. Tetapi kemudian saya harus mempertahankan daftar kunci. Saya mencari pendekatan di mana saya hanya menambahkan host lain pada grup slave dan sisanya akan bekerja secara otomatis.
Ada ide?
Memperbarui:
Sejauh ini saya mendapat kode pseudo berikut:
# 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
Loop dengan {% %}
satu - satunya berfungsi dalam file template dan tidak di playbook secara langsung. Adakah cara untuk melakukan ini di buku pedoman saya?
sumber