เรากำลังใช้Ansible Vaultเพื่อจัดเก็บรหัสผ่านกุญแจส่วนตัวสำหรับใบรับรอง ฯลฯ ในที่เก็บ Git Ansible Playbook ของเรา ข้อมูลส่วนตัวที่มีอยู่ทั้งหมดของเราอยู่ในรูปแบบข้อความดังนั้นเราสามารถเก็บไว้ในตัวแปร สิ่งเหล่านี้จะถูกใช้ในเทมเพลตหรือด้วยcontent
พารามิเตอร์ของโมดูลคัดลอก
ตอนนี้เรามีไฟล์ Java KeyStore ซึ่งน่าเศร้าที่มีรูปแบบไบนารี เช่นนี้มันไม่สามารถเก็บไว้ในตัวแปร - หรืออย่างน้อยฉันก็ไม่รู้ว่าจะทำยังไง อะไรจะเป็นวิธีที่ง่ายที่สุดในการเข้ารหัสไฟล์ของเราอย่างถูกต้องในขณะที่มันอยู่ในคอมไพล์ แต่ใช้ได้เมื่อทำงานansible-playbook
?
สิ่งที่ฉันได้ลองไปแล้วโดยไม่ประสบความสำเร็จ:
- การเข้ารหัสไฟล์ไบนารีใน base64, การจัดเก็บข้อมูลที่เข้ารหัสในตัวแปรและการใช้แม่แบบ
{{base64_data | b64decode}}
โมดูล นำไปสู่การEF BF BD
ดัมพ์เลขฐานสิบหกของไฟล์ผลลัพธ์ สามไบต์เข้ารหัสอักขระการแทนที่ Unicode ใน UTF-8 ดังนั้นจึงมีปัญหากับการตีความข้อมูลไบนารีเป็นข้อความ - การเข้ารหัสไฟล์ไบนารีใน base64, การจัดเก็บข้อมูลที่เข้ารหัสในตัวแปรและการใช้สำเนา
content="{{base64_data | b64decode}}"
โมดูล Ansible บ่นกับ "ตัวแปรแทรกพารามิเตอร์ใหม่ลงในโมดูล args" เมื่อใช้เครื่องหมายคำพูดเดี่ยวแทนที่จะเป็นเครื่องหมายคำพูดคู่ Ansible จะบ่นกับ "ข้อผิดพลาดในการวิเคราะห์สตริงอาร์กิวเมนต์" และคัดลอกข้อมูลไบนารีทั้งหมดที่ถูกเททิ้งไปที่เทอร์มินัล ...