Tôi đang thiết lập một số máy có Ansible và cần bật mật khẩu ít kết nối giữa chúng. Tôi đã có một chủ cơ sở dữ liệu và một số nô lệ. Để sao chép ban đầu, các nô lệ cần phải ssh vào bản gốc và lấy một bản sao của cơ sở dữ liệu. Tôi không chắc cách tốt nhất để tự động thêm tất cả các khóa công khai nô lệ vào authorized_keys
tệp chủ .
Tôi đã nghĩ về việc cung cấp các khóa công khai nô lệ dưới dạng các biến và sau đó thêm chúng thông qua authorized_key
mô-đun. Nhưng sau đó tôi phải duy trì danh sách các khóa. Tôi đang tìm kiếm một cách tiếp cận trong đó tôi chỉ cần thêm một máy chủ khác vào nhóm nô lệ và phần còn lại sẽ hoạt động tự động.
Có ý kiến gì không?
Cập nhật:
Cho đến nay tôi đã nhận được mã giả sau đây:
# 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
Vòng lặp {% %}
chỉ hoạt động trong các tệp mẫu chứ không phải trong playbooks trực tiếp. Bất kỳ cách nào để làm điều này trong playbook của tôi?