Chúng tôi đang sử dụng Ansible Vault để lưu trữ mật khẩu, khóa riêng cho chứng chỉ, v.v. trong kho git Ansible Playbook của chúng tôi. Tất cả dữ liệu riêng tư hiện tại của chúng tôi ở dạng văn bản, vì vậy chúng tôi có thể lưu trữ nó trong các biến. Chúng sau đó được sử dụng trong các mẫu hoặc với content
tham số của mô-đun sao chép.
Bây giờ, chúng ta có một tệp Java KeyStore, đáng buồn là có định dạng nhị phân. Như vậy, nó không thể được lưu trữ bên trong một biến - hoặc ít nhất là tôi không biết làm thế nào để làm điều đó. Điều gì sẽ là cách dễ nhất để tệp của chúng tôi được mã hóa chính xác trong khi nó nằm trong git, nhưng có sẵn khi chạy ansible-playbook
?
Những gì tôi đã thử mà không thành công:
- Mã hóa tệp nhị phân trong base64, lưu trữ dữ liệu được mã hóa trong một biến và sử dụng mô-đun mẫu với
{{base64_data | b64decode}}
. Dẫn đến rất nhiềuEF BF BD
trong kết xuất hex của tệp kết quả. Ba byte mã hóa ký tự thay thế Unicode trong UTF-8, do đó, có một vấn đề với việc diễn giải dữ liệu nhị phân dưới dạng văn bản. - Mã hóa tệp nhị phân trong base64, lưu trữ dữ liệu được mã hóa trong một biến và sử dụng mô-đun sao chép với
content="{{base64_data | b64decode}}"
. Ansible phàn nàn với "Một biến chèn một tham số mới vào mô-đun args." Khi sử dụng dấu ngoặc đơn thay vì dấu ngoặc kép, Ansible phàn nàn với "chuỗi đối số phân tích lỗi" và một bản sao của tất cả dữ liệu nhị phân, được đổ vào thiết bị đầu cuối ...