Tôi đã phát triển một Playbook Ansible trong một vài tuần, do đó, kinh nghiệm của tôi với công nghệ như vậy là tương đối ngắn. Tuy nhiên, một phần chiến lược của tôi bao gồm việc sử dụng một tuỳ chỉnh ansible_ssh_user
cho việc cung cấp máy chủ trong khoảng không quảng cáo, người dùng như vậy sẽ cần cặp khóa SSH riêng của mình, bao gồm một kế hoạch giữ/lưu trữ khóa cá nhân tương ứng. Trên môi trường sản xuất, sách hướng dẫn này sẽ được nhân bản/kéo và chạy bên trong một nút playbook nhất định có vai trò là cung cấp phần còn lại của cơ sở hạ tầng. Đầu tiên, tôi đã nghĩ đến việc chỉ đặt khóa riêng trong kho lưu trữ playbook git, nhưng tôi vẫn có ý nghĩ thứ hai về nó, chủ yếu là vì lý do bảo mật rõ ràng và ý thức chung xung quanh nó, vì vậy lý do tôi cần để tư vấn cho bạn về vấn đề này.Ansible SSH khóa riêng trong điều khiển nguồn?
Với thiết lập này trên bàn, đây là những câu hỏi tiếp theo:
- Trong một môi trường phát triển Ansible dựa trên, nó là lành mạnh/hợp lý để giữ một chìa khóa SSH tin trong kiểm soát nguồn?
- thực hành này sẽ được thông báo chỉ dành cho môi trường phát triển trong khi một git branch địa phương bên trong nút playbook sẽ được sử dụng để tổ chức sản xuất SSH khóa riêng thực tế?
- Sẽ tốt hơn nếu bạn xử lý trường hợp này thông qua Ansible Vault thay thế ?, Tôi chưa bao giờ sử dụng điều này trước đây, nhưng bất kể điều đó tôi chưa thể biết liệu đây có phải là trường hợp thích hợp để sử dụng nó hay không.
- Theo kinh nghiệm của bạn, cách tiếp cận của bạn xung quanh vấn đề này trong môi trường sản xuất là gì ?, điều gì sẽ được coi là phương pháp hay nhất trong kịch bản cụ thể này?
câu 1 của bạn được rất nhiều dựa trên một tư duy Repos github công cộng. Nó không phải là trường hợp với vcs được bảo mật, được bảo mật. Đối với nhiệm vụ cuối cùng của bạn, nó là Ansible anti-pattern để sử dụng 'shell:' module như thế. Thay vào đó, bạn nên sử dụng http://docs.ansible.com/authorized_key_module.html – Mxx
Lần cuối cùng tôi kiểm tra (và vẫn có vẻ như vậy, theo tài liệu), mô-đun 'authorized_keys' dành cho khóa công khai, chứ không phải khóa riêng tư . Cách tốt nhất tôi biết để làm điều đó là với một mô-đun tùy chỉnh. Và như một thực hành tốt nhất, bạn không nên có bất kỳ bí mật nào dưới dạng văn bản thuần túy ngay cả trong các kho lưu trữ riêng tư. –
Tôi có thể thực hiện điều này thông qua 'copy' thay vì' shell': https://gist.github.com/dougluce/94bad06a0cd0ef6ecfd8 –